Log inTalk to us

Create a runner credential for the migration's charger proxy

post/v1/migrations/{migration_id}/runners
Requires an API key

The credential the proxy's sync agent uses on this migration's runner routes (GET .../routes, POST .../routes/reports, POST .../runners/heartbeat), with the single scope migration:routes. Shown once, never stored: keep it on the proxy host only. Every other route refuses it. Needs the client or support role (a key needs stations:admin). Audited in the same transaction (503 when it cannot be). Errors: 404 migration_not_found, 409 migration_closed, 503 migration_audit_unavailable. See Errors and statuses.

Path parameters

  • migration_idstringRequired
    Pattern ^mig_[0-9a-f]{32}$

Request body

  • labelstringRequired
    The charger proxy's name (its site), for example example-cpo-site-1.
    Pattern ^[A-Za-z0-9._:-]{1,64}$

Returns · 201

  • idstringRequired
  • labelstringRequired
    The charger proxy's name, also on its route reports.
  • prefixstringRequired
    The credential's first characters, to recognise it; never the secret.
  • scopesarray of stringRequired
  • created_bystringRequired
  • created_atstringRequired
  • last_seen_atstring | nullRequired
    Its last heartbeat, route poll or report.
  • healthybooleanRequired
    Seen within the last 60 seconds and not revoked.
  • last_revisioninteger | nullRequired
    The last route revision it pulled.
  • heartbeatobject | nullRequired
    Its last heartbeat body: nodes, upstreams, routed and connected counts.
  • revoked_atstring | nullRequired
  • credentialstringRequired
    The runner credential, shown once: store it on the proxy host only. It is accepted on this migration's runner routes and nowhere else.
POST /v1/migrations/{migration_id}/runners
curl --fail-with-body -X POST "https://api.ivoracharge.com/v1/migrations/mig_0123456789abcdef0123456789abcdef/runners" \
  -H "Authorization: Bearer $IVORA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "label": "string"
}'
Response · 201JSON
{
  "id": "id_0123456789abcdef",
  "label": "string",
  "prefix": "string",
  "scopes": [
    "migration:routes"
  ],
  "created_by": "string",
  "created_at": "2026-09-30T17:00:00Z",
  "last_seen_at": "2026-09-30T17:00:00Z",
  "healthy": false,
  "last_revision": 1,
  "heartbeat": {},
  "revoked_at": "2026-09-30T17:00:00Z",
  "credential": "string"
}
Requires an approved production API keyProduction access starts with a request, a short meeting with Ivora and a card on file, after which Ivora staff grant your account access. How to request access
Try itproduction · api.ivoracharge.com

Paste a production api key (iv_live_…). Create keys in Developer tools. The key stays in this page's memory, is sent only to https://api.ivoracharge.com and clears when you reload. Test keys are refused.

POST is a write: you confirm the method, path and project before it is sent, with a generated Idempotency-Key.