ChargerDojo API

ChargerDojo API as documented publicly: 31 operations. Contract generated from the documentation by API Evangelist (2026-11-03); not the provider's own document.

Operations 31

GET / GET / #
GET /api/v1/connections GET /api/v1/connections #
POST /api/v1/connections Create a partner endpoint #
GET /api/v1/connections/$CONNECTION_ID GET /api/v1/connections/$CONNECTION_ID #
PUT /api/v1/connections/$CONNECTION_ID/address PUT /api/v1/connections/$CONNECTION_ID/address #
POST /api/v1/connections/$CONNECTION_ID/register POST /api/v1/connections/$CONNECTION_ID/register #
GET /api/v1/testing/runs GET /api/v1/testing/runs #
DELETE /api/v1/testing/runs/{id} DELETE /api/v1/testing/runs/{id} #
GET /api/v1/usage GET /api/v1/usage #
GET /connections Operation reference: GET /connections #
POST /connections Create the connection #
GET /connections/{id} Read your connections #
PUT /connections/{id}/address When their address changes #
POST /connections/{id}/register Register: the live credentials handshake #
GET /ocpi/versions Check it from outside your machine #
POST /testing/command Send one bounded OCPI command through an owned registered connection #
POST /testing/journey-runs Start a journey run from a previewed plan (idempotent) #
GET /testing/journey-runs/{id} Read a journey run's status and recovery options #
POST /testing/journey-runs/{id}/cancel Cancel a journey run you own #
GET /testing/journey-runs/{id}/events Page a journey run's events by sequence #
POST /testing/journey-runs/{id}/recovery Apply a server-offered recovery decision #
GET /testing/journey-runs/{id}/stream Replay then follow run events over SSE #
GET /testing/journeys Browse the journey catalogue for a target #
POST /testing/journeys/preview Preview a journey plan before running it #
GET /testing/runs List run reports #
POST /testing/runs Operation reference: POST /testing/runs #
DELETE /testing/runs/{id} Delete a report you own #
GET /testing/runs/{id} Operation reference: GET /testing/runs/{id} #
DELETE /testing/runs/{id}/share Revoke the public share token of an owned report #
POST /testing/runs/{id}/share Issue a public share token for an owned report #
GET /usage Read the key owner's plan limits and current usage #

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/chargerdojo-com:chargerdojo-com-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

chargerdojo-com-openapi-generated.yml Raw ↑
openapi: 3.1.0
info:
  title: ChargerDojo API
  version: '2026-11-03'
  description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-11-03: 31 operation(s) read from 9 public documentation page(s) (each operation
    names its page in x-source). This is not the provider''s published contract; ChargerDojo has published no machine-readable contract that the
    pipeline could find. Engine: local.'
  x-evidence-tiers:
    code-example: 9
    documentation: 22
    pages-with-code: 6
    pages-read: 9
  x-generated-from: documentation
  x-provenance: generated
  x-authored-by: API Evangelist
  x-generated: '2026-11-03'
  x-generator: generate-contract-from-docs.py
  x-engine: local
  x-sources:
  - https://docs.chargerdojo.com/api/index.md
  - https://docs.chargerdojo.com/guide/connect-a-local-endpoint.md
  - https://docs.chargerdojo.com/api-reference/reports/delete-a-report-you-own
  - https://docs.chargerdojo.com/api-reference/testing/start-a-conformance-run-against-an-owned-connection.md
  - https://docs.chargerdojo.com/guide/quickstart.md
  - https://docs.chargerdojo.com/guide/connect-a-partner.md
  - https://docs.chargerdojo.com/guide/create-an-api-key.md
  - https://docs.chargerdojo.com/guide/quickstart
  - https://docs.chargerdojo.com/api-reference/reports/list-owned-run-reports-conformance-and-journeys
