Introduction
Welcome to the Claire Automotive Support Public API !
You can use our API to access Claire API endpoints, which gives information on various sections from our database.
Endpoints description, method, url, request/response shema and their description are presented on the left. The right side contains example requests (via curl) and reponses (in JSON).
For more information on types and possible value, refer to the Models and Enumeration section.
In the future, more endpoints will be added in order to provide complete access to Claire database.
If this is your first time reading the docs, check out the Authentication section for obtaining and using API keys.
Changelog section contains all updates related to this API.
Authentication
To authorize, use this code:
# With shell, you can just pass the correct header with each request
curl "api_endpoint_here"
-H "Authorization: $your_api_key"
# Alternatively, you can place the api_key as a query parameter:
curl "api_endpoint_here?api_key=$your_api_key"
Make sure to replace
your_api_key
with your actual API key.
Claire Automotive Support API uses API keys to allow access to the API..
You can register a new API key only as a Dealer Admin, inside Claire application, on the API Keys
section.
Currently you can create as many API Keys as you want and give them a name. Once you don't want to use it you can disable it from the dashboard.
Claire API expects the API key to be included in all API requests to the server. There are two ways to include it in requests:
As a query parameter:
?api_key=&your_api_key
As a header:
Authorization: &your_api_key
Appointments
This controller provides endpoints to get the appointment details.
PublicAccount can get the appointments by the DMSNr and also get the appointment details by the appointment ID.
Get Appointments by DMS number
curl "API_BASE/v1/appointments?location_id=...&dms_nr=...&customer_kind=..."
-H "Authorization: $your_api_key"
This endpoint retrieves Appointments by the provided DMS Number. If the DMS number is of customer type, customer_kind
query parameter needs to be provided as well.
HTTP Request
GET /v1/appointments?location_id=...&dms_nr=...&customer_kind=...
The request JSON response is:
[
{
"created_on": "0001-01-01T00:00:00Z",
"updated_on": "0001-01-01T00:00:00Z",
"id": 0,
"dms_number": "",
"workorder_number": "",
"reference_number": "",
"importer_version": "",
"dms_status": "",
"car_check_started": false,
"customer_waiting": false,
"is_local": false,
"is_money": false,
"is_star": false,
"is_star_color": "",
"is_shop": false,
"is_shop_color": "",
"is_lease_company": false,
"has_extra_check": false,
"final_check_has_remarks": false,
"is_recurring": false,
"pin_count": 0,
"warranty_pin_count": 0,
"pin_icon_color": "",
"next_date": null,
"predicted_next_date": null,
"time_car_app": "0001-01-01T00:00:00Z",
"is_pinned": false,
"is_pinned_manually": false,
"is_canceled_manually": false,
"key_dropped_at": null,
"key_picked_up_at": null,
"key_picked_up_by_id": null,
"key_dropped_back_at": null,
"key_dropped_back_by_id": null,
"key_dropped_back_in": null,
"key_picked_up_back_at": null,
"key_picked_up_back_by_id": null,
"driver_id": null,
"owner_id": null,
"contract_id": null,
"location_id": 0,
"car_id": 0,
"vin": "",
"car_model": "",
"car_make": "",
"license_plate_number": "",
"current_km": 0,
"dms_km": 0,
"next_km": 0,
"car_apk_date": null,
"car_hu_date": null,
"driver_initials": "",
"driver_title": "",
"driver_firstname": "",
"driver_surname": "",
"contractor_initials": "",
"contractor_title": "",
"contractor_firstname": "",
"contractor_surname": "",
"owner_initials": "",
"owner_title": "",
"owner_firstname": "",
"owner_surname": "",
"company": "",
"appointment_status_identifier": 0,
"last_update": null,
"last_user": "",
"approved_not_fixed_count": 0,
"customer_driver": null,
"customer_owner": null,
"customer_contract": null,
"check_initiator": null,
"car": null,
"car_profile_picture": null,
"final_check_images": null,
"final_check_videos": null,
"status_history": null,
"interventions": null,
"customcom_key": null,
"appointment_status_name": "",
"checklists": null,
"dealer_name": "",
"dealer_commercial_name": "",
"location_name": "",
"location_phone": "",
"driver_dms_number": null,
"owner_dms_number": null,
"contract_dms_number": null,
"car_dms_number": null,
"dms_location_source": null
}
]
Request schema
Parameter | Type | Required | Description |
---|---|---|---|
location_id | DealerLocationID | true | The DealerLocationID the appointment belongs to. To obtain the list of Locations use the Locations endpoints. |
dms_nr | string | true | The DMS number of the appointment or customer. |
customer_kind | string | false | Required only if the DMS number is of a customer. Can be one of the following: driver, owner, contractor. |
Response schema
This endpoint return an array of Appointment, please refer to the JSON response column on the right, or to the Models and Enumeration section for more details.
Get a Specific Appointment
curl "API_BASE/v1/appointments/{id}"
-H "Authorization: $your_api_key"
This endpoint retrieves a specific Appointment by the provided Claire Appointment ID.
HTTP Request
GET /v1/appointments/{id}
The request JSON response is:
{
"created_on": "0001-01-01T00:00:00Z",
"updated_on": "0001-01-01T00:00:00Z",
"id": 0,
"dms_number": "",
"workorder_number": "",
"reference_number": "",
"importer_version": "",
"dms_status": "",
"car_check_started": false,
"customer_waiting": false,
"is_local": false,
"is_money": false,
"is_star": false,
"is_star_color": "",
"is_shop": false,
"is_shop_color": "",
"is_lease_company": false,
"has_extra_check": false,
"final_check_has_remarks": false,
"is_recurring": false,
"pin_count": 0,
"warranty_pin_count": 0,
"pin_icon_color": "",
"next_date": null,
"predicted_next_date": null,
"time_car_app": "0001-01-01T00:00:00Z",
"is_pinned": false,
"is_pinned_manually": false,
"is_canceled_manually": false,
"key_dropped_at": null,
"key_picked_up_at": null,
"key_picked_up_by_id": null,
"key_dropped_back_at": null,
"key_dropped_back_by_id": null,
"key_dropped_back_in": null,
"key_picked_up_back_at": null,
"key_picked_up_back_by_id": null,
"driver_id": null,
"owner_id": null,
"contract_id": null,
"location_id": 0,
"car_id": 0,
"vin": "",
"car_model": "",
"car_make": "",
"license_plate_number": "",
"current_km": 0,
"dms_km": 0,
"next_km": 0,
"car_apk_date": null,
"car_hu_date": null,
"driver_initials": "",
"driver_title": "",
"driver_firstname": "",
"driver_surname": "",
"contractor_initials": "",
"contractor_title": "",
"contractor_firstname": "",
"contractor_surname": "",
"owner_initials": "",
"owner_title": "",
"owner_firstname": "",
"owner_surname": "",
"company": "",
"appointment_status_identifier": 0,
"last_update": null,
"last_user": "",
"approved_not_fixed_count": 0,
"customer_driver": null,
"customer_owner": null,
"customer_contract": null,
"check_initiator": null,
"car": null,
"car_profile_picture": null,
"final_check_images": null,
"final_check_videos": null,
"status_history": null,
"interventions": null,
"customcom_key": null,
"appointment_status_name": "",
"checklists": null,
"dealer_name": "",
"dealer_commercial_name": "",
"location_name": "",
"location_phone": "",
"driver_dms_number": null,
"owner_dms_number": null,
"contract_dms_number": null,
"car_dms_number": null,
"dms_location_source": null
}
Request schema
Parameter | Type | Required | Description |
---|---|---|---|
id | AppointmentID | true | The ID of the Appointment to retrieve. |
Response schema
This endpoint return an object of type Appointment, please refer to the JSON response column on the right, or to the Models and Enumeration section for more details.
Import Appointments
curl "API_BASE/v1/appointments/import"
-H "Authorization: $your_api_key"
This endpoint enables the creation and updating of appointments within Claire.
The appointment location Identifier must be within the scope of the PublicAccount's Dealer. There can only be one location per import. The location cannot be connected to keyloop. The car parameter is mandatory and should include details like make, model, registration and VIN. At least one customer kind must be provided, typically this is the driver.
This endpoint will import what is valid, even if some appointment(s) are not valid or fail to be imported. Instead, the response always provide two maps, for what succeeded and what failed, with the DMS number as offset. You must process these maps and not only rely on the http 200 code returned.
It's important to note that the DMSNrs are used to identify what actions will be taken to import. If a dms_nr already exists within Claire for the given location, the object will be updated. If a dms_nr does not exist within Claire for the given location, the object will be created. The only exception to this, is when the dms_created_on is provided alongside, this is then treated as a composite unique.
All associated websocket and webhook events will be pushed to users.
HTTP Request
POST /v1/appointments/import
The request Body payload is:
{
"appointments": null
}
The request JSON response is:
{
"imported": null,
"failed": null
}
Request schema
Parameter | Type | Required | Description |
---|---|---|---|
Appointments | []validation.Appointment | true | Appointments to be imported |
Response schema
This endpoint return an object with the following fields, please refer to the JSON response column on the right for an example.
Parameter | Type |
---|---|
Imported | map[string]model.AppointmentID |
Failed | map[string]string |
Checks
This controller provides endpoints to retrieve the checks belonging to specific appointment.
To get the checks for a specific appointment, appointment ID needs to be provided.
Get Checks of a Specific Appointment
curl "API_BASE/v1/checks?appointment_id=..."
-H "Authorization: $your_api_key"
This endpoint retrieves Checks of a specific Appointment by the provided Appointment ID.
HTTP Request
GET /v1/checks?appointment_id=...
The request JSON response is:
[
{
"created_on": "0001-01-01T00:00:00Z",
"updated_on": "0001-01-01T00:00:00Z",
"id": 0,
"duration": 0,
"appointment_id": 0,
"car_id": 0,
"intervention_id": null,
"mechanic": null,
"checklist": null,
"receptionist": null,
"question_items": null
}
]
Request schema
Parameter | Type | Required | Description |
---|---|---|---|
appointment_id | AppointmentID | true | The ID of the Appointment whose checks are to be retrieved. |
Response schema
This endpoint return an array of Check, please refer to the JSON response column on the right, or to the Models and Enumeration section for more details.
Locations
This controller provides endpoints to retrieve the locations.
The locations are provided as a list and only those locations are provided which belongs to the dealer ID of the public account.
Get All Locations
curl "API_BASE/v1/locations"
-H "Authorization: $your_api_key"
This endpoint retrieves all Locations.
HTTP Request
GET /v1/locations
The request JSON response is:
[
{
"created_on": "0001-01-01T00:00:00Z",
"updated_on": "0001-01-01T00:00:00Z",
"id": 0,
"NotifierKey": "",
"dms_location_source": "",
"name": "",
"commercial_name": "",
"headline": "",
"footerline": "",
"logo": "",
"street": "",
"postal_code": "",
"city": "",
"country": "",
"phone_nr": "",
"DeskCheckInEnabled": false,
"IsKeyloopEventEnabled": false,
"IsShareboxEnabled": false,
"HasAutoflexPassword": null
}
]
Request schema
This request does not accept any parameters.
Response schema
This endpoint return an array of DealerLocation, please refer to the JSON response column on the right, or to the Models and Enumeration section for more details.
Tags
This controller provides endpoint to retrieves all the tags.
Get Tags
curl "API_BASE/v1/tags"
-H "Authorization: $your_api_key"
This endpoint retrieves all the tags.
HTTP Request
GET /v1/tags
The request JSON response is:
[
{
"created_on": "0001-01-01T00:00:00Z",
"updated_on": "0001-01-01T00:00:00Z",
"id": 0,
"name": "",
"color": "",
"system": false
}
]
Request schema
This request does not accept any parameters.
Response schema
This endpoint return an array of Tag, please refer to the JSON response column on the right, or to the Models and Enumeration section for more details.
Questions
This controller provides the endpoints to retrieve the question details.
This controller returns all the default questions and also the dealer questions.
Get Questions
curl "API_BASE/v1/questions"
-H "Authorization: $your_api_key"
This endpoint retrieves all the default questions plus the dealer questions.
HTTP Request
GET /v1/questions
The request JSON response is:
[
{
"created_on": "0001-01-01T00:00:00Z",
"updated_on": "0001-01-01T00:00:00Z",
"id": 0,
"question": "",
"role_id": 0,
"question_elements": null
}
]
Request schema
This request does not accept any parameters.
Response schema
This endpoint return an array of Question, please refer to the JSON response column on the right, or to the Models and Enumeration section for more details.
Car
This controller provides endpoints to retrieve the Car details.
The car details is provided based on the VIN of the Car at the dealer locations.
Get a car by VIN
curl "API_BASE/v1/car?vin=..."
-H "Authorization: $your_api_key"
This endpoint search if a car exists with the given VIN in the dealer locations
HTTP Request
GET /v1/car?vin=...
The request JSON response is:
{
"created_on": "0001-01-01T00:00:00Z",
"updated_on": "0001-01-01T00:00:00Z",
"id": 0,
"is_truck": false,
"make": "",
"model": "",
"fuel": "",
"reg_number": "",
"vin": "",
"dms_number": "",
"picture": "",
"dms_registration": null,
"rdw_first_registration": null,
"rdw_first_registration_nl": null,
"rdw_type_goedkeurings_nummer": "",
"rdw_type": "",
"rdw_variant": "",
"rdw_uitvoering": "",
"apk_date_dms": null,
"hu_date_dms": null,
"warranty_date_start": null,
"warranty_date_end": null,
"mcc_status": null,
"mcc_status_time": null,
"tyres_on_car": null,
"tyres_in_storage": null,
"truck_tyres": null,
"notes": null
}
Request schema
Parameter | Type | Required | Description |
---|---|---|---|
vin | string | true | VIN of the Car |
Response schema
This endpoint return an object of type Car, please refer to the JSON response column on the right, or to the Models and Enumeration section for more details.
Webhooks
Webhooks allows to setup up triggers in Claire to be notified whenever a specific change or action has been made, or when something is available.
This feature is useful to fetch new appointment data from our Public API as soon as it has been updated.
There are two ways to create a webhook.
Claire Dashboard
- Login to Claire as Dealer Admin (minimum role required to see the webhook page)
- In the main menu, choose Webhooks
- Click on the plus button in bottom-right corner
- Fill in the form accordingly i.e.
- provide a name to the webhook
- select Location (optional, if provided will be triggered only for the given location, otherwise it will be triggered for all locations of the selected Dealer)
- choose the trigger from the drop down
- provide an url which will be called by the webhook
- add necessary headers if required
Public API
To use this method, an API key is required, it can be created in the Claire dashboard
1. Login to Claire as Dealer Admin (minimum role required to see the API page) 2. In the main menu, choose Claire API 3. Click on Create API Key and enter the required fields 4. In the list you can now click on Show the API key, for the row that you just created
Contact support if needed to create an API key.
See the Create a webhook section below for more details on how to create a webhook with this API.
Whitelisting
If you have a firewall or if you want to restrict who can call the URLs defined in your webhooks, use the the following IP addresses:
- Production: 34.91.154.69
- Development: 34.91.177.194
Payload
A json object will be passed as body of the POST request made to your webhooks URLs, with the following fields:
Field | Type | Optional | Description |
---|---|---|---|
appointment_id | integer | No | The Claire appointment ID, to be used with endpoints of this API |
dealer_id | integer | No | The Claire dealer ID, to be used with endpoints of this API |
dealer_location_id | integer | No | The Claire location ID, to be used with endpoints of this API |
wo_nr | string | No | The appointment's work order number, taken from the DMS |
communication_key | string | Yes | The appointment's customer communication key. Only passed for communication related triggers. |
customer_dmsnr | string | Yes | The customer's DMS number, taken from the DMS. Only passed for communication related triggers. |
customer_type | string | Yes | The customer type, can be either 'driver', 'owner' or 'contractor'. Only passed for communication related triggers. |
Get the list of triggers
curl "API_BASE/v1/webhooks/list_triggers"
-H "Authorization: $your_api_key"
This endpoint returns the list of all the triggers that can be used to create a webhook
HTTP Request
GET /v1/webhooks/list_triggers
The request JSON response is:
[
{
"created_on": "0001-01-01T00:00:00Z",
"updated_on": "0001-01-01T00:00:00Z",
"id": 0,
"name": "",
"description": ""
}
]
Request schema
This request does not accept any parameters.
Response schema
This endpoint return an array of WebhookTrigger, please refer to the JSON response column on the right, or to the Models and Enumeration section for more details.
Get the list of existing webhooks
curl "API_BASE/v1/webhooks/list"
-H "Authorization: $your_api_key"
This endpoint returns the list of webhooks created with the api key used as authentication
HTTP Request
GET /v1/webhooks/list
The request JSON response is:
[
{
"created_on": "0001-01-01T00:00:00Z",
"updated_on": "0001-01-01T00:00:00Z",
"id": 0,
"name": "",
"webhook_trigger_id": 0,
"dealer_id": 0,
"dealer_location_id": null,
"public_account_id": null,
"user_id": null,
"url": "",
"queued": false,
"active": false,
"headers": null,
"public_account": null,
"user": null,
"has_recent_error": null
}
]
Request schema
This request does not accept any parameters.
Response schema
This endpoint return an array of Webhook, please refer to the JSON response column on the right, or to the Models and Enumeration section for more details.
Create a webhook
curl "API_BASE/v1/webhooks/create"
-H "Authorization: $your_api_key"
This endpoint create a webhook that will call the given URL, every time the given trigger occurs. The URL can be called with optional headers, if given. A JSON object with three fields is passed as POST payload to the URL called - Claire Appointment ID (appointment_id) - Claire DealerLocation ID (dealer_location_id) - WorkOrder Number (wo_nr). You have a limit of webhooks per API key that can be created, contact support if you reach it.
HTTP Request
POST /v1/webhooks/create
The request Body payload is:
{
"created_on": "0001-01-01T00:00:00Z",
"updated_on": "0001-01-01T00:00:00Z",
"id": 0,
"name": "",
"webhook_trigger_id": 0,
"dealer_id": 0,
"dealer_location_id": null,
"public_account_id": null,
"user_id": null,
"url": "",
"queued": false,
"active": false,
"headers": null,
"public_account": null,
"user": null,
"has_recent_error": null
}
The request JSON response is:
{
"ID": 0
}
Request schema
Parameter | Type | Required | Description |
---|---|---|---|
Webhook | Webhook | true |
Response schema
This endpoint return an object with the following fields, please refer to the JSON response column on the right for an example.
Parameter | Type |
---|---|
ID | WebhookID |
Get a webhook details
curl "API_BASE/v1/webhooks/view?webhook_id=..."
-H "Authorization: $your_api_key"
This endpoint returns the webhook details, including optional headers if any, for the webhook ID provided
HTTP Request
GET /v1/webhooks/view?webhook_id=...
The request JSON response is:
{
"created_on": "0001-01-01T00:00:00Z",
"updated_on": "0001-01-01T00:00:00Z",
"id": 0,
"name": "",
"webhook_trigger_id": 0,
"dealer_id": 0,
"dealer_location_id": null,
"public_account_id": null,
"user_id": null,
"url": "",
"queued": false,
"active": false,
"headers": null,
"public_account": null,
"user": null,
"has_recent_error": null
}
Request schema
Parameter | Type | Required | Description |
---|---|---|---|
webhook_id | WebhookID | true | The Webhook ID to retrieve details |
Response schema
This endpoint return an object of type Webhook, please refer to the JSON response column on the right, or to the Models and Enumeration section for more details.
Update a webhook
curl "API_BASE/v1/webhooks/update"
-H "Authorization: $your_api_key"
This endpoint updates a webhook that was created with the same API key, for the same dealer, based on the webhook ID given. Headers are replaced, so make sure to provide them if you do not intend to remove them.
HTTP Request
POST /v1/webhooks/update
The request Body payload is:
{
"created_on": "0001-01-01T00:00:00Z",
"updated_on": "0001-01-01T00:00:00Z",
"id": 0,
"name": "",
"webhook_trigger_id": 0,
"dealer_id": 0,
"dealer_location_id": null,
"public_account_id": null,
"user_id": null,
"url": "",
"queued": false,
"active": false,
"headers": null,
"public_account": null,
"user": null,
"has_recent_error": null
}
The request JSON response is:
This endpoint do not return anything, only the HTTP status code matters.
Request schema
Parameter | Type | Required | Description |
---|---|---|---|
Webhook | Webhook | true |
Response schema
This endpoint do not return anything, only the HTTP status code matters.
Delete a webhook
curl "API_BASE/v1/webhooks/delete?webhook_id=..."
-H "Authorization: $your_api_key"
This endpoint deletes the webhook for the provided webhook ID if it was created with the same API key, for the same dealer.
HTTP Request
POST /v1/webhooks/delete?webhook_id=...
The request JSON response is:
This endpoint do not return anything, only the HTTP status code matters.
Request schema
Parameter | Type | Required | Description |
---|---|---|---|
webhook_id | WebhookID | true | The ID of the Webhook to be deleted |
Response schema
This endpoint do not return anything, only the HTTP status code matters.
Test a webhook
curl "API_BASE/v1/webhooks/test"
-H "Authorization: $your_api_key"
This endpoint triggers the webhook for the provided webhook ID if it was created with the same API key, for the same dealer.
HTTP Request
POST /v1/webhooks/test
The request Body payload is:
{
"WebhookID": 0,
"CommunicationReceiverID": null,
"Payload": {
"WebhookTriggerID": 0,
"AppointmentID": 0,
"DealerID": 0,
"DealerLocationID": 0,
"WONr": "",
"CommunicationKey": null,
"CustomerDMSNr": null,
"CustomerType": null,
"ReceptionistName": null,
"ReceptionistPhone": null,
"ReceptionistProfilePictureURL": null,
"CustomerRemarks": null,
"CorrectPhone": null,
"CorrectEmail": null,
"CustomerName": null,
"LocationVAT": null,
"ScheduledInterventions": null,
"CustomerOrder": null,
"CustomerContactItems": null,
"DMSLocationSource": "",
"IsShop": null,
"IsShopColor": null
}
}
The request JSON response is:
This endpoint do not return anything, only the HTTP status code matters.
Request schema
Parameter | Type | Required | Description |
---|---|---|---|
Message | webhook.Message | true |
Response schema
This endpoint do not return anything, only the HTTP status code matters.
List webhook errors
curl "API_BASE/v1/webhooks/list_errors"
-H "Authorization: $your_api_key"
This endpoint returns a paginated list of errors that have occurred for a webhook. It is limited to the past 3 months.
HTTP Request
POST /v1/webhooks/list_errors
The request Body payload is:
{
"WebhookID": 0,
"Page": 0
}
The request JSON response is:
{
"items": null,
"nb_pages": 0
}
Request schema
Parameter | Type | Required | Description |
---|---|---|---|
webhook_id | WebhookID | true | The Webhook ID to retrieve list of errors |
page | int | true | Page number for the list |
Response schema
This endpoint return an object with the following fields, please refer to the JSON response column on the right for an example.
Parameter | Type |
---|---|
Items | []model.WebhookError |
NbPages | int |
Models and Enumeration
CommunicationChannelID Enumeration
Value | Description |
---|---|
1 | |
2 | SMS |
3 | Webhook, used when a third party send the communication link |
MCCStatus Enumeration
Value | Description |
---|---|
0 | Brand not supported |
1 | No card |
2 | Invalid card |
3 | Invalid card bis |
4 | Expired card |
QuestionElementTemplate Enumeration
Value | Description |
---|---|
dropdown | Dropdown |
dropdown_multi | Multiple selection dropdown |
solution_element | Solution element |
textfield | Text field |
number | Number field |
textarea | Textarea |
spinner | Spinner |
datepicker | Date picker |
tyre | Tyre element |
QuestionResultStatus Enumeration
Value | Description |
---|---|
0 | OK |
1 | OK with remarks |
2 | Advised |
3 | Necessary |
4 | Not worked on |
RoleID Enumeration
Value | Description |
---|---|
10 | Top level user role (has all permissions) |
20 | Claire admin role |
25 | Support adminole role, similar to claire admin but without deleting rights |
30 | Manage dealers attached to it |
40 | Manage a single dealer |
50 | Uses the dashboard and does aanname checks |
60 | Does car checks |
70 | Allowed to use multiple locations for one dealer |
80 | Does quality controls |
90 | Perform leads, recall and warranty related tasks on allowed locations from one or more dealers |
100 | User by tablet on the counter of receptionists |
110 | Manufacturer are allowed to update certain data after their requests to access specific appointments are being granted |
Season Enumeration
Value | Description |
---|---|
-1 | No season |
0 | All season |
1 | Winter season |
2 | Summer season |
3 | Truck season |
SnoozeDepartmentID Enumeration
Value | Description |
---|---|
1 | Sales |
2 | Customer communication center |
3 | BodyRepair |
4 | External |
5 | Digital |
6 | Parts |
SnoozeStatusID Enumeration
Value | Description |
---|---|
0 | Deleted |
1 | New |
2 | In progress |
3 | Approved |
4 | Declined |
5 | Declined |
6 | Done |
SnoozeTypeID Enumeration
Value | Description |
---|---|
1 | Snoozed for the customer next visit |
2 | Snoozed to make an offer |
3 | Snoozed to make a new appointment |
4 | Snoozed to remind the customer |
StatusIdentifier Enumeration
Value | Description |
---|---|
-1 | The appointment has been cancelled |
1 | Initial status for a new appoitment |
2 | A car check is completed |
3 | Pricing calculation is done |
4 | Customer approved pricing |
5 | The car is ready |
6 | An car check is required, set by a receptionist |
7 | Initial check done by a receptionist |
8 | Receptionists are doing pricing calculations |
9 | The customer is being contacted to approve pricing |
10 | A car check has started |
11 | A quality check is completed |
12 | The customer answered through online communication |
19 | The appointment is delayed and is waiting on a back order |
50 | Not returned by the backend, shown if the receptionist need to handle the Online Check-in answer |
51 | Not returned by the backend, shown if the Online Check-in is answered and handled |
52 | Not returned by the backend, shown if the car is in the shop |
53 | Not returned by the backend, shown if repair overview was sent to customer for car ok status |
54 | Not returned by the backend, shown if repair overview was sent to customer for quality check status |
55 | Not returned by the backend, shown if the car is out of the shop |
TyreLocation Enumeration
Value | Description |
---|---|
1 | On car |
2 | In storage |
3 | Removed, from car |
4 | Removed, from storage |
TyrePosition Enumeration
Value | Description |
---|---|
0 | No tyre |
1 | Car front left |
2 | Car front right |
3 | Car rear left |
4 | Car rear right |
5 | Storage front left |
6 | Storage front right |
7 | Storage rear left |
8 | Storage rear right |
9 | Car spare |
10 | Truck left |
11 | Truck right |
12 | Truck exterior left |
13 | Truck exterior right |
14 | Truck interior left |
15 | Truck interior right |
16 | Truck spare |
WebhookTriggerID Enumeration
Value | Description |
---|---|
1 | Check created |
2 | Offer ready |
3 | Customer OK |
4 | Car ready |
5 | Quality check |
6 | Online check-in is available |
7 | Online check-in is answered |
8 | Diagnose overview is available |
9 | Diagnose overview update is available |
10 | Diagnose overview is answered |
11 | Repair overview is available |
12 | Repair overview update is available |
13 | Car In Shop |
14 | Car Out of Shop |
15 | Online check-in was opened by the customer |
16 | Diagnose overview was opened by the customer |
17 | Repair overview was opened by the customer |
18 | Is_Shop Changed |
Appointment Model
Field | Type | Description |
---|---|---|
ID | AppointmentID | Appointment's ID |
DMSNr | string | Appointment ID in the DMS |
WONr | string | Appointment work order number |
RefNr | string | Appointment reference number in Claire |
ImporterVersion | string | Version of Claire importer used to import Appointment from DMS |
DMSStatus | string | Appointment status in DMS |
CarCheckStarted | bool | Car check has started |
CustomerWaiting | bool | The customer is waiting for the car |
IsLocal | bool | This appointment was created manually in Claire |
IsMoney | bool | A receptionist marked this appointment with the money marker |
IsStar | bool | A receptionist marked this appointment with the star marker |
IsStarColor | string | Color for the star icon |
IsShop | bool | A receptionist marked this appointment with the shop marker |
IsShopColor | string | Color for the shopping cart icon |
IsLeaseCompany | bool | The appointment’s car belongs to a lease company |
HasExtraCheck | bool | An extra check was performed |
FinalCheckHasRemarks | bool | Final check has remarks |
IsRecurring | bool | This car came in the last 28 days |
PinCount | int | Number of pinned items on the appointment |
WarrantyPinCount | int | Number of pinned items on the appointment of type warranty |
PinIconColor | string | Color of the pin icon on appointments main list |
NextDate | time.Time | Planned next appointment date |
PredictedNextDate | time.Time | Predicted next appointment date |
TimeCarApp | time.Time | Appointment date in Claire |
IsPinned | bool | Is the appointment pinned |
IsPinnedManually | bool | The appointment was pinned manually, preventing automatic overwriting |
IsCanceledManually | bool | The appointment was canceled manually, preventing automatic overwriting |
KeyDroppedAt | time.Time | Date and time the customer dropped the key in the keylocker |
KeyPickedUpAt | time.Time | Date and time the mechanic picked up the key in the keylocker |
KeyPickedUpByID | UserID | User ID of the mechanic who picked up the key |
KeyDroppedBackAt | time.Time | Date and time the mechanic dropped back the key in the keylocker |
KeyDroppedBackByID | UserID | User ID of the mechanic who dropped back the key |
KeyDroppedBackIn | string | Name of the keylocker in which key is dropped back in |
KeyPickedUpBackAt | time.Time | Date and time the customer picked back up the key in the keylocker |
KeyPickedUpBackByID | UserID | User ID of the receptionist who picked back up the key if they intervened |
CustomerDriverID | CustomerID | Customer (driver) ID in Claire |
CustomerOwnerID | CustomerID | Customer (owner) ID in Claire |
CustomerContractID | CustomerID | Customer (contractor) ID in Claire |
DealerLocationID | DealerLocationID | Unique DealerLocation ID of the location that the appointment occurred in |
CarID | CarID | Unique ID of the Car assigned to appointment |
VIN | string | Vehicle Identification Number |
CarModel | string | Car Model |
CarMake | string | Car Make |
RegNumber | string | License plate number |
CurrentKM | int | Current odometer status |
DMSKM | int | Odometer reading from the DMS |
NextKM | int | Planned next appointment in kilometers on the odometer |
CarAPKDate | time.Time | Dutch technical inspection DMS date |
CarHUDate | time.Time | German technical inspection DMS date |
DriverInitials | string | Driver initials |
DriverTitle | string | Driver Title (e.g. Dhr. Mvr.,) |
DriverFirstname | string | Driver's first name |
DriverSurname | string | Driver's last name |
ContractorInitials | string | Contractor's initials |
ContractorTitle | string | Contractor's Title (e.g. Dhr. Mvr.,) |
ContractorFirstname | string | Contractor's first name |
ContractorSurname | string | Contractor's last name |
OwnerInitials | string | Owner's initials |
OwnerTitle | string | Owner's Title (e.g. Dhr. Mvr.,) |
OwnerFirstname | string | Owner's first name |
OwnerSurname | string | Owner's last name |
Company | string | Contractor's company name |
AppointmentStatusIdentifier | StatusIdentifier | Current appointment's status identifier in Claire |
LastTimestamp | time.Time | Last time this appointment was updated |
LastUser | string | Name of the last user that interacted with the appointment |
NumApprovedItemsNotFixed | int | Number of items waiting to be fixed on the appointment |
CustomerDriver | Customer | Customer (Driver) in Claire |
CustomerOwner | Customer | Customer (Owner) in Claire |
CustomerContract | Customer | Customer (Contract) in Claire |
CheckInitiator | User | User that initiated check |
Car | Car | Car object, refer to that model for more details |
CarProfilePicture | string | Car profile picture URL |
FinalCheckImages | FinalCheckImage | Image added during the final check |
FinalCheckVideos | FinalCheckVideo | Video added during the final check |
StatusHistory | AppointmentStatusHistory | History of statuses |
Interventions | Intervention | List of initial interventions |
CustomcomReceptionistKey | string | |
AppointmentStatusName | string | Current appointment's status name |
ChecklistNames | string | List of the checklist's names performed |
DealerName | string | |
DealerCommercialName | string | |
LocationName | string | |
LocationPhone | string | |
DriverDMSNr | string | Driver ID in the DMS |
OwnerDMSNr | string | Owner ID in the DMS |
ContractDMSNr | string | Contractor ID in the DMS |
CarDMSNr | string | Car ID in the DMS |
DMSLocationSource | string | DMS Source for the location |
AppointmentStatusHistory Model
Field | Type | Description |
---|---|---|
ID | AppointmentStatusHistoryID | Claire Appointment Status History ID |
SARemarks | string | Remark when the status was set |
Timestamp | time.Time | Date and time when the status was set |
ChecklistID | ChecklistID | Claire's Checklist ID |
CheckID | CheckID | Claire's Check ID' |
Identifier | StatusIdentifier | Status identifier, refer to that enumeration for more details |
StatusName | string | Name of the status (deprecated, use Identifier) |
Car Model
Field | Type | Description |
---|---|---|
ID | CarID | Claire Car ID |
IsTruck | bool | True if its a truck |
Make | string | Car make |
Model | string | Car model |
Fuel | string | Fuel type |
RegNr | string | Registration plate |
VIN | string | Vehicle identification number |
DMSNr | string | Car ID in the DMS |
ProfilePicture | string | Car picture URL |
DMSRegistration | time.Time | DMS registration date |
RDWFirstRegistration | time.Time | First registration date |
RDWFirstRegistrationNL | time.Time | First NL registration date |
RDWTypeGoedkeuringsNummer | string | RDW type goedkeurings nummer |
RDWType | string | RDW type |
RDWVariant | string | RDW variant |
RDWUitvoering | string | RDW uitvoering |
APKDateDMS | time.Time | Dutch technical inspection DMS date |
HUDateDMS | time.Time | German technical inspection DMS date |
WarrantyDateStart | time.Time | Warranty start date |
WarrantyDateEnd | time.Time | Warranty end date |
MCCStatus | MCCStatus | Car status in MCC, refer to that enumeration for more details. |
MCCStatusTime | time.Time | Last status fetch date from MCC |
TyreOnCar | CarTyres | CarTyres object for the tyres on the car, see that model for more details. |
TyreInStorage | CarTyres | CarTyres object for the tyres in storage, see that model for more details. |
TruckTyres | TruckTyres | TruckTyres object for the tyres of truck |
Notes | CarNote | Notes on the car created in claire |
CarNote Model
Field | Type | Description |
---|
CarTyres Model
Field | Type | Description |
---|---|---|
ID | CarTyresID | Claire CarTyres ID |
FRProfile | float64 | Front right tyre tread depth |
FLProfile | float64 | Front left tyre tread depth |
RRProfile | float64 | Rear right tyre tread depth |
RLProfile | float64 | Rear left tyre tread depth |
FRPicture | string | Front right tyre picture URL |
FLPicture | string | Front left tyre picture URL |
RRPicture | string | Rear right tyre picture URL |
RLPicture | string | Rear left tyre picture URL |
Location | TyreLocation | Where the tyres are location, refer to that enumeration for more details |
FrontLeftTyre | Tyre | Tyre object for the front left tyre, refer to that model for more details |
FrontRightTyre | Tyre | Tyre object for the front right tyre, refer to that model for more details |
RearLeftTyre | Tyre | Tyre object for the rear left tyre, refer to that model for more details |
RearRightTyre | Tyre | Tyre object for the rear right tyre, refer to that model for more details |
Check Model
Field | Type | Description |
---|---|---|
ID | CheckID | Claire Check ID |
Duration | int | Check duration in seconds |
AppointmentID | AppointmentID | Claire appointment ID |
CarID | CarID | |
InterventionID | InterventionID | If provided, link the intervention for which this car check was done |
Mechanic | User | User object of the mechanic who performed the check, refer to that model for more detail |
Checklist | Checklist | Checklist object for this check, refer to that model for more details |
Receptionist | User | User object of the receptionist assigned to this check, refer to that model for more detail |
QuestionResults | QuestionResult | Array of QuestionResult object, containing the result of this check, refer to that model for more detail |
Checklist Model
Field | Type | Description |
---|---|---|
ID | ChecklistID | Claire Checklist ID |
Name | string | Name of the checklist |
TagNames | string | List of tags associated with this checklist |
Customer Model
Field | Type | Description |
---|---|---|
ID | CustomerID | Customer's ID |
MetaDMSNr | string | Some DMS can have multiple contacts for a single customer. This field, alongside dms_nr, help to identify which contact should be referenced |
DMSNr | string | Identifier in DMS |
Company | string | Company name |
IsLeaseCompany | bool | Is the company a lease company |
IsInternal | bool | Is this customer for Internal usage |
IsInternalEdited | bool | IsInternal was edited through Claire |
Passant | bool | Is the customer a walk-in without appointment |
Gender | int | Gender of the customer |
Title | string | Salutation title of the customer |
Initials | string | Initials of the customer |
FirstName | string | First Name of the customer |
Surname | string | Surname of the customer |
Street | string | Street address of the customer |
HouseNr | string | House Number of the customer |
Postcode | string | Postcode of the customer |
Place | string | Place of the customer |
Country | string | Country of the customer |
BlockCommunication | bool | Customer has opted for no communication |
PreferredCommunicationChannel | CommunicationChannelID | Preferred communication channel opted by the customer |
EmailPrivate | string | Private Email |
EmailBusiness | string | Business Email |
TelBusinessNr | string | Business Landline Number |
TelPrivateNr | string | Private Landline Number |
TelMobilePrivate | string | Private Mobile Number |
TelMobileBusiness | string | Business Mobile Number |
Birthday | time.Time | Birthday of the customer |
DealerLocationID | DealerLocationID | Location Identifier of the customer |
DealerID | DealerID | Dealer ID of the customer |
DealerLocation Model
Field | Type | Description |
---|---|---|
ID | DealerLocationID | Claire dealer location ID |
DMSLocationSource | string | DMS Datasource for the location |
Name | string | Name |
CommercialName | string | Commercial name of the Claire Dealer Location |
Headline | string | Headline |
Footerline | string | Footerline |
Logo | string | Logo URL |
Street | string | Street |
PostalCode | string | Postal code |
City | string | City |
Country | string | Country |
PhoneNr | string | Phone number |
FinalCheckImage Model
Field | Type | Description |
---|---|---|
ID | FinalCheckImageID | Claire Final Check Image ID |
URL | string | URL of the image |
Active | bool | Wheter the image is active |
VisibleInPDF | bool | Wheter the image is displayed in the PDF |
InterventionIndex | int | Index of the image for the intervention |
FinalCheckVideo Model
Field | Type | Description |
---|---|---|
ID | FinalCheckVideoID | Claire Final Check Video ID |
URL | string | URL of the Video |
Active | bool | Wheter the video is active |
InterventionIndex | int | Index of the video for the intervention |
Intervention Model
Field | Type | Description |
---|---|---|
ID | InterventionID | Claire Intervention ID |
DMSNr | string | Intervention ID in the DMS |
Title | string | Intervention title |
Description | string | Intervention description |
Price | float64 | Cost of intervention in integer format (divide by 100 to get a float) |
MechanicNotes | string | Mechanic's notes |
Pinned | bool | Whether the intervention is pinned in Claire |
Snoozed | bool | Whether the intervention is snoozed in Claire |
IsDeclinedByCustomer | bool | Whether the customer declined the intervention in Claire |
Status | int | Intervention status |
SolutionValue | string | |
SolutionUnit | string | |
SolutionType | string | |
MechanicFixed | bool | Was the intervention fixed by a Mechanic |
CustomerOK | bool | Customer has agreed to the intervention |
IsLocal | bool | Intervention was created manually in Claire |
VisibleInPDF | bool | Intervention is visible to the Customer |
SnoozeHistory | Snooze |
PublicAccount Model
Field | Type | Description |
---|
Question Model
Field | Type | Description |
---|---|---|
ID | QuestionID | Claire Question ID |
Title | string | Title of the question |
RoleID | RoleID | NULL if it is a default question available to all, otherwise the role ID of the user who created this question (meaning it is only visible to that Dealer's locations) |
QuestionElements | QuestionElement | List of question element in this question |
QuestionElement Model
Field | Type | Description |
---|---|---|
ID | QuestionElementID | Claire Question Element ID |
Name | string | Name of the question element |
Template | QuestionElementTemplate | Template of the question element, define what type of answer will be provided, refer to that enumeration for more details |
DefaultConfiguration | string | Default configuration, depending on the template can contain prefilled values or labels |
RoleID | RoleID | NULL if it is a default question element available to all, otherwise the role ID of the user who created this question element (meaning it is only visible to that Dealer's locations) |
QuestionResult Model
Field | Type | Description |
---|---|---|
ID | QuestionResultID | Claire Question Result ID |
Status | QuestionResultStatus | Item's status, refer to that enumeration for more details |
Title | string | Question's title |
Completed | bool | Question's completion |
MechanicNotes | string | Mechanic note |
MechanicFixed | bool | Wheter the mechanic fix this item |
CustomerApproved | bool | Wheter the customer approved to fix this item |
Price | float64 | Cost for this item |
TyrePosition | TyrePosition | 0 if TyreID is null |
TyreProfile | float64 | 0 if TyreID is null |
TruckAxle | int | Non-zero value for Truck Question Result Element |
Solution | string | Answer if the question template is of type solution |
SolutionValue | string | Value selected if the question template if of type solution |
SolutionType | string | Type selected if the question template if of type solution |
SolutionUnit | string | Unit selected if the question template if of type solution |
Snoozed | bool | Wheter the item is snoozed |
Pinned | bool | Wheter the item is pinned |
TyreID | TyreID | null if not a tyre question |
TimeCarApp | time.Time | Appointment date in Claire |
Tyre | Tyre | joined if TyreID is not null |
TyreReplacements | TyreReplacement | joined if any |
QuestionTags | Tag | Array of Tag objects associated to this question, refer to that model for more details |
ImageURLs | string | Array of image URL taken for this item |
VideoURLs | string | Array of video URL taken for this item |
AnswerItemNames | string | List of raw question's element's answers |
SnoozeHistory | Snooze | Each row represent a log line, showing what changed over time |
Snooze Model
Field | Type | Description |
---|---|---|
ID | SnoozeID | Snooze ID in Claire, each snooze ID represent a snooze log line |
QuestionResultID | QuestionResultID | ID of the question result snoozes, null if an intervention is snoozed |
InterventionID | InterventionID | Intervention ID of the intervention snoozed, null if a question result is snoozed |
SnoozeTypeID | SnoozeTypeID | Type of snooze, see enumeration |
SnoozeStatusID | SnoozeStatusID | Status of the snooze, see enumeration |
SnoozeDate | time.Time | Date selected when snoozed |
SnoozeDepartmentID | SnoozeDepartmentID | Department assigned, see enumeration |
Note | string | Note entered when snoozed |
UserID | UserID | ID of the user adding the snooze log line |
AppointmentID | AppointmentID | Appointment ID for this snooze |
DealerLocationID | DealerLocationID | Dealer Location ID for this snooze |
CarID | CarID | Car ID for this snooze |
Tag Model
Field | Type | Description |
---|---|---|
ID | TagID | Claire Tag ID |
Name | string | Name of the tag |
Color | string | Color of the tag |
System | bool | Wheter it is a system tag |
TruckTyres Model
Field | Type | Description |
---|---|---|
CarID | CarID | |
Axle | int | |
Position | TyrePosition | |
TyreID | TyreID | |
Profile | float64 | |
Picture | string | |
Tyre | Tyre |
Tyre Model
Field | Type | Description |
---|---|---|
ID | TyreID | Claire Tyre ID |
Manufacturer | string | Tyre manufacturer |
Description | string | Tyre description |
Width | int | Tyre width |
Height | int | Tyre height |
Size | float32 | Tyre size |
Speed | string | Tyre speed factor |
EAN | string | Tyre unique ID (EAN) |
Season | Season | Tyre season, refer to that enumeration for more details |
Deleted | bool | Whether the tyre is deleted |
CreatedByID | UserID | For manually created tyres, User ID of the creator, nil otherwise |
CreatedBy | User | created by user |
TyreReplacement Model
Field | Type | Description |
---|---|---|
ID | TyreReplacementID | Claire Tyre Replacement ID |
QuestionResultID | QuestionResultID | Claire Question Result ID |
TyreID | TyreID | Claire Tyre ID |
Price | float64 | Price of this replacement tyre |
CustomerAnswer | bool | Whether the mechanic can mount this replacement on the car or not |
Remark | string | Remarks from the receptionist or mechanic |
MechanicFixed | bool | Whether the mechanic has mounted this replacement on the car or not |
Selected | bool | Whether this replacement was selected by the customer to be mounted on the car or not |
Profile | float64 | Tyre tread profile entered by the mechanic after it was mounted on the car |
Tyre | Tyre | Tyre details for this replacement |
User Model
Field | Type | Description |
---|---|---|
ID | UserID | Claire User ID |
DMSNr | string | DMS Number of the Claire User |
FirstName | string | First name |
LastName | string | Last name |
string | Email in Claire | |
Username | string | Username in Claire |
Mobile | string | Mobile phone numer |
Phone | string | Phone numer |
Birthday | time.Time | Birthdate |
LastActive | time.Time | Last activity date in Claire |
Address1 | string | Address line 1 |
Address2 | string | Address line 2 |
ProfilePicture | string | Profile picture URL |
DealerLocationID | DealerLocationID | Default Location ID when loggin in |
Active | bool | Whether user's account is active |
Deleted | bool | Wheter user's account is deleted |
Archived | bool | Wheter user's account is archived |
Webhook Model
Field | Type | Description |
---|---|---|
ID | WebhookID | |
Name | string | Name of the webhook |
WebhookTriggerID | WebhookTriggerID | TriggerID for the webhook, see the list of triggers in the enumeration section |
DealerID | DealerID | Dealer Identifier that created this Webhook |
DealerLocationID | DealerLocationID | Location identifier |
PublicAccountID | PublicAccountID | Public Account that created this Webhook |
UserID | UserID | User that created this Webhook |
URL | string | URL to be called by the webhook |
Queued | bool | This Webhook should be sent synchronously in a queue to the URL |
Active | bool | Whether webhook is active |
Headers | WebhookHeader | webhook headers |
PublicAccount | PublicAccount | |
User | User | |
HasRecentError | bool |
WebhookError Model
Field | Type | Description |
---|---|---|
ID | WebhookErrorID | |
WebhookID | WebhookID | Webhook Identifier |
Reason | string | Reason for the error in webhook |
WebhookHeader Model
Field | Type | Description |
---|---|---|
ID | WebhookHeaderID | |
Name | string | |
Value | string | |
WebhookID | WebhookID | |
Webhook | Webhook |
WebhookTrigger Model
Field | Type | Description |
---|---|---|
ID | WebhookTriggerID | |
Name | string | |
Description | string |
Changelog
This section contains changes related to the Claire API. Changes will be included if:
- A new endpoint is added
- A new field is added to an existing endpoint
- Field description changes
- A field is deprecated
Initial release - 01.02.2019.
The following endpoints are included with initial release:
/appointments/{id}
/appointments/?customer_kind={kind}&dms_nr={dms_nr}&location_id={location_id}
/checks?appointment_id={appID}
/locations
Model updates - 05.06.2019.
Various models were updated. Most notable change is that id changed from string to integer.
Multiple updates - 02.12.2019.
Following changes have been made:
1 On the /checks
endpoint, inside question_items
object, field answer
instead of single answer, answer now contains multiple answers. The field is now of type array and renamed to answers
.
2 Second change on the /checks
endpoint is the snooze_info
object, inside question_items
object. Instead of a single object with fields title, note, type
, these are all now separate fields, as following: snooze_title, snooze_note, snooze_type
.
3 Following fields are depracated: Appointment object: car_fleet_number
User object: last_login
Car object: fleet_number
, fleet_identifier
Intervention object: section
Webhooks - 01.03.2021.
Webhooks allows you to setup triggers in Claire which can be used to notify you when a change is made on appointment. This feature is useful if you want to fetch new appointment data from PublicAPI as soon as it's updated.
To setup the webhooks follow this process:
1 Login to Claire 2 Click on "Webhooks" menu 3 Click on a "plus" button in bottom-right corner 4 Fill the form accordingly
Currently we support these triggers:
- Check created: Triggered when a check is created
- Offer ready: Triggered when an offer is ready
- Customer OK: Triggered when a customer is OK with the offer
- Car ready: Triggered when a car is ready
- Quality check: Triggered when a quality check is created
Automated Documentation - 01.04.2021
This documentation is now auto generated, a lot more details are available in each endpoint description and in the new Model and Enumeration section.
Two new endpoints /tags
and questions
have been added to retrieve the list of possible values related to question result's tags and questions.
Tyres information have been added at the Car and QuestionResult levels.
Import Appointment - 14.08.2023
New endpoint /appointments/import
has been added to create and update appointments in claire.
Refer to the relevant documentation for more details on how to use this.
Customer communication
If a communication was sent to the customer (Online check-in, Diagnose overview, Repair overview) the Appointment contain a key in the customcom_key
field.
This key is valid to open the communication in read only mode, as the receptionist do.
To open a communication from a key, use the following URL: https://mycarcheck.pro/#!/{customcom_key}
by replacing the key value.
Errors
The Claire Automotive Support API uses the following error codes:
Error Code | Meaning |
---|---|
400 | Bad Request : Your request is invalid. |
401 | Unauthorized : Your API key is wrong. |
404 | Not Found : The specified endpoint could not be found. |
405 | Method Not Allowed : You tried to access server with an invalid method. |
429 | Too Many Requests : You're making too many requests. |
500 | Internal Server Error : We had a problem with our server. Try again later. |
503 | Service Unavailable : We're temporarily offline for maintenance. Please try again later. |
Rate Limiting
All Claire APIs have rate limiting implemented. A single API key can make up to 10.800 requests per hour. After reaching the rate limit, HTTP Status 429 - Too Many Requests, will be returned.
Response headers contain rate-limiting details:
X-RateLimit-Limit: Number of requests you can make in an hour
X-RateLimit-Remaining: Number of requests left for the time window
X-RateLimit-Reset: The remaining window before the rate limit resets in UTC epoch seconds
Currently there is no rate limiting per dealer, but it may be introduced in future updates.