← API v2 Overview

Reference Data

Use reference endpoints to fetch the valid values your integration can display or submit when working with contacts, leads, appointments, vehicles, and deals.

Reference Objects

Reference endpoints return simple, stable objects. Some lists are fixed by MotorDesk, while others are business-specific.

ObjectAttributesDescription
Tagname string, colour string, type string, defaulted booleanBusiness tag available for contacts, leads, or one vehicle stock type.
Vehicle statusid int, name string, label stringVehicle lifecycle status accepted by vehicle filters and writes.
Vehicle typeid string, name string, label stringVehicle stock type accepted by vehicle filters and writes.
Staff userid int, name string, role arrayBusiness user that can be used in staff-owned fields.
Siteid int, name string, tag string, domain string, type string, active booleanBusiness site available for site-aware records.
Booking typeid string, name string, enabled boolean, calendar stringAppointment booking type configured by the business.
Deal stagename string, label stringStable deal workflow stage value and display label.

Endpoints

MethodPathScopeDescription
GET/2.0/reference/tagsreference:readList tags for contacts, leads, or vehicles.
GET/2.0/reference/vehicle-statusesreference:readList vehicle statuses.
GET/2.0/reference/vehicle-typesreference:readList vehicle stock types.
GET/2.0/reference/staff-usersreference:readList staff users.
GET/2.0/reference/sitesreference:readList business sites.
GET/2.0/reference/booking-typesreference:readList appointment booking types.
GET/2.0/reference/deal-stagesreference:readList deal workflow stages.
GET/2.0/reference/lead-channelsreference:readList lead message/reply channels.
GET/2.0/reference/lead-typesreference:readList lead enquiry types.
GET/2.0/reference/media-backgroundsreference:readList vehicle media background options.
GET/2.0/reference/invoice-statusesreference:readList invoice/order/purchase statuses.
GET/2.0/reference/job-boardsreference:readList job boards that can be applied to a vehicle.
GET/2.0/reference/webhook-eventsreference:readList subscribable webhook events.

List Tags

Returns business-specific tags for contacts, leads, or vehicles.

GET /2.0/reference/tags

Parameters

NameTypeRequiredDescription
resourcestringYesResource to fetch tags for. Accepted values are contacts, contact, leads, lead, vehicles, and vehicle.
typestringRequired when resource is vehicles or vehicleVehicle stock type: s, t, u, or r.

Returns

Returns an object containing the normalised resource, the selected vehicle type or false, and a tags array.

Request
GET /2.0/reference/tags?resource=vehicles&type=s
Authorization: Bearer key_id.secret
Accept: application/json
Response
{
  "success": true,
  "data": {
    "resource": "vehicles",
    "type": "s",
    "tags": [
      {
        "name": "Retail Ready",
        "colour": "green",
        "type": "default",
        "defaulted": false
      }
    ]
  }
}

List Vehicle Statuses

Returns the vehicle statuses for a stock type. Vehicle statuses are type-aware: the numeric id is the type-independent code, but the name and label vary by vehicle type. For example code 2 is For Sale for in-stock/to-order vehicles, On Site for customer vehicles, In Use for courtesy vehicles, and Appraised for appraisals.

GET /2.0/reference/vehicle-statuses?type=appraisal

Parameters

type: the vehicle type, as a slug (in-stock (default), to-order, customer, courtesy, appraisal) or its stored key (s/t/u/r/a).

Returns

An object with the requested type and a statuses array (id, name, label).

Request
GET /2.0/reference/vehicle-statuses?type=appraisal
Authorization: Bearer key_id.secret
Accept: application/json
Response
{
  "success": true,
  "data": {
    "type": "appraisal",
    "statuses": [
      {
        "id": 1,
        "name": "added",
        "label": "Added"
      },
      {
        "id": 2,
        "name": "appraised",
        "label": "Appraised"
      },
      {
        "id": 3,
        "name": "accepted",
        "label": "Accepted"
      },
      {
        "id": 4,
        "name": "rejected",
        "label": "Rejected"
      }
    ]
  }
}

