Add chargers to a migration (Ivora staff)
Ivora support adds the project's stations from the pilot proxy's allowlist: each one's routing key and its station (station_id, station_name or charger_id). A station is in at most one migration that is not archived (409 station_in_other_migration; an archived migration's charger is taken over, audited as migration.charger.released there, unless a rollback is still on its way to its runner: details.reason rollback_pending). The station's earlier pilot rollbacks join the migration's record. A charger already there with the same station is unchanged. Needs the support role (a staff key needs stations:write). A retry with the same Idempotency-Key returns the same result. Audited in the same transaction (503 when it cannot be). Errors: 404 migration_not_found, 404 station_not_found, 409 migration_charger_conflict, 409 migration_closed, 409 station_in_other_migration, 503 migration_audit_unavailable. See Errors and statuses.
Path parameters
- migration_idstringRequiredPattern
^mig_[0-9a-f]{32}$
Headers
- idempotency-keystringRequired
Request body
- chargersarray of AddChargerRequiredThe pilot proxy's allowlist entries for this project.
Child attributes
- charger_keystringRequiredThe proxy's routing key, as on its allowlist: <project>/<identity> or <identity>.Pattern
^(?:[A-Za-z0-9._-]{1,64}/)?[A-Za-z0-9._:*@+=-]{1,64}$ - station_idinteger | nullThe station on Ivora; or give station_name or charger_id.Greater than 0
- station_namestring | nullThe station's OCPP connection name on Ivora.1–100 characters
- charger_idstring | nullOr the project's charger ID.1–40 characters
Returns · 200
- addedintegerRequired
- unchangedintegerRequired
- chargersarray of AddedChargerRequired
Child attributes
- charger_keystringRequired
- station_idintegerRequired
- namestringRequired
- addedbooleanRequiredfalse when it was already in this migration with the same station.
curl --fail-with-body -X POST "https://api.ivoracharge.com/v1/migrations/mig_0123456789abcdef0123456789abcdef/chargers" \
-H "Authorization: Bearer $IVORA_API_KEY" \
-H "Idempotency-Key: order-2026-09-30-0001" \
-H "Content-Type: application/json" \
-d '{
"chargers": [
{
"charger_key": "string"
}
]
}'{
"added": 1,
"unchanged": 1,
"chargers": [
{
"charger_key": "string",
"station_id": 1,
"name": "bay-01",
"added": false
}
]
}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.



