Get vehicle types and department addresses
Returns the rooftop's stored rooftop configuration, including new / pre-owned vehicle types.
Reads the rooftop's stored configuration record for domain=rooftop and entity=INFO. The entityconfig object holds vehicleType (new, preOwned) and the optional sales, service, parts and finance addresses. It can also hold other rooftop settings, such as the departments, holidays and timezone saved under Department Details & Holidays. The rooftop form reads vehicleType; it also reads the department addresses but does not use them. If nothing is stored yet, the call returns 200 with data: {}. Nothing is written.
Before you call it
-
You need
enterpriseIdandteamId. -
All four query parameters are required. For this task,
domainisrooftopandentityisINFO(upper case, as the UI sends it). -
Authentication: No authentication check on this route
-
Rate limit: Not documented
-
Processing: Synchronous. One database read.
Request
- Pass
enterpriseId,teamId,domain=rooftopandentity=INFO. - Treat
data: {}as "not configured yet".
| Parameter | Type | Required | Description |
|---|---|---|---|
| Query parameters | — | — | Sent in the query string. |
enterpriseId | string | Required | Dealer group ID. |
teamId | string | Required | Rooftop ID. |
domain | string | Required | rooftop for this task. |
entity | string | Required | INFO for this task. |
| Headers | — | — | Sent as HTTP headers. |
Authorization | string | Optional | The UI sends Bearer YOUR_TOKEN; the route does not check it. |
Sample request
curl -X GET "https://api.spyne.ai/central-config/v1/integration?enterpriseId=<enterpriseId>&teamId=<teamId>&domain=rooftop&entity=INFO" \
-H "Authorization: Bearer YOUR_TOKEN"import requests
res = requests.get(
"https://api.spyne.ai/central-config/v1/integration",
params={"enterpriseId": "<enterpriseId>", "teamId": "<teamId>", "domain": "rooftop", "entity": "INFO"},
headers={"Authorization": "Bearer YOUR_TOKEN"},
)
print(res.status_code, res.json())const qs = new URLSearchParams({ enterpriseId: "<enterpriseId>", teamId: "<teamId>", domain: "rooftop", entity: "INFO" });
const res = await fetch(`https://api.spyne.ai/central-config/v1/integration?${qs}`, {
headers: { Authorization: "Bearer YOUR_TOKEN" },
});
console.log(res.status, await res.json());Sample response
{
"success": true,
"message": "Integration configuration retrieved successfully",
"data": {
"_id": "<configId>",
"enterpriseId": "<enterpriseId>",
"teamId": "<teamId>",
"enterpriseName": "Example Motors Group",
"teamName": "Example Motors",
"userId": "<userId>",
"domain": "rooftop",
"type": "<documentType>",
"entity": "INFO",
"entityconfig": {
"vehicleType": { "new": true, "preOwned": true },
"serviceAddress": { "address": { "addressLine1": "100 Example Ave" }, "geoCoordinates": { "lat": 30.2672, "lng": -97.7431 } }
},
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z"
}
}{ "success": true, "message": "Integration config not found", "data": {} }{
"success": false,
"message": "Missing required query parameters",
"error": "enterpriseId, teamId, domain, and entity are required query parameters"
}{ "success": false, "message": "Failed to fetch integration configuration", "error": "..." }Response fields
| Parameter | Type | Description |
|---|---|---|
success | boolean | true on 200. |
message | string | Integration configuration retrieved successfully, or Integration config not found when nothing is stored. |
data | object | The stored record, or {}. |
data.entityconfig.vehicleType.new | boolean | Rooftop sells new vehicles. |
data.entityconfig.vehicleType.preOwned | boolean | Rooftop sells pre-owned vehicles. |
data.entityconfig.salesAddress / serviceAddress / partsAddress / financeAddress | object | Optional department addresses: {address, geoCoordinates{lat, lng}}. |
data.entityconfig.* | any | Other rooftop settings stored on the same record, such as departments, holidays, timezone and language. |
data.createdAt / updatedAt | string | Timestamps. |
Errors
| Status | Reason | When it happens |
|---|---|---|
400 | Missing required query parameters | Any of enterpriseId, teamId, domain, entity is missing. |
500 | Failed to fetch integration configuration | Database error. |
Lookups use an exact match on entity. The code changes the case of entity only for pre_onboarding. Sending info instead of INFO may return the "not found" response.
Next
Fill the new / pre-owned checkboxes from entityconfig.vehicleType. Send the selected values back in entityConfig.vehicleType on Save rooftop details.
- Called before: Get rooftop details.
- Called after: Save rooftop details.
Updated about 1 hour ago
