Download a migration import's per-charger move plan
get/v1/migrations/{migration_id}/imports/{import_id}/move-plan
Requires an API key
As the project's move plan (GET /v1/tenants/{tenant_id}/imports/{import_id}/move-plan). Needs migration:import over every site (client, support or partner; see the dry run). Only this migration's imports are reachable here, never another migration's or a project import. Errors: 404 import_not_found, 404 migration_not_found. See Errors and statuses.
Path parameters
- import_idstringRequiredThe import's ID (the dry run's), imp_ and 32 hex digitsPattern
^imp_[0-9a-f]{32}$ - migration_idstringRequiredPattern
^mig_[0-9a-f]{32}$
Query parameters
- formatstringDefault
"json"· Pattern^(json|csv)$
Returns · 200
- import_idstringRequired
- tenant_idintegerRequired
- statusenumRequiredOne of
planned,applying,applied,partial,reverted,partially_reverted - dataarray of MoveEntryRequired
Child attributes
- charger_idstringRequired
- station_idinteger | nullRequirednull until the import is applied
- namestringRequired
- location_refstring | nullRequired
- ocpp_versionstring | nullRequiredAs the source stated it (1.6, 2.0.1 or 2.1); null when unknown
- connection_urlstringRequiredThe full URL the charger connects to
- central_system_urlstringRequiredThe URL to configure on a charger that appends its own identity (the usual case)
- usernamestringRequiredThe charger's identity and HTTP Basic authentication username
- security_profileintegerRequiredThe OCPP security profile from the charger's point of view: 2 for Basic authentication over TLS (wss), 1 without TLS
- credential_stepsarray of stringRequired
- ocpp16stringRequiredWhat to change on an OCPP 1.6 charger, as text
- ocpp201stringRequiredWhat to change on an OCPP 2.0.1 or 2.1 charger, as text
- evse_idsarray of stringRequiredThe EVSE IDs the source carried, in EVSE order
- ocpi_evse_idsarray of EvseIdRowRequiredThe source's EVSE IDs for applied stations, ready for PUT /v1/tenants/{tenant_id}/ocpi/evse-ids
Child attributes
- station_idintegerRequired
- evse_numberintegerRequired
- evse_idstringRequired
- notesarray of stringRequired
GET /v1/migrations/{migration_id}/imports/{import_id}/move-plan
curl --fail-with-body "https://api.ivoracharge.com/v1/migrations/mig_0123456789abcdef0123456789abcdef/imports/imp_0123456789abcdef0123456789abcdef/move-plan" \
-H "Authorization: Bearer $IVORA_API_KEY"Response · 200JSON
{
"import_id": "import_0123456789abcdef",
"tenant_id": 1042,
"status": "planned",
"data": [
{
"charger_id": "charger_0123456789abcdef",
"station_id": 1,
"name": "bay-01",
"location_ref": "string",
"ocpp_version": "string",
"connection_url": "https://app.example.com/return",
"central_system_url": "https://app.example.com/return",
"username": "string",
"security_profile": 1,
"credential_steps": [
"string"
],
"ocpp16": "string",
"ocpp201": "string",
"evse_ids": [
"evse_0123456789abcdef"
]
}
],
"ocpi_evse_ids": [
{
"station_id": 1,
"evse_number": 1,
"evse_id": "evse_0123456789abcdef"
}
],
"notes": [
"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.