List Vehicle Types

Returns the public vehicle stock types. Each has a stored key id (s/t/u/r/a), a slug name and a label. The type on a vehicle is output as the slug; on create either the slug or the key is accepted.

GET /2.0/reference/vehicle-types

Parameters

No parameters.

Returns

Returns an array of vehicle type objects.

Request
GET /2.0/reference/vehicle-types
Authorization: Bearer key_id.secret
Accept: application/json
Response
{
  "success": true,
  "data": [
    {
      "id": "s",
      "name": "in-stock",
      "label": "In Stock"
    },
    {
      "id": "t",
      "name": "to-order",
      "label": "To Order"
    },
    {
      "id": "u",
      "name": "customer",
      "label": "Customer"
    },
    {
      "id": "r",
      "name": "courtesy",
      "label": "Courtesy"
    },
    {
      "id": "a",
      "name": "appraisal",
      "label": "Appraisal"
    }
  ]
}

List Staff Users

Returns business users that can be used for staff-owned fields, such as contact note authors and licence checks.

GET /2.0/reference/staff-users

Parameters

No parameters.

Returns

Returns an array of staff user objects. The role array depends on the business user configuration.

Request
GET /2.0/reference/staff-users
Authorization: Bearer key_id.secret
Accept: application/json
Response
{
  "success": true,
  "data": [
    {
      "id": 123,
      "name": "Alex Example",
      "role": [
        "admin"
      ]
    }
  ]
}

List Sites

Returns the main business site as id: 0, followed by active configured sites.

GET /2.0/reference/sites

Parameters

No parameters.

Returns

Returns an array of site objects.

Request
GET /2.0/reference/sites
Authorization: Bearer key_id.secret
Accept: application/json
Response
{
  "success": true,
  "data": [
    {
      "id": 0,
      "name": "Example Motors",
      "tag": "",
      "domain": "example.com",
      "type": "default",
      "active": true
    },
    {
      "id": 12,
      "name": "Example Motors North",
      "tag": "north",
      "domain": "north.example.com",
      "type": "default",
      "active": true
    }
  ]
}

List Booking Types

Returns appointment booking types configured by the business. To see when a type can actually be booked, use GET /appointments/availability.

GET /2.0/reference/booking-types

Parameters

No parameters.

Returns

Returns an array of booking type objects. duration_minutes is the appointment length for the type.

Request
GET /2.0/reference/booking-types
Authorization: Bearer key_id.secret
Accept: application/json
Response
{
  "success": true,
  "data": [
    {
      "id": "custom_abcd1234efgh",
      "name": "Test Drive",
      "enabled": true,
      "calendar": "Sales",
      "duration_minutes": 30
    }
  ]
}

List Deal Stages

Returns the fixed deal workflow stages accepted by deal filters.

GET /2.0/reference/deal-stages

Parameters

No parameters.

Returns

Returns an array of deal stage objects.

Request
GET /2.0/reference/deal-stages
Authorization: Bearer key_id.secret
Accept: application/json
Response
{
  "success": true,
  "data": [
    {
      "name": "pending",
      "label": "Pending"
    },
    {
      "name": "begin",
      "label": "Begin"
    },
    {
      "name": "part_exchange",
      "label": "Part Exchange"
    },
    {
      "name": "product",
      "label": "Product"
    },
    {
      "name": "delivery_collection",
      "label": "Delivery Collection"
    },
    {
      "name": "summary",
      "label": "Summary"
    },
    {
      "name": "finance",
      "label": "Finance"
    },
    {
      "name": "payment",
      "label": "Payment"
    },
    {
      "name": "payment_partial",
      "label": "Payment"
    },
    {
      "name": "confirm",
      "label": "Confirm"
    },
    {
      "name": "handover",
      "label": "Handover"
    },
    {
      "name": "complete",
      "label": "Complete"
    },
    {
      "name": "declined",
      "label": "Declined"
    },
    {
      "name": "fatal",
      "label": "Fatal"
    }
  ]
}

