Pull the desired routes (runner, long poll)
The open route requests newer than after_revision, oldest first, as soon as there is one, waiting at most wait seconds (25 at most). A rollback is applied at once (require_idle false). With after_revision 0 the reply also carries every charger's desired route. limit caps the requests handed out (default and most 500); open rollbacks come first within it. revision, the next after_revision, covers only requests handed out (every open request at or below it is in this reply or an earlier one), so a rollback above it can be handed out again: apply requests once by id. Report each outcome with POST .../routes/reports. Runner credential only (POST /v1/migrations/{migration_id}/runners, scope migration:routes); any other credential is refused, whatever the migration's status (Ivora can always roll back: on a completed or archived migration the runner idles until one comes).
Path parameters
- migration_idstringRequiredPattern
^mig_[0-9a-f]{32}$
Query parameters
- after_revisionintegerDefault
0· Minimum 0 - waitintegerDefault
25· Minimum 0 · Maximum 25 - limitintegerDefault
500· Minimum 1 · Maximum 500
Returns · 200
- revisionintegerRequiredPass as after_revision on the next poll.
- requestsarray of RouteRequestRequiredOpen requests newer than after_revision, oldest first.
Child attributes
- idstringRequired
- revisionintegerRequired
- charger_keystringRequired
- station_idintegerRequired
- desiredenumRequiredOne of
ivora,previous_platform - kindenumRequiredOne of
rollback,move - require_idlebooleanRequiredfalse for a rollback: applied at once, also while charging.
- reasonstringRequired
- requested_bystringRequired
- requested_by_teamstring | nullRequired
- requested_atstringRequired
- job_idstring | nullRequired
- desiredarray of DesiredRoute | nullRequiredWith after_revision=0 only: every migration charger with a route asked for.
Child attributes
- charger_keystringRequired
- station_idintegerRequired
- desiredenumRequiredOne of
ivora,previous_platform
curl --fail-with-body "https://api.ivoracharge.com/v1/migrations/mig_0123456789abcdef0123456789abcdef/routes" \
-H "Authorization: Bearer $IVORA_API_KEY"{
"revision": 1,
"requests": [
{
"id": "id_0123456789abcdef",
"revision": 1,
"charger_key": "string",
"station_id": 1,
"desired": "ivora",
"kind": "rollback",
"require_idle": false,
"reason": "string",
"requested_by": "string",
"requested_by_team": "string",
"requested_at": "2026-09-30T17:00:00Z",
"job_id": "job_0123456789abcdef"
}
],
"desired": [
{
"charger_key": "string",
"station_id": 1,
"desired": "ivora"
}
]
}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.



