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

# /table

> Request a distance matrix asynchronously. Returns a table ID to poll status via /table/{id} and fetch results via /table/{id}/response. Use /table/{id}/progress for progress on large matrices (e.g. 2000x2000+).



## OpenAPI

````yaml POST /table
openapi: 3.1.0
info:
  title: Solvice Maps Routing API
  description: >
    The Solvice Maps Routing API provides distance matrices, routes, and travel
    time calculations

    for logistics and route optimization applications. Supports multiple routing
    engines including

    OpenStreetMap and TomTom with time-dependent traffic data.
  version: 1.0.0
  contact:
    name: Solvice Support
    url: https://solvice.io
    email: support@solvice.io
servers:
  - url: https://routing.solvice.io
    description: Production server
security:
  - apikey: []
tags:
  - name: Tables
    description: Distance/duration matrix operations
  - name: Cubes
    description: Time-dependent 3D travel time matrices
  - name: Routes
    description: Point-to-point routing
  - name: Trips
    description: Traveling salesman / round-trip optimization
paths:
  /table:
    post:
      tags:
        - Tables
      summary: Create table (async)
      description: >-
        Request a distance matrix asynchronously. Returns a table ID to poll
        status via /table/{id} and fetch results via /table/{id}/response. Use
        /table/{id}/progress for progress on large matrices (e.g. 2000x2000+).
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateTableDto'
        required: true
      responses:
        '201':
          description: Table created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TableDto'
        '400':
          description: Bad request - Invalid input parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Too many requests - Rate limit exceeded
          headers:
            X-RateLimit-Limit:
              description: The maximum number of requests allowed per time window
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: The number of requests remaining in the current time window
              schema:
                type: integer
            X-RateLimit-Reset:
              description: >-
                The time at which the current rate limit window resets in UTC
                epoch seconds
              schema:
                type: integer
            Retry-After:
              description: The number of seconds to wait before making another request
              schema:
                type: integer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    CreateTableDto:
      description: Table Dto
      examples:
        - coordinates:
            - - 4.9
              - 50.2
            - - 4.8
              - 50.4
            - - 5
              - 50.9
            - - 5.05
              - 50.9
      type: object
      required:
        - coordinates
      properties:
        coordinates:
          type: array
          items:
            type: array
            items:
              type: number
              format: double
          description: >-
            The coordinates this request will use, coordinates as [{lon},{lat}]
            values, in decimal degrees.
          minItems: 2
        sources:
          type:
            - array
            - 'null'
          items:
            type: integer
            format: int32
          description: >-
            An array of index elements (0 <= integer < #coordinates) to use
            location with given index as source. Default is to use all.
        destinations:
          type:
            - array
            - 'null'
          items:
            type: integer
            format: int32
          description: >-
            An array of index elements (0 <= integer < #coordinates) to use
            location with given index as destination. Default is to use all.
        annotations:
          type:
            - array
            - 'null'
          items:
            type: string
          description: >-
            Return the requested table or tables in response. Can be
            ['duration'] (return the duration matrix, default) or ['duration',
            distance'] (return both the duration matrix and the distance
            matrix).
        vehicleType:
          description: The vehicle type for which the table is requested
          type:
            - string
            - 'null'
          anyOf:
            - $ref: '#/components/schemas/VehicleType'
            - type: 'null'
        engine:
          description: >-
            Routing data engine. Use `TOMTOM` with `departureTime` for
            predictive traffic, or `TOMTOM_REAL_TIME` for live traffic (sync
            endpoints only — `departureTime` is ignored).
          type:
            - string
            - 'null'
          anyOf:
            - $ref: '#/components/schemas/RoutingEngine'
            - type: 'null'
        departureTime:
          description: >-
            The departure time (ISO8601) for which you want to calculate the
            route. This will take into account predictive travel time based on
            TomTom data.
          type:
            - string
            - 'null'
          examples:
            - '2024-03-15T08:30:00.000Z'
          anyOf:
            - $ref: '#/components/schemas/LocalDateTime'
            - type: 'null'
        interpolate:
          type:
            - boolean
            - 'null'
          description: >-
            Enable linear interpolation between time slices for more accurate
            results based on departure time
        exclude:
          type:
            - array
            - 'null'
          items:
            $ref: '#/components/schemas/RoadTypeExclude'
          description: Exclude certain road types from routing
    TableDto:
      type: object
      properties:
        id:
          type: integer
          format: int64
          description: Table id.
        status:
          description: Table status (IN_PROGRESS, SUCCEEDED, FAILED).
          type:
            - string
            - 'null'
          anyOf:
            - $ref: '#/components/schemas/Status'
            - type: 'null'
        errorMessage:
          type:
            - string
            - 'null'
          description: Error message if the Cube failed.
        hash:
          type:
            - integer
            - 'null'
          format: int32
          description: Hash of the Cube request
        nrOfSources:
          type:
            - integer
            - 'null'
          format: int32
          description: Number of sources in the table
        nrOfDestinations:
          type:
            - integer
            - 'null'
          format: int32
          description: Number of destinations in the table
        tableResponseId:
          type: integer
          format: int64
          description: Table response id.
        updatedAt:
          type:
            - string
            - 'null'
          description: Last update time of the table.
        createdAt:
          type:
            - string
            - 'null'
          description: Creation time of the table.
    ErrorResponse:
      type: object
      required:
        - code
        - message
      properties:
        code:
          type: string
        message:
          type: string
        timestamp:
          type: integer
          format: int64
    VehicleType:
      type: string
      enum:
        - CAR
        - BIKE
        - TRUCK
        - ELECTRIC_CAR
        - ELECTRIC_BIKE
    RoutingEngine:
      type: string
      description: >
        Routing data engine used to calculate distances/durations.


        - `OSM`: Open Street Map, traffic-unaware (default).

        - `TOMTOM`: TomTom map data with predictive traffic patterns. Use with
        `departureTime` and optionally `interpolate`.

        - `TOMTOM_REAL_TIME`: TomTom map data with **real-time traffic**. The
        `departureTime` field is ignored — every request uses the current time.
        Available on `POST /route` and `POST /table/sync` only (not on async
        `/table` or `/route/batch`).

        - `GOOGLE`: Google routing data (contact sales).

        - `ANYMAP`: Solvice's proprietary engine with advanced traffic modeling.

        - `CUSTOM`: Bring-your-own engine via custom integration.
      enum:
        - OSM
        - TOMTOM
        - GOOGLE
        - ANYMAP
        - CUSTOM
        - TOMTOM_REAL_TIME
    LocalDateTime:
      type: string
      format: date-time
    RoadTypeExclude:
      type: string
      enum:
        - TOLL
        - MOTORWAY
        - FERRY
        - TUNNEL
        - BRIDGE
    Status:
      type: string
      enum:
        - IN_PROGRESS
        - AGGREGATING
        - SUCCEEDED
        - FAILED
        - CREATING
  securitySchemes:
    apikey:
      type: apiKey
      in: header
      name: Authorization
      description: >-
        API key authentication. Include your API key in the Authorization
        header.

````