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, model
  • mileage — 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.

bash
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.

bash
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.

bash
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
  }'
json
{
  "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.