Drivings Planning API

Deterministic computation that is not persisted.

Operations 1

POST /api/agent/v1/study-plan Build a deterministic study-plan preview #

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/drivings-com:drivings-com-planning-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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

drivings-com-planning-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Drivings Public Agent Planning API
  version: '2026-07-22'
  description: Public, side-effect-free endpoints for discovering Drivings study options and source-backed test-centre information, plus computing a non-persistent study-plan preview. This API cannot book tests, buy products, send messages, or change accounts or learner data.
  contact:
    name: Drivings support
    email: support@drivings.com
    url: https://drivings.com/contact
servers:
- url: https://drivings.com
  description: Production
security: []
tags:
- name: Planning
  description: Deterministic computation that is not persisted.
paths:
  /api/agent/v1/study-plan:
    post:
      operationId: buildStudyPlanPreview
      summary: Build a deterministic study-plan preview
      description: Computes a bounded schedule and returns it without creating an account, starting a session, or persisting any data.
      tags:
      - Planning
      parameters:
      - $ref: '#/components/parameters/IdempotencyKey'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StudyPlanInput'
            example:
              region: uk
              course: car
              weeks: 4
              daysPerWeek: 5
              minutesPerDay: 20
      responses:
        '200':
          description: Non-persistent study-plan preview
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StudyPlanPreview'
        '400':
          description: The request was rejected.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '413':
          description: The request was rejected.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '415':
          description: The request was rejected.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: The request was rejected.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-side-effects: none
      x-idempotent: true
components:
  schemas:
    ErrorResponse:
      type: object
      required:
      - error
      properties:
        error:
          type: object
          required:
          - code
          - message
          properties:
            code:
              type: string
            message:
              type: string
            issues:
              type: array
              items:
                type: object
    StudyPlanInput:
      type: object
      required:
      - region
      - course
      additionalProperties: false
      properties:
        region:
          $ref: '#/components/schemas/Region'
        course:
          $ref: '#/components/schemas/Course'
        weeks:
          type: integer
          minimum: 1
          maximum: 16
          default: 4
        daysPerWeek:
          type: integer
          minimum: 1
          maximum: 7
          default: 5
        minutesPerDay:
          type: integer
          minimum: 10
          maximum: 120
          default: 20
    StudyPlanPreview:
      type: object
      required:
      - schemaVersion
      - kind
      - persisted
      - region
      - course
      - schedule
      - weeks
      - nextStep
      - disclaimer
      properties:
        schemaVersion:
          type: string
        kind:
          const: study_plan_preview
        persisted:
          const: false
        region:
          $ref: '#/components/schemas/Region'
        course:
          $ref: '#/components/schemas/Course'
        schedule:
          type: object
        weeks:
          type: array
          minItems: 1
          maxItems: 16
          items:
            type: object
        nextStep:
          $ref: '#/components/schemas/BrowserHandoff'
        disclaimer:
          type: string
    BrowserHandoff:
      type: object
      required:
      - url
      - kind
      - requiresHumanConfirmation
      properties:
        url:
          type: string
          format: uri
        kind:
          type: string
        requiresHumanConfirmation:
          const: true
        note:
          type: string
        warning:
          type: string
      additionalProperties: true
    Region:
      type: string
      enum:
      - uk
      - us
    Course:
      type: string
      enum:
      - car
      - motorcycle
      - lgv
      - pcv
      - adi
      - cdl
  parameters:
    IdempotencyKey:
      name: Idempotency-Key
      in: header
      required: false
      description: Opaque client-generated key echoed back on the response. This operation computes and returns without writing anything, so a retry cannot duplicate a side effect; the key is for correlating an attempt with its reply.
      schema:
        type: string
        maxLength: 255
  securitySchemes:
    drivingsOAuth:
      type: oauth2
      description: Not required by any operation in this document. It gates one MCP tool, the learner's own progress, and is listed so an agent can see the whole permission surface in one place.
      flows:
        authorizationCode:
          authorizationUrl: https://xqvjkpkownkftsdofpbb.supabase.co/auth/v1/authorize
          tokenUrl: https://xqvjkpkownkftsdofpbb.supabase.co/auth/v1/token
          scopes:
            openid: Identify the signed-in learner.
            email: Read the learner's email address.
            profile: Read the learner's study target and recent activity.
externalDocs:
  description: Drivings LLM reference
  url: https://drivings.com/llms.txt
x-llms-txt: https://drivings.com/llms.txt
x-mcp-server: https://mcp.drivings.com/mcp
x-agent-safety:
  sideEffects: none
  humanConfirmationRequiredForBrowserHandoffs: true