Revolo API
Vehicles
Vehicles in Revolo are assets. The public API accepts the vehicle record from your DMS — Revolo does not VIN-decode on this API. Image URLs are downloaded into Revolo storage.
Required fields
vin— 17 characters, no I / O / Q. Globally unique.year,make,modelmileage— integer 0–999,999
Optional fields
trim, stock_number, description, engine, engine_displacement, cylinders, transmission, drivetrain (FWD / RWD / AWD / 4WD), fuel_type, body_style, colors, condition, title_status, pricing fields, features, options, location fields, notes, cr_score, and image_urls.
Allowed title_status values: Title Present, Title Absent, Salvage (Branded), Total Loss (Branded), Flood (Branded), Branded – Limited As-Is (Red Light).
Image URLs
- HTTPS only, maximum 40 URLs, 10 MB each
- Private and link-local hosts are rejected
- Images are converted to JPEG and stored on Revolo
- A failed image does not fail vehicle creation — it is listed in
images.failed
POST /api/v1/assets
Create a vehicle only. Scope: assets:write.
curl -X POST https://app.revolo.ai/api/v1/assets \
-H "Authorization: Bearer ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"vin": "1HGCM82633A004352",
"year": 2022,
"make": "Honda",
"model": "Accord",
"trim": "EX",
"mileage": 18400,
"title_status": "Title Present",
"exterior_color": "White",
"image_urls": ["https://dms.example/cars/1/1.jpg"]
}'POST /api/v1/assets/:id/workflows
Send an existing Revolo vehicle to one or more workflows. Scope: workflows:send. The vehicle must belong to the connected organization.
curl -X POST https://app.revolo.ai/api/v1/assets/ASSET_UUID/workflows \
-H "Authorization: Bearer ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"workflow_ids": ["WORKFLOW_UUID"],
"pickup_zip": "80202",
"title_status": "Title Present",
"buy_now_price": 18500
}'POST /api/v1/assets/submit
Create the vehicle and immediately send it to workflow_ids. Scopes: assets:write and workflows:send.
curl -X POST https://app.revolo.ai/api/v1/assets/submit \
-H "Authorization: Bearer ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"vin": "1HGCM82633A004352",
"year": 2022,
"make": "Honda",
"model": "Accord",
"trim": "EX",
"mileage": 18400,
"title_status": "Title Present",
"exterior_color": "White",
"image_urls": ["https://dms.example/cars/1/1.jpg"],
"workflow_ids": ["WORKFLOW_UUID_1", "WORKFLOW_UUID_2"],
"pickup_zip": "80202",
"buy_now_price": 18500
}'{
"asset": {
"id": "asset-uuid",
"title": "2022 Honda Accord EX",
"vin": "1HGCM82633A004352",
"year": 2022,
"make": "Honda",
"model": "Accord",
"trim": "EX",
"mileage": 18400,
"status": "available",
"created_at": "2026-08-31T18:00:00.000Z",
"images": {
"imported": 1,
"failed": []
}
},
"workflows": [
{
"workflow_id": "WORKFLOW_UUID_1",
"status": "sent",
"asset_workflow_status_id": "status-uuid"
},
{
"workflow_id": "WORKFLOW_UUID_2",
"status": "failed",
"error": "This vehicle has already been sent to this workflow"
}
]
}Conflicts
A duplicate VIN returns 409. Sending the same vehicle to the same workflow again is reported per workflow as failed rather than failing the entire request.