Saltar al contenido principal
Routal
API ReferenceVehicle

Create multiple vehicles (v3)

Bulk-creates vehicles in a project.

POST
/v3/vehicles

Bulk-creates vehicles in a project. Each vehicle carries its full configuration (capacity, provides / skills, working hours, breaks, start / end locations, driver, transport mode, traffic options).

v3 is the recommended endpoint for new integrations as it accepts the latest schema. The older POST /v2/vehicles is still fully supported.

private_key<token>

The Routal API authenticates requests with an API key passed as the private_key query string parameter. Generate and rotate your keys from the Developer Settings section of your Routal workspace.Never ship API keys to a browser or mobile app — they must stay server-side.

In: query

Query Parameters

project_id*string
Match^[0-9a-f]{24}

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v3/vehicles?project_id=string" \  -H "Content-Type: application/json" \  -d '[    {}  ]'
[
  {
    "id": "4f75d991ac359f8c4c79d762",
    "organization_id": "4f75d991ac359f8c4c79d762",
    "project_id": "4f75d991ac359f8c4c79d762",
    "external_id": "VEH-MAD-02",
    "label": "Refrigerated van — Madrid Downtown 02",
    "comments": "Access to central depots only before 09:00.",
    "phone": "+34612345678",
    "email": "carlos.lopez@example.com",
    "plate": "2596 KHO",
    "fuel_type": "diesel",
    "consumption": 8,
    "vehicle_model": "Transit Custom L2H2",
    "brand": "Ford",
    "color": "#1E88E5",
    "default_time_window": [
      28800,
      61200
    ],
    "default_working_days": [
      "Monday",
      "Tuesday",
      "Wednesday",
      "Thursday",
      "Friday"
    ],
    "default_min_distance": 5000,
    "default_max_distance": 120000,
    "default_max_time": 28800,
    "default_min_time": 3600,
    "default_max_weight": 800,
    "default_max_volume": 8,
    "default_max_services": 40,
    "default_start_location": {
      "location_id": "4f75d991ac359f8c4c79d762",
      "label": "Location label",
      "country": "Spain",
      "country_code": "ES",
      "state": "Catalonia",
      "city": "Barcelona",
      "street": "Calle de Pau Claris",
      "postal_code": "08302",
      "comments": "Location comments",
      "lat": 40.45,
      "lng": -3.68,
      "main_text": "Calle de Pau Claris 12",
      "secondary_text": "Barcelona, Catalonia, Spain"
    },
    "default_end_location": {
      "location_id": "4f75d991ac359f8c4c79d762",
      "label": "Location label",
      "country": "Spain",
      "country_code": "ES",
      "state": "Catalonia",
      "city": "Barcelona",
      "street": "Calle de Pau Claris",
      "postal_code": "08302",
      "comments": "Location comments",
      "lat": 40.45,
      "lng": -3.68,
      "main_text": "Calle de Pau Claris 12",
      "secondary_text": "Barcelona, Catalonia, Spain"
    },
    "default_provides": [
      "refrigerated",
      "lift_gate"
    ],
    "default_geo_fences": [
      "4f75d991ac359f8c4c79d762"
    ],
    "default_break": {
      "start": 43200,
      "end": 54000,
      "duration": 2700
    },
    "planned_start_time": 23400,
    "price_per_distance": 0.00045,
    "price_per_minute": 0.0035,
    "custom_fields": {},
    "enabled": true,
    "created_by": "4f75d991ac359f8c4c79d762",
    "created_at": "2026-05-29T14:55:24.339Z",
    "updated_at": "2026-05-29T14:55:24.339Z",
    "deleted_at": "2026-05-29T14:55:24.339Z",
    "deleted": false
  }
]
{
  "message": "Domain not found",
  "message_id": "highway.domain.error.not_found"
}
Empty
{
  "message": "Domain not found",
  "message_id": "highway.domain.error.not_found"
}
{
  "message": "Domain not found",
  "message_id": "highway.domain.error.not_found"
}
Empty
Empty