Circuit Drivers API

Endpoints to operate on [Drivers](/docs/models/driver) resources.

Operations 6

GET /drivers List Drivers #
POST /drivers Create a new driver #
GET /drivers/{driverId} Retrieve a driver #
DELETE /drivers/{driverId} Remove a driver #
PATCH /drivers/{driverId} Update a driver #
POST /drivers:import Batch import drivers #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/circuit-drivers-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

circuit-drivers-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Spoke Drivers API
  description: This is the documentation of the Spoke Public API HTTP endpoints.
  version: v1
servers:
- url: https://api.spoke.com/public/v1
security:
- BasicAuth: []
tags:
- name: Drivers
  description: Endpoints to operate on Drivers resources.
paths:
  /drivers:
    get:
      operationId: listDrivers
      summary: List Drivers
      tags:
      - Drivers
      parameters:
      - schema:
          default: 50
          type: number
          minimum: 1
          maximum: 50
        in: query
        name: maxPageSize
        required: false
        description: The maximum number of drivers to return.
      - schema:
          type: string
          minLength: 1
          maxLength: 255
        in: query
        name: pageToken
        required: false
        description: The page token to continue from.
      - schema:
          type: object
          properties:
            active:
              description: Filter by the active status of the driver. Inactive drivers will not be assigned to any routes.
              type: string
              enum:
              - 'true'
              - 'false'
          additionalProperties: false
        in: query
        name: filter
        required: false
        description: 'The filter to apply to the list of drivers. The filter param is passed like this: `?filter[active]=true` or like this: `?filter.active=true`'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  drivers:
                    type: array
                    items:
                      $ref: '#/components/schemas/driverSchema'
                    description: The drivers.
                  nextPageToken:
                    anyOf:
                    - type: string
                    - type: 'null'
                    description: The next page token.
                required:
                - drivers
                - nextPageToken
                definitions:
                  driverSchema:
                    type: object
                    properties:
                      id:
                        type: string
                        pattern: ^drivers\/[a-zA-Z0-9---_]{1,50}$
                        description: The driver id, in the format `drivers/<id>`
                      name:
                        anyOf:
                        - type: string
                        - type: 'null'
                        description: The name of the driver.
                      email:
                        anyOf:
                        - type: string
                        - type: 'null'
                        description: The email of the driver.
                      phone:
                        anyOf:
                        - type: string
                        - type: 'null'
                        description: The phone number of the driver.
                      displayName:
                        anyOf:
                        - type: string
                        - type: 'null'
                        description: The display name of the driver.
                      active:
                        type: boolean
                        description: Whether the driver membership is active or paused. Paused drivers will not be assigned to any routes.
                      depots:
                        type: array
                        items:
                          type: string
                          pattern: ^depots\/[a-zA-Z0-9---_]{1,50}$
                        description: Depots associated with the driver.
                      routeOverrides:
                        type: object
                        properties:
                          startTime:
                            anyOf:
                            - type: object
                              properties:
                                hour:
                                  type: integer
                                  minimum: -9007199254740991
                                  maximum: 9007199254740991
                                  description: Hour of the day
                                minute:
                                  type: integer
                                  minimum: -9007199254740991
                                  maximum: 9007199254740991
                                  description: Minute of the hour
                              required:
                              - hour
                              - minute
                              additionalProperties: false
                              description: Time of day in hours and minutes. Uses a 24 hour clock.
                            - type: 'null'
                            description: Driver's start time.
                          endTime:
                            anyOf:
                            - type: object
                              properties:
                                hour:
                                  type: integer
                                  minimum: -9007199254740991
                                  maximum: 9007199254740991
                                  description: Hour of the day
                                minute:
                                  type: integer
                                  minimum: -9007199254740991
                                  maximum: 9007199254740991
                                  description: Minute of the hour
                              required:
                              - hour
                              - minute
                              additionalProperties: false
                              description: Time of day in hours and minutes. Uses a 24 hour clock.
                            - type: 'null'
                            description: Driver's end time.
                          startAddress:
                            anyOf:
                            - type: object
                              properties:
                                address:
                                  type: string
                                  description: The address of the stop.
                                addressLineOne:
                                  type: string
                                  description: The first line of the address.
                                addressLineTwo:
                                  type: string
                                  description: The second line of the address.
                                latitude:
                                  anyOf:
                                  - type: number
                                    minimum: -90
                                    maximum: 90
                                  - type: 'null'
                                  description: The latitude of the address in decimal degrees.
                                longitude:
                                  anyOf:
                                  - type: number
                                    minimum: -180
                                    maximum: 180
                                  - type: 'null'
                                  description: The longitude of the address in decimal degrees.
                                placeId:
                                  anyOf:
                                  - type: string
                                  - type: 'null'
                                  description: The identifier of the place corresponding to this stop on Google Places
                                placeTypes:
                                  type: array
                                  items:
                                    type: string
                                  description: Array of strings that is provided by the Google AutoCompleteAPI
                              required:
                              - address
                              - addressLineOne
                              - addressLineTwo
                              - latitude
                              - longitude
                              - placeId
                              - placeTypes
                              additionalProperties: false
                              description: The address of the stop.
                            - type: 'null'
                            description: Driver's start location.
                          endAddress:
                            anyOf:
                            - type: object
                              properties:
                                address:
                                  type: string
                                  description: The address of the stop.
                                addressLineOne:
                                  type: string
                                  description: The first line of the address.
                                addressLineTwo:
                                  type: string
                                  description: The second line of the address.
                                latitude:
                                  anyOf:
                                  - type: number
                                    minimum: -90
                                    maximum: 90
                                  - type: 'null'
                                  description: The latitude of the address in decimal degrees.
                                longitude:
                                  anyOf:
                                  - type: number
                                    minimum: -180
                                    maximum: 180
                                  - type: 'null'
                                  description: The longitude of the address in decimal degrees.
                                placeId:
                                  anyOf:
                                  - type: string
                                  - type: 'null'
                                  description: The identifier of the place corresponding to this stop on Google Places
                                placeTypes:
                                  type: array
                                  items:
                                    type: string
                                  description: Array of strings that is provided by the Google AutoCompleteAPI
                              required:
                              - address
                              - addressLineOne
                              - addressLineTwo
                              - latitude
                              - longitude
                              - placeId
                              - placeTypes
                              additionalProperties: false
                              description: The address of the stop.
                            - type: 'null'
                            description: Driver's end location.
                          maxStops:
                            anyOf:
                            - type: integer
                              minimum: -9007199254740991
                              maximum: 9007199254740991
                            - type: 'null'
                            description: Maximum number of Stops the Driver can take in a route.
                          drivingSpeed:
                            type: string
                            enum:
                            - slower
                            - average
                            - faster
                            description: The relative driving speed of the driver compared to others.
                          deliverySpeed:
                            type: string
                            enum:
                            - slower
                            - average
                            - faster
                            description: The relative delivery speed of the driver compared to others.
                          vehicleType:
                            anyOf:
                            - type: string
                              enum:
                              - bike
                              - scooter
                              - car
                              - small_truck
                              - truck
                              - electric_cargo_bike
                            - type: 'null'
                            description: The vehicle type the driver will be using for deliveries.
                        required:
                        - startTime
                        - endTime
                        - startAddress
                        - endAddress
                        - maxStops
                        - drivingSpeed
                        - deliverySpeed
                        - vehicleType
                        description: Settings to override default route settings.
                    required:
                    - id
                    - name
                    - email
                    - phone
                    - displayName
                    - active
                    - depots
                    - routeOverrides
                    additionalProperties: false
                    description: A driver.
                description: Success
        '400':
          description: Query parameters are invalid
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: The error message.
                  code:
                    type: string
                    description: The error code.
                  param:
                    type: string
                    description: The parameter that caused the error.
                  url:
                    type: string
                    description: The URL with more information about the error.
                required:
                - message
                description: Query parameters are invalid
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: The error message.
                  url:
                    type: string
                    description: The URL with more information about the error.
                required:
                - message
                description: Unauthorized
        '500':
          description: An internal server error occurred
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: The error message.
                  code:
                    type: string
                    description: The error code.
                  param:
                    type: string
                    description: The parameter that caused the error.
                  url:
                    type: string
                    description: The URL with more information about the error.
                required:
                - message
                description: An internal server error occurred
        default:
          description: The default error model
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: The error message.
                  code:
                    type: string
                    description: The error code.
                  param:
                    type: string
                    description: The parameter that caused the error.
                  url:
                    type: string
                    description: The URL with more information about the error.
                required:
                - message
                description: The default error model
    post:
      operationId: createDriver
      summary: Create a new driver
      tags:
      - Drivers
      description: Create a driver with the given data in your team. Prefer using the batch import endpoint for creating multiple drivers at once as it is more efficient, faster.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  description: The driver's full name
                  anyOf:
                  - type: string
                    minLength: 1
                    maxLength: 255
                  - type: 'null'
                displayName:
                  description: The name displayed for the driver in the UI
                  anyOf:
                  - type: string
                    minLength: 1
                    maxLength: 255
                  - type: 'null'
                email:
                  description: Driver's email
                  anyOf:
                  - type: string
                    minLength: 1
                    maxLength: 255
                    format: email
                    pattern: ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
                  - type: 'null'
                phone:
                  description: Driver's phone number
                  anyOf:
                  - type: string
                    minLength: 1
                    maxLength: 255
                  - type: 'null'
                depots:
                  description: The depot IDs associated with the driver in the format `depots/<id>`, duplicates will be ignored. If set to null or not provided, the team's Main depot will be set as driver depot.
                  anyOf:
                  - minItems: 1
                    maxItems: 50
                    type: array
                    items:
                      description: The depot ID, in the format `depots/<id>`
                      type: string
                      pattern: ^depots\/[a-zA-Z0-9---_]{1,50}$
                  - type: 'null'
                routeOverrides:
                  description: Overrides for the driver route behavior.
                  anyOf:
                  - type: object
                    properties:
                      startAddress:
                        description: Address of a start location for every route assigned to this driver. If the latitude and longitude fields are set they will override any of the others. The addressName field is not used for geocoding and is only for display purposes.
                        anyOf:
                        - type: object
                          properties:
                            addressName:
                              description: The name of the address. This will not be used for geocoding, and is only for the final address display purposes.
                              anyOf:
                              - type: string
                                minLength: 1
                                maxLength: 255
                              - type: 'null'
                            addressLineOne:
                              description: The first line of the address.
                              anyOf:
                              - type: string
                                minLength: 1
                                maxLength: 255
                              - type: 'null'
                            addressLineTwo:
                              description: The second line of the address.
                              anyOf:
                              - type: string
                                minLength: 1
                                maxLength: 255
                              - type: 'null'
                            city:
                              description: The city of the address.
                              anyOf:
                              - type: string
                                minLength: 1
                                maxLength: 100
                              - type: 'null'
                            state:
                              description: The state of the address.
                              anyOf:
                              - type: string
                                minLength: 1
                                maxLength: 100
                              - type: 'null'
                            zip:
                              description: The zip code of the address.
                              anyOf:
                              - type: string
                                minLength: 1
                                maxLength: 100
                              - type: 'null'
                            country:
                              description: The country of the address.
                              anyOf:
                              - type: string
                                minLength: 1
                                maxLength: 100
                              - type: 'null'
                            latitude:
                              description: The latitude of the address in decimal degrees.
                              anyOf:
                              - type: number
                                minimum: -90
                                maximum: 90
                              - type: 'null'
                            longitude:
                              description: The longitude of the address in decimal degrees.
                              anyOf:
                              - type: number
                                minimum: -180
                                maximum: 180
                              - type: 'null'
                          additionalProperties: false
                        - type: 'null'
                      endAddress:
                        description: Address of an end location for every route assigned to this driver. If the latitude and longitude fields are set they will override any of the others. The addressName field is not used for geocoding and is only for display purposes.
                        anyOf:
                        - type: object
                          properties:
                            addressName:
                              description: The name of the address. This will not be used for geocoding, and is only for the final address display purposes.
                              anyOf:
                              - type: string
                                minLength: 1
                                maxLength: 255
                              - type: 'null'
                            addressLineOne:
                              description: The first line of the address.
                              anyOf:
                              - type: string
                                minLength: 1
                                maxLength: 255
                              - type: 'null'
                            addressLineTwo:
                              description: The second line of the address.
                              anyOf:
                              - type: string
                                minLength: 1
                                maxLength: 255
                              - type: 'null'
                            city:
                              description: The city of the address.
                              anyOf:
                              - type: string
                                minLength: 1
                                maxLength: 100
                              - type: 'null'
                            state:
                              description: The state of the address.
                              anyOf:
                              - type: string
                                minLength: 1
                                maxLength: 100
                              - type: 'null'
                            zip:
                              description: The zip code of the address.
                              anyOf:
                              - type: string
                                minLength: 1
                                maxLength: 100
                              - type: 'null'
                            country:
                              description: The country of the address.
                              anyOf:
                              - type: string
                                minLength: 1
                                maxLength: 100
                              - type: 'null'
                            latitude:
                              description: The latitude of the address in decimal degrees.
                              anyOf:
                              - type: number
                                minimum: -90
                                maximum: 90
                              - type: 'null'
                            longitude:
                              description: The longitude of the address in decimal degrees.
                              anyOf:
                              - type: number
                                minimum: -180
                                maximum: 180
                              - type: 'null'
                          additionalProperties: false
                        - type: 'null'
                      startTime:
                        description: The start time for the driver's work day.
                        anyOf:
                        - description: Time of day in hours and minutes. Use a 24 hour clock.
                          type: object
                          properties:
                            hour:
                              description: Hour of the day
                              type: integer
                              minimum: -9007199254740991
                              maximum: 9007199254740991
                            minute:
                              description: Minute of the hour
                              type: integer
                              minimum: -9007199254740991
                              maximum: 9007199254740991
                          required:
                          - hour
                          - minute
                          additionalProperties: false
                        - type: 'null'
                      endTime:
                        description: The end time for the driver's work day.
                        anyOf:
                        - description: Time of day in hours and minutes. Use a 24 hour clock.
                          type: object
                          properties:
                            hour:
                              description: Hour of the day
                              type: integer
                              minimum: -9007199254740991
                              maximum: 9007199254740991
                            minute:
                              description: Minute of the hour
                              type: integer
                              minimum: -9007199254740991
                              maximum: 9007199254740991
                          required:
                          - hour
                          - minute
                          additionalProperties: false
                        - type: 'null'
                      maxStops:
                        description: The maximum number of stops that can be allocated to this driver.
                        anyOf:
                        - type: integer
                          minimum: 0
                          maximum: 9007199254740991
                        - type: 'null'
                      drivingSpeed:
                        anyOf:
                        - default: average
                          description: How fast this driver drives compared to the Team's average
                          type: string
                          enum:
                          - slower
                          - average
                          - faster
                        - type: 'null'
                      deliverySpeed:
                        description: How fast this driver delivers compared to the Team's average
                        anyOf:
                        - default: average
                          type: string
                          enum:
                          - slower
                          - average
                          - faster
                        - type: 'null'
                      vehicleType:
                        description: The type of vehicle used by this driver
                        anyOf:
                        - type: string
                          enum:
                          - bike
                          - scooter
                          - car
                          - small_truck
                          - truck
                          - electric_cargo_bike
                        - type: 'null'
                  - type: 'null'
              additionalProperties: false
      responses:
        '200':
          description: The created driver
          content:
            application/json:
              schema:
                description: The created driver
                $ref: '#/components/schemas/driverSchema'
        '400':
          description: Failed to validate the request
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: The error message.
                  code:
                    type: string
                    description: The error code.
                  param:
                    type: string
                    description: The parameter that caused the error.
                  url:
                    type: string
                    description: The URL with more information about the error.
                required:
                - message
                description: Failed to validate the request
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: The error message.
                  url:
                    type: string
                    description: The URL with more information about the error.
                required:
                - message
                description: Unauthorized
        '422':
          description: Failed to create driver.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    anyOf:
                    - type: string
                      enum:
                      - An error occured when creating the driver, but the error is not due to a validation error, instead it is another conflict, check if the provided data is semantically valid.
                    - type: string
                required:
                - message
                description: Failed to create driver.
        '500':
          description: An internal server error occurred
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: The error message.
                  code:
                    type: string
                    description: The error code.
                  param:
                    type: string
                    description: The parameter that caused the error.
                  url:
                    type: string
                    description: The URL with more information about the error.
                required:
                - message
                description: An internal server error occurred
        default:
          description: The default error model
          content

# --- truncated at 32 KB (98 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/circuit/refs/heads/main/openapi/circuit-drivers-api-openapi.yml