> ## Documentation Index
> Fetch the complete documentation index at: https://docs.solvice.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Quickstart

> Get started with the Solvice Routing API v3 in under 5 minutes

## Overview

The V3 Routing API is a high-performance vehicle routing solver. It replaces the V2 VRP API with a faster engine, a cleaner job model with flat visit fields, and an itemised cost breakdown in every response.

## Base URL

```
https://api.solvice.io/v3/routing
```

## Your first solve

<Steps>
  <Step title="Get your API key">
    Sign in to the [Solvice Dashboard](https://platform.solvice.io) and copy your API key from **Settings → API Keys**.
  </Step>

  <Step title="Send a solve request">
    ```bash theme={null}
    curl -X POST https://api.solvice.io/v3/routing/solve \
      -H "Authorization: YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "vehicles": [
          {
            "id": "truck-1",
            "capacity": { "weight": 100 },
            "shifts": [
              {
                "from": "2026-04-01T08:00:00+02:00",
                "to":   "2026-04-01T17:00:00+02:00",
                "start": { "coordinate": [4.3517, 50.8503] },
                "end":   { "coordinate": [4.3517, 50.8503] }
              }
            ]
          }
        ],
        "jobs": [
          {
            "id": "delivery-1",
            "location": { "coordinate": [4.7005, 50.8798] },
            "service_duration_s": 300,
            "time_windows": [
              {
                "from": "2026-04-01T09:00:00+02:00",
                "to":   "2026-04-01T12:00:00+02:00"
              }
            ],
            "demand": { "weight": 10 }
          },
          {
            "id": "delivery-2",
            "location": { "coordinate": [3.7303, 51.0500] },
            "service_duration_s": 600,
            "time_windows": [
              {
                "from": "2026-04-01T10:00:00+02:00",
                "to":   "2026-04-01T15:00:00+02:00"
              }
            ],
            "demand": { "weight": 20 }
          }
        ]
      }'
    ```
  </Step>

  <Step title="Read the response">
    The response includes optimised routes with arrival times, distances, an itemised cost breakdown, and any unassigned jobs:

    ```json theme={null}
    {
      "summary": {
        "status": "solved",
        "vehicles_used": 1,
        "jobs_assigned": 2,
        "jobs_unassigned": 0,
        "total_distance_m": 142000,
        "total_duration_s": 7200,
        "estimated_cost": {
          "total": 7200,
          "components": {
            "travel": 7200,
            "waiting": 0,
            "overtime": 0,
            "lateness": 0,
            "vehicles_fixed": 0,
            "unassigned": 0,
            "preferences": 0,
            "imbalance": 0
          }
        },
        "elapsed_ms": 850,
        "iterations": 1200
      },
      "routes": [
        {
          "vehicle": { "type": "truck-1", "instance": 1 },
          "distance_m": 142000,
          "duration_s": 7200,
          "overtime_s": 0,
          "stops": [
            {
              "type": "start",
              "location": [4.3517, 50.8503],
              "departure": "2026-04-01T08:00:00+02:00"
            },
            {
              "type": "job",
              "id": "delivery-2",
              "location": [3.7303, 51.0500],
              "arrival": "2026-04-01T10:00:00+02:00",
              "departure": "2026-04-01T10:10:00+02:00",
              "wait_s": 0,
              "service_s": 600,
              "travel_time_s": 7200,
              "load_after": { "weight": 20 }
            },
            {
              "type": "job",
              "id": "delivery-1",
              "location": [4.7005, 50.8798],
              "arrival": "2026-04-01T11:10:00+02:00",
              "departure": "2026-04-01T11:15:00+02:00",
              "wait_s": 0,
              "service_s": 300,
              "travel_time_s": 3600,
              "load_after": { "weight": 30 }
            },
            {
              "type": "end",
              "location": [4.3517, 50.8503],
              "arrival": "2026-04-01T12:15:00+02:00"
            }
          ]
        }
      ],
      "unassigned": []
    }
    ```
  </Step>
</Steps>

## What's new in V3

| Feature           | V2                              | V3                                                     |
| ----------------- | ------------------------------- | ------------------------------------------------------ |
| Solver engine     | Timefold                        | Next-gen Solvice engine                                |
| Task model        | `jobs[]` flat array (V2 schema) | `jobs[]` with flat visit fields; shipments Coming soon |
| Capacity / demand | Array `[100]`                   | Named map `{ "weight": 100 }`                          |
| Start/end depot   | Vehicle top-level               | Inside `shifts[]`                                      |
| Distance matrices | Manual or auto                  | Auto via Solvice Maps                                  |
| Response format   | Nested trips/visits             | Typed `stops[]` with `load_after` named map            |
| Cost breakdown    | None                            | Itemised `estimated_cost` in every response            |
| Endpoint          | `/v2/vrp/sync/solve`            | `/v3/routing/solve`                                    |

## Next steps

* [Migration from V2](/guides/vrp/v3/migration-from-v2) — map V2 concepts to V3
* [API Reference](/api-reference/vrp/v3/solve) — full endpoint documentation
* [Concepts](/guides/vrp/v3/concepts) — understand jobs, vehicles, constraints, and objectives
