Skip to main content
The SDK API is what your server calls for the Plugchoice SDK. It creates the client sessions your app hands to Link, reads the link sessions Link opened, and reads chargers with what each can do. It isn’t the Plugchoice API (/v3): it has its own base URL, credentials, versions and error format.

Base URL

Authentication

Call the SDK API from your server only. Your app never sees your credentials: it gets a short-lived client secret through your own endpoint (see Get started).

Integrations

An integration has a client ID and a client secret; it starts in test mode. Exchange them for an access token with the OAuth client credentials grant:
The token lasts an hour and acts as your integration’s team. Keep it on your server, reuse it until it expires, then request a new one. Send it in the Authorization header:
To get an integration, email support@plugchoice.com. See Test and live.
Keep your client ID and secret on your server. Never put them in your app.

Plugchoice users

A Plugchoice user can call the SDK API with their own OAuth access token or personal access token (see Authentication). They then act for themselves: their client sessions reach the chargers and sites they have Sensitive access to, and their link sessions show no consent screen.

Versions

The SDK API is versioned by date. Send the version you built against in the Plugchoice-Version header:
  • Without the header you get the newest version. Pin it, so a new version never changes what your server reads.
  • Every response says which version answered, in the same header.
  • An unknown version is 400 unknown-version.
2026-10-07 is the only version. See Versions.

Errors

Errors are RFC 9457 problem details, with Content-Type: application/problem+json:
Switch on code; type links to its page. New codes may be added. See Errors.

Rate limits

Each integration or Plugchoice user may make 120 requests a minute. Over it, the API answers 429 rate-limited with a Retry-After header in seconds.

Pagination

List chargers returns a page at a time, newest first:
  • limit: 1 to 100, 25 by default.
  • cursor: the next_cursor of the previous page. next_cursor is null on the last page.

Conventions

  • Ids are UUIDs.
  • Times are RFC 3339, in UTC.
  • Ignore fields and values you don’t know: new ones may be added within a version.

Endpoints

Create a client session

Say who Link acts for, and what it may reach.

Get a link session

Confirm what happened in Link.

List chargers

Your chargers, with their capabilities.

Get a charger

One charger, with its capabilities.