Log inTalk to us

Read one migrating charger

get/v1/tenants/{tenant_id}/migration/chargers/{station_id}
Requires an API key

The same view as the list, for one station. Requires stations:read. Errors: 404 migration_charger_not_found, 404 station_not_found. See Errors and statuses.

Path parameters

  • tenant_idintegerRequired
  • station_idintegerRequired
    Greater than 0

Returns · 200

  • station_idintegerRequired
  • namestring | nullRequired
    The station's OCPP connection name; null when the station no longer exists on Ivora.
  • stateenumRequired
    on_ivora: the charger is routed to Ivora. on_previous_platform: routed to the previous platform (never moved, or rolled back). rollback_pending: a rollback is recorded and not finished (pending, or applied_socket_open).
    One of on_ivora, on_previous_platform, rollback_pending
  • routeenumRequired
    Where the charger is routed: the proxy's latest report, else the recorded route.
    One of ivora, previous_platform
  • proxiedbooleanRequired
    true when the charger proxy reports this charger, so it can be rolled back here; false for a charger only a site flip or a route report recorded.
  • connectedenum | nullRequired
    Which side the charger has a connection open on through the proxy, at its latest report; null when not proxied.
    One of ivora, previous_platform, both, none
  • proxy_reported_atstring | nullRequired
    When Ivora last received the proxy's report of this charger.
  • proxy_stalebooleanRequired
    true when that report is more than five minutes old: the proxy may be down, and a rollback waits.
  • shadowbooleanRequired
    The station is in shadow mode: the previous platform controls it and Ivora only observes.
  • recorded_routeobject | nullRequired
    The route Ivora recorded from site flips and route reports, which QR sticker scans follow; null when none is recorded.
    Child attributes
    • currentenumRequired
      The side QR sticker scans follow.
      One of ivora, previous_platform
    • flipped_atstringRequired
    • sourcestringRequired
      site_flip (a site flip record) or charger_route (a charger's own route report or rollback).
    • referencestring | nullRequired
  • rollback_availablebooleanRequired
    Whether POST .../rollback would be accepted now: proxied, routed to or connected on Ivora, and no rollback pending or applied_socket_open.
  • last_rollbackobject | nullRequired
    Child attributes
    • idstringRequired
      Ivora's identifier of this rollback (mrb_...).
    • tenant_idintegerRequired
    • station_idintegerRequired
    • namestringRequired
      The station's OCPP connection name.
    • statusenumRequired
      pending: recorded, waiting for the charger proxy to switch the route. applied_socket_open: the proxy routes the charger to the previous platform, but a connection to Ivora is still open; the proxy closes it and the rollback becomes applied (only then is the event emitted). applied: the proxy routes the charger to the previous platform and no connection to Ivora is open. failed: the proxy could not switch it (detail); ask again, or Ivora on-call rolls it back by hand. superseded: Ivora staff moved the charger to Ivora again after it was asked, so it was not applied. expired: the proxy did not apply it within 24 hours (it was unreachable); Ivora on-call rolls it back by hand.
      One of pending, applied_socket_open, applied, failed, superseded, expired
    • reconnectenum | nullRequired
      Whether the charger reconnected to the previous platform through the proxy, from the proxy's latest report: waiting_for_switch (pending), reconnecting (within two minutes of the switch), reconnected (a connection to the previous platform is up), not_connected (no connection two minutes after the switch), still_on_ivora (a connection to Ivora is still open, also while applied_socket_open), superseded (the charger was moved to Ivora again since), unknown (no proxy report since the switch). Null when failed, superseded or expired.
      One of waiting_for_switch, reconnecting, reconnected, not_connected, still_on_ivora, superseded, unknown
    • reasonstringRequired
    • requested_bystringRequired
      Who asked for it: user:<id>, key:<id> or app:<id>.
    • team_idstring | nullRequired
      The project's team.
    • sourceenumRequired
      tenant: the project's own administrators; ivora: Ivora staff.
      One of tenant, ivora
    • requested_atstringRequired
    • rolled_back_atstring | nullRequired
      When the proxy switched the route (its own clock), once applied.
    • settled_atstring | nullRequired
      When Ivora recorded the current status (the proxy's result, the socket closing, the supersession or the expiry).
    • detailstring | nullRequired
      The proxy's note on the result, such as why it failed.
    • event_idstring | nullRequired
      The migration.charger_rolled_back event, once applied.
    • migration_idstring | null
      The migration workspace of the station (/v1/migrations/{migration_id}), when it is in one.
GET /v1/tenants/{tenant_id}/migration/chargers/{station_id}
curl --fail-with-body "https://api.ivoracharge.com/v1/tenants/1042/migration/chargers/1" \
  -H "Authorization: Bearer $IVORA_API_KEY"
Response · 200JSON
{
  "station_id": 1,
  "name": "bay-01",
  "state": "on_ivora",
  "route": "ivora",
  "proxied": false,
  "connected": "ivora",
  "proxy_reported_at": "2026-09-30T17:00:00Z",
  "proxy_stale": false,
  "shadow": false,
  "recorded_route": {
    "current": "ivora",
    "flipped_at": "2026-09-30T17:00:00Z",
    "source": "string",
    "reference": "string"
  },
  "rollback_available": false,
  "last_rollback": {
    "id": "id_0123456789abcdef",
    "tenant_id": 1042,
    "station_id": 1,
    "name": "bay-01",
    "status": "pending",
    "reconnect": "waiting_for_switch",
    "reason": "string",
    "requested_by": "string",
    "team_id": "team_0123456789abcdef",
    "source": "tenant",
    "requested_at": "2026-09-30T17:00:00Z",
    "rolled_back_at": "2026-09-30T17:00:00Z",
    "settled_at": "2026-09-30T17:00:00Z",
    "detail": "string",
    "event_id": "event_0123456789abcdef",
    "migration_id": "migration_0123456789abcdef"
  }
}
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.