servers:
- url: https://chargerdojo.com
paths:
  /:
    get:
      operationId: get
      tags:
      - Api
      summary: GET /
      x-source: https://docs.chargerdojo.com/guide/connect-a-local-endpoint.md
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl -fsS "https://<your-tunnel-host>/ocpi/versions"  -H "Authorization: Token $(printf %s ''<your token A>'' | base64 | tr
          -d ''\n'')"

          ```'
  /api/v1/connections:
    get:
      operationId: get_api_v1_connections
      tags:
      - Api
      summary: GET /api/v1/connections
      x-source: https://docs.chargerdojo.com/api/index.md
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl -fsS "https://chargerdojo.com/api/v1/connections"  -H "Authorization: Bearer $DOJO_KEY"

          ```'
    post:
      operationId: post_api_v1_connections
      tags:
      - Api
      summary: Create a partner endpoint
      x-source: https://docs.chargerdojo.com/api/index.md
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/v1/connections/$CONNECTION_ID:
    get:
      operationId: get_api_v1_connections_CONNECTION_ID
      tags:
      - Api
      summary: GET /api/v1/connections/$CONNECTION_ID
      x-source: https://docs.chargerdojo.com/guide/connect-a-partner.md
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl -fsS "https://chargerdojo.com/api/v1/connections/$CONNECTION_ID"  -H "Authorization: Bearer $DOJO_KEY"

          ```'
  /api/v1/connections/$CONNECTION_ID/address:
    put:
      operationId: put_api_v1_connections_CONNECTION_ID_address
      tags:
      - Api
      summary: PUT /api/v1/connections/$CONNECTION_ID/address
      x-source: https://docs.chargerdojo.com/guide/connect-a-local-endpoint.md
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PutApiV1ConnectionsConnectionIdAddressRequest'
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl -fsS -X PUT "https://chargerdojo.com/api/v1/connections/$CONNECTION_ID/address"  -H "Authorization: Bearer $DOJO_KEY"  -H
          "Content-Type: application/json"  -d ''{ "partnerBaseUrl": "https://<your-new-tunnel-host>/ocpi" }''

          ```'
  /api/v1/connections/$CONNECTION_ID/register:
    post:
      operationId: post_api_v1_connections_CONNECTION_ID_register
      tags:
      - Api
      summary: POST /api/v1/connections/$CONNECTION_ID/register
      x-source: https://docs.chargerdojo.com/guide/connect-a-partner.md
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl -fsS -X POST "https://chargerdojo.com/api/v1/connections/$CONNECTION_ID/register"  -H "Authorization: Bearer $DOJO_KEY"

          ```'
  /api/v1/testing/runs:
    get:
      operationId: get_api_v1_testing_runs
      tags:
      - Api
      summary: GET /api/v1/testing/runs
      x-source: https://docs.chargerdojo.com/api-reference/reports/list-owned-run-reports-conformance-and-journeys
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiV1TestingRunsResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl curl --request GET  --url https://chargerdojo.com/api/v1/testing/runs  --header ''Authorization: Bearer <token>'' import
          requests

          url = "https://chargerdojo.com/api/v1/testing/runs"

          headers = {"Authorization": "Bearer <token>"}

          response = requests.get(url, headers=headers)

          print(response.text) const options = {method: ''GET'', headers: {Authorization: ''Bearer <token>''}};

          fetch(''https://chargerdoj'
  /api/v1/testing/runs/{id}:
    delete:
      operationId: delete_api_v1_testing_runs_id
      tags:
      - Api
      summary: DELETE /api/v1/testing/runs/{id}
      x-source: https://docs.chargerdojo.com/api-reference/reports/delete-a-report-you-own
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteApiV1TestingRunsIdResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl curl --request DELETE  --url https://chargerdojo.com/api/v1/testing/runs/{id}  --header ''Authorization: Bearer <token>''
          import requests

          url = "https://chargerdojo.com/api/v1/testing/runs/{id}"

          headers = {"Authorization": "Bearer <token>"}

          response = requests.delete(url, headers=headers)

          print(response.text) const options = {method: ''DELETE'', headers: {Authorization: ''Bearer <token>''}};

          fetch('
  /api/v1/usage:
    get:
      operationId: get_api_v1_usage
      tags:
      - Api
      summary: GET /api/v1/usage
      x-source: https://docs.chargerdojo.com/api/index.md
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl -fsS "https://chargerdojo.com/api/v1/usage"  -H "Authorization: Bearer $DOJO_KEY" | jq ''.data''

          ```'
  /connections:
    get:
      operationId: get_connections
      tags:
      - Connections
      summary: 'Operation reference: GET /connections'
      description: List owned connections.
      x-source: https://docs.chargerdojo.com/guide/quickstart.md
      parameters:
      - name: limit
        in: query
        required: false
        schema:
          type: string
        description: Maximum number of connections to return per page (example used 100).
      - name: skip
        in: query
        required: false
        schema:
          type: string
        description: Number of connections to skip for pagination (example used page*100).
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
    post:
      operationId: post_connections
      tags:
      - Connections
      summary: Create the connection
      x-source: https://docs.chargerdojo.com/guide/connect-a-partner.md
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostConnectionsRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /connections/{id}:
    get:
      operationId: get_connections_id
      tags:
      - Connections
      summary: Read your connections
      x-source: https://docs.chargerdojo.com/guide/connect-a-partner.md
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /connections/{id}/address:
    put:
      operationId: put_connections_id_address
      tags:
      - Connections
      summary: When their address changes
      x-source: https://docs.chargerdojo.com/guide/connect-a-partner.md
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PutConnectionsIdAddressRequest'
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /connections/{id}/register:
    post:
      operationId: post_connections_id_register
      tags:
      - Connections
      summary: 'Register: the live credentials handshake'
      x-source: https://docs.chargerdojo.com/guide/connect-a-partner.md
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /ocpi/versions:
    get:
      operationId: get_ocpi_versions
      tags:
      - Ocpi
      summary: Check it from outside your machine
      description: Curl the tunnel host's /ocpi/versions endpoint to verify the tunnel reaches your service.
      x-source: https://docs.chargerdojo.com/guide/connect-a-local-endpoint.md
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /testing/command:
    post:
      operationId: post_testing_command
      tags:
      - Testing
      summary: Send one bounded OCPI command through an owned registered connection
      x-source: https://docs.chargerdojo.com/api/index.md
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /testing/journey-runs:
    post:
      operationId: post_testing_journey_runs
      tags:
      - Testing
      summary: Start a journey run from a previewed plan (idempotent)
      x-source: https://docs.chargerdojo.com/api/index.md
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /testing/journey-runs/{id}:
    get:
      operationId: get_testing_journey_runs_id
      tags:
      - Testing
      summary: Read a journey run's status and recovery options
      x-source: https://docs.chargerdojo.com/api/index.md
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /testing/journey-runs/{id}/cancel:
    post:
      operationId: post_testing_journey_runs_id_cancel
      tags:
      - Testing
      summary: Cancel a journey run you own
      x-source: https://docs.chargerdojo.com/api/index.md
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /testing/journey-runs/{id}/events:
    get:
      operationId: get_testing_journey_runs_id_events
      tags:
      - Testing
      summary: Page a journey run's events by sequence
      x-source: https://docs.chargerdojo.com/api/index.md
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /testing/journey-runs/{id}/recovery:
    post:
      operationId: post_testing_journey_runs_id_recovery
      tags:
      - Testing
      summary: Apply a server-offered recovery decision
      x-source: https://docs.chargerdojo.com/api/index.md
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /testing/journey-runs/{id}/stream:
    get:
      operationId: get_testing_journey_runs_id_stream
      tags:
      - Testing
      summary: Replay then follow run events over SSE
      x-source: https://docs.chargerdojo.com/api/index.md
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /testing/journeys:
    get:
      operationId: get_testing_journeys
      tags:
      - Testing
      summary: Browse the journey catalogue for a target
      x-source: https://docs.chargerdojo.com/api/index.md
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /testing/journeys/preview:
    post:
      operationId: post_testing_journeys_preview
      tags:
      - Testing
      summary: Preview a journey plan before running it
      x-source: https://docs.chargerdojo.com/api/index.md
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /testing/runs:
    get:
      operationId: get_testing_runs
      tags:
      - Testing
      summary: List run reports
      x-source: https://docs.chargerdojo.com/api-reference/reports/list-owned-run-reports-conformance-and-journeys
      parameters:
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
        description: 'Authorization string header required. Format: cdojo_... API key created in the app under Settings.'
      - name: connectionId
        in: query
        required: false
        schema:
          type: string
        description: Return reports for this owned connection or its stable target identity.
      - name: status
        in: query
        required: false
        schema:
          type: string
        description: 'Return reports with this run status. Available options: queued, running, recovering, recovery_required, completed, failed,
          cancelled, interrupted.'
      - name: ocpiVersion
        in: query
        required: false
        schema:
          type: string
        description: 'Return reports for this OCPI version. Available options: 2.1.1, 2.2, 2.2.1, 2.3.0.'
      - name: limit
        in: query
        required: false
        schema:
          type: string
        description: 'Maximum reports to return. Default: 20. Range: 1‑100.'
      - name: cursor
        in: query
        required: false
        schema:
          type: string
        description: The opaque nextCursor from the previous report page.
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTestingRunsResponse'
      x-evidence:
        kind: documentation
    post:
      operationId: post_testing_runs
      tags:
      - Testing
      summary: 'Operation reference: POST /testing/runs'
      description: Start a conformance run against an owned connection.
      x-source: https://docs.chargerdojo.com/guide/quickstart.md
      parameters:
      - name: wait
        in: query
        required: false
        schema:
          type: string
        description: Maximum seconds to wait for the run to finish (example used 55).
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostTestingRunsRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostTestingRunsResponse'
      x-evidence:
        kind: documentation
  /testing/runs/{id}:
    delete:
      operationId: delete_testing_runs_id
      tags:
      - Testing
      summary: Delete a report you own
      x-source: https://docs.chargerdojo.com/api-reference/reports/delete-a-report-you-own
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
        description: Authorization string header required. A cdojo_... API key created in the app under Settings.
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
    get:
      operationId: get_testing_runs_id
      tags:
      - Testing
      summary: 'Operation reference: GET /testing/runs/{id}'
      description: Read one owned report, optionally long‑polling an active run.
      x-source: https://docs.chargerdojo.com/guide/quickstart.md
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: wait
        in: query
        required: false
        schema:
          type: string
        description: Maximum seconds to wait for the run to finish (example used 55).
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTestingRunsIdResponse'
      x-evidence:
        kind: documentation
  /testing/runs/{id}/share:
    delete:
      operationId: delete_testing_runs_id_share
      tags:
      - Testing
      summary: Revoke the public share token of an owned report
      x-source: https://docs.chargerdojo.com/api/index.md
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
    post:
      operationId: post_testing_runs_id_share
      tags:
      - Testing
      summary: Issue a public share token for an owned report
      x-source: https://docs.chargerdojo.com/api/index.md
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /usage:
    get:
      operationId: get_usage
      tags:
      - Usage
      summary: Read the key owner's plan limits and current usage
      x-source: https://docs.chargerdojo.com/api/index.md
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
components:
  schemas:
    PutApiV1ConnectionsConnectionIdAddressRequest:
      type: object
      properties:
        partnerBaseUrl:
          type: string
    GetApiV1TestingRunsResponse:
      type: object
      properties:
        method:
          type: string
        headers:
          type: object
          properties:
            Authorization:
              type: string
    DeleteApiV1TestingRunsIdResponse:
      type: object
      properties:
        method:
          type: string
        headers:
          type: object
          properties:
            Authorization:
              type: string
    PostConnectionsRequest:
      type: object
      properties:
        partnerBaseUrl:
          type: string
          description: Their OCPI base URL.
        ourRole:
          type: string
          description: '`CPO` or `EMSP`. The role you are testing as.'
        theirRole:
          type: string
          description: '`CPO` or `EMSP`.'
        tokenA:
          type: string
          description: The registration token they issued you.
        ocpiVersion:
          type: string
          description: '`2.1.1`, `2.2`, `2.2.1` or `2.3.0`. Defaults to `2.2.1`.'
      required:
      - partnerBaseUrl
      - ourRole
      - theirRole
      - tokenA
    PutConnectionsIdAddressRequest:
      type: object
      properties:
        partnerBaseUrl:
          type: string
          description: New partner OCPI base URL.
      required:
      - partnerBaseUrl
    GetTestingRunsResponse:
      type: object
      properties:
        success:
          type: boolean
          description: Success flag
        data:
          type: array
          description: Array of report objects
        meta:
          type: object
          description: Paging information
    PostTestingRunsRequest:
      type: object
      properties:
        connectionId:
          type: string
          description: Identifier of the sandbox connection to test.
      required:
      - connectionId
    PostTestingRunsResponse:
      type: object
      properties:
        reportId:
          type: string
          description: Identifier of the created run report.
        status:
          type: string
          description: Current status of the run.
    GetTestingRunsIdResponse:
      type: object
      properties:
        status:
          type: string
          description: Current status of the run.
        summary:
          type: string
          description: Result summary when the run is completed.
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
security:
- bearer: []
tags:
- name: Api
- name: Connections
- name: Ocpi
- name: Testing
- name: Usage