Chargetrip Isolines / Reachability API

Drivable reachability isolines. The createIsoline mutation returns an isoline id and the isoline query returns multipolygon shapes plus the maximum drivable distance, accounting for state of charge, climate, weight, temperature, and weather.

OpenAPI Specification

chargetrip-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Chargetrip GraphQL API (HTTP transport)
  description: >-
    HTTP transport view of the Chargetrip EV routing GraphQL API. Chargetrip is a
    native GraphQL API; all queries and mutations are issued as HTTP POST requests
    to a single `/graphql` endpoint with a JSON body containing `query`,
    `operationName`, and `variables`. Authentication uses the `x-client-id` and
    `x-app-id` headers. Real-time route updates are delivered over a separate
    WebSocket subscription endpoint (wss://api.chargetrip.io/subscription, the
    graphql-transport-ws protocol) and are described in
    asyncapi/chargetrip-asyncapi.yml, not here. Operation-level detail is modeled
    in graphql/chargetrip-graphql.md and graphql/chargetrip-schema.graphql.
  termsOfService: https://www.chargetrip.com/legal/terms-conditions
  contact:
    name: Chargetrip
    url: https://www.chargetrip.com
  version: '1.0'
servers:
  - url: https://api.chargetrip.io
    description: Chargetrip GraphQL endpoint base.
paths:
  /graphql:
    post:
      operationId: postGraphql
      tags:
        - GraphQL
      summary: Execute a GraphQL query or mutation.
      description: >-
        Single GraphQL entry point. Send a JSON body with a `query` string and
        optional `operationName` and `variables`. Documented operations include the
        mutations `newRoute` and `createIsoline`, and the queries `route`, `isoline`,
        `station`, `stationList`, `stationAround`, `vehicleList`, `vehicle`, and
        `operatorList`. Subscriptions (e.g. `routeUpdatedById`) are not available
        over HTTP; use the WebSocket subscription endpoint instead.
      parameters:
        - name: x-client-id
          in: header
          required: true
          description: Chargetrip client identifier for your account.
          schema:
            type: string
        - name: x-app-id
          in: header
          required: true
          description: Chargetrip application identifier.
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GraphQLRequest'
            examples:
              newRoute:
                summary: Create a route (newRoute mutation)
                value:
                  operationName: newRoute
                  query: >-
                    mutation newRoute($input: RequestInput!) { newRoute(input:
                    $input) }
                  variables:
                    input:
                      ev:
                        id: 5d161be5c9eef46132d9d20a
                        battery:
                          stateOfCharge:
                            value: 70
                            type: kilowatt_hour
                      routeRequest:
                        origin:
                          type: Feature
                          geometry:
                            type: Point
                            coordinates: [4.8951, 52.3702]
                        destination:
                          type: Feature
                          geometry:
                            type: Point
                            coordinates: [2.3522, 48.8566]
              stationAround:
                summary: Stations around a location (stationAround query)
                value:
                  operationName: stationAround
                  query: >-
                    query stationAround($query: StationAroundQuery!) {
                    stationAround(query: $query, size: 20, page: 0) { id name
                    status } }
                  variables:
                    query:
                      location:
                        type: Point
                        coordinates: [4.8951, 52.3702]
                      distance: 5000
      responses:
        '200':
          description: >-
            GraphQL response. Note that GraphQL returns HTTP 200 even when the
            `errors` array is populated; inspect both `data` and `errors`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GraphQLResponse'
        '401':
          description: Missing or invalid x-client-id / x-app-id credentials.
        '429':
          description: Rate or quota limit exceeded for the account / API service.
components:
  securitySchemes:
    clientId:
      type: apiKey
      in: header
      name: x-client-id
      description: Chargetrip client identifier sent on every request.
    appId:
      type: apiKey
      in: header
      name: x-app-id
      description: Chargetrip application identifier sent on every request.
  schemas:
    GraphQLRequest:
      type: object
      required:
        - query
      properties:
        query:
          type: string
          description: The GraphQL query or mutation document.
        operationName:
          type: string
          nullable: true
          description: Name of the operation to run when the document defines several.
        variables:
          type: object
          nullable: true
          additionalProperties: true
          description: Variable values referenced by the query document.
    GraphQLResponse:
      type: object
      properties:
        data:
          type: object
          nullable: true
          additionalProperties: true
          description: The data returned by the executed operation, keyed by field name.
        errors:
          type: array
          nullable: true
          description: GraphQL errors, if any. Present even on HTTP 200.
          items:
            $ref: '#/components/schemas/GraphQLError'
    GraphQLError:
      type: object
      properties:
        message:
          type: string
        path:
          type: array
          items:
            type: string
        extensions:
          type: object
          additionalProperties: true
security:
  - clientId: []
    appId: []