List Lead Channels

Returns the channels available for lead messages and replies, used by the lead message channel field.

GET /2.0/reference/lead-channels

Parameters

No parameters.

Returns

Returns an array of channel objects (id, name).

Request
GET /2.0/reference/lead-channels
Authorization: Bearer key_id.secret
Accept: application/json
Response
{
  "success": true,
  "data": [
    { "id": "email", "name": "Email" },
    { "id": "sms", "name": "SMS" },
    { "id": "whatsapp", "name": "WhatsApp" }
  ]
}

List Lead Types

Returns the enquiry types used in the lead type field.

GET /2.0/reference/lead-types

Parameters

No parameters.

Returns

Returns an array of lead type objects (id, name).

Request
GET /2.0/reference/lead-types
Authorization: Bearer key_id.secret
Accept: application/json
Response
{
  "success": true,
  "data": [
    { "id": "test_drive", "name": "Test Drive" },
    { "id": "finance", "name": "Finance" },
    { "id": "part_exchange", "name": "Part Exchange" }
  ]
}

List Media Backgrounds

Returns the media backgrounds available for the vehicle media edit options.background field (the default set plus any business-configured backgrounds).

GET /2.0/reference/media-backgrounds

Parameters

No parameters.

Returns

Returns an array of background objects (id, the value to send as options.background, plus name and key).

Request
GET /2.0/reference/media-backgrounds
Authorization: Bearer key_id.secret
Accept: application/json
Response
{
  "success": true,
  "data": [
    { "id": "abstract-wave.jpg", "name": "Abstract Wave", "key": "abstract-wave" },
    { "id": "white.png", "name": "White", "key": "white" }
  ]
}

List Invoice Statuses

Returns the status codes/names for a sales document type. Status code 2 is paid for invoices and purchases but converted for orders (an order that has been converted into an invoice).

GET /2.0/reference/invoice-statuses?type=order

Parameters

type: one of invoice (default), order, or purchase.

Returns

An object with the requested type and a statuses array (id, name, label).

Request
GET /2.0/reference/invoice-statuses?type=order
Authorization: Bearer key_id.secret
Accept: application/json
Response
{
  "success": true,
  "data": {
    "type": "order",
    "statuses": [
      { "id": 0, "name": "draft", "label": "Draft" },
      { "id": 1, "name": "issued", "label": "Issued" },
      { "id": 2, "name": "converted", "label": "Converted" },
      { "id": 3, "name": "cancelled", "label": "Cancelled" }
    ]
  }
}

List Job Boards

Returns the job boards (templates) configured for the business that can be applied to a vehicle, each with its stages and the task names within them.

GET /2.0/reference/job-boards

Parameters

No parameters.

Returns

Returns an array of job board objects. apply lists the stock types the board is applied to automatically (empty when it is only applied manually).

Request
GET /2.0/reference/job-boards
Authorization: Bearer key_id.secret
Accept: application/json
Response
{
  "success": true,
  "data": [
    {
      "id": 12,
      "tag": "PREP",
      "name": "Standard Prep",
      "description": "Workshop preparation checklist.",
      "apply": ["s"],
      "stages": [
        { "name": "Inspection", "tasks": ["Road test", "Diagnostics"] },
        { "name": "Valet", "tasks": ["Wash", "Interior detail"] }
      ]
    }
  ]
}

List Webhook Events

Returns the webhook events available to subscribe to, each with the resource it carries and the read scope a subscription needs to receive its payload.

GET /2.0/reference/webhook-events

Parameters

No parameters.

Returns

Returns an array of webhook event objects.

Request
GET /2.0/reference/webhook-events
Authorization: Bearer key_id.secret
Accept: application/json
Response
{
  "success": true,
  "data": [
    {
      "event": "vehicle.created",
      "resource": "vehicle",
      "description": "A vehicle was created.",
      "scope": "vehicles:read"
    },
    {
      "event": "lead.updated",
      "resource": "lead",
      "description": "A lead was updated.",
      "scope": "leads:read"
    }
  ]
}