Ask Ivora for a migration of the project's chargers
Sends Ivora the source platform, about how many chargers and sites, a target window, an optional migration partner or installer and notes; Ivora staff are alerted, open the workspace and mark the request workspace_created, or decline it with a reason. A project has one open request at a time: sending another returns the open one (200). A team has one open request at a time too: a request for another project of the team is refused (409 migration_request_team_open). At most 5 sends a minute per user and 20 per client address (429 rate_limited, with Retry-After). Any signed-in member with access to the project (stations:read) and Ivora staff; API keys and app tokens cannot. A request changes nothing: Ivora opens the workspace. The partner's name and email and the notes are shown to Ivora administrators and the requester only. Errors: 409 migration_request_team_open, 429 rate_limited, 503 migration_audit_unavailable. See Errors and statuses.
Path parameters
- tenant_idintegerRequired
Request body
- source_platformenumRequiredThe platform the chargers move from: EV Connect, another OCPP platform, or other.One of
evconnect,other_ocpp,other - chargers_estimateinteger | nullAbout how many chargers.Minimum 1 · Maximum 100000
- sites_estimateinteger | nullAbout how many sites.Minimum 1 · Maximum 10000
- target_fromstring | nullThe target window's first day (YYYY-MM-DD).Pattern
^[0-9]{4}-[0-9]{2}-[0-9]{2}$ - target_tostring | nullThe target window's last day (YYYY-MM-DD).Pattern
^[0-9]{4}-[0-9]{2}-[0-9]{2}$ - partnerobject | nullA migration partner or installer, if there is one.
Child attributes
- namestringRequiredThe migration partner or installer.1–120 characters
- emailstring | nullTheir contact address.3–254 characters · Pattern
^[^@\s]+@[^@\s]+\.[^@\s]+$
- notesstring | nullAnything else Ivora should know.Up to 2000 characters
Returns · 201
- idstringRequiredmrq_...
- tenant_idintegerRequiredThe project the migration is for.
- team_idstring | nullRequiredThe project's team when the request was made.
- statusenumRequiredopen: waiting for Ivora. workspace_created: Ivora opened the migration (migration_id). declined: Ivora declined it (decision_reason).One of
open,workspace_created,declined - source_platformstringRequired
- chargers_estimateinteger | nullRequired
- sites_estimateinteger | nullRequired
- target_fromstring | nullRequired
- target_tostring | nullRequired
- partnerobject | nullRequiredShown to Ivora staff and the requester only; null for anyone else.
Child attributes
- namestringRequiredThe migration partner or installer.1–120 characters
- emailstring | nullTheir contact address.3–254 characters · Pattern
^[^@\s]+@[^@\s]+\.[^@\s]+$
- notesstring | nullRequiredShown to Ivora staff and the requester only; null for anyone else.
- requested_bystringRequiredThe requester (user:...).
- created_atstringRequired
- updated_atstringRequired
- migration_idstring | nullRequiredThe migration Ivora opened for it.
- decision_reasonstring | nullRequiredWhy Ivora declined it.
- decided_atstring | nullRequired
curl --fail-with-body -X POST "https://api.ivoracharge.com/v1/tenants/1042/migration-requests" \
-H "Authorization: Bearer $IVORA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"source_platform": "evconnect"
}'{
"id": "id_0123456789abcdef",
"tenant_id": 1042,
"team_id": "team_0123456789abcdef",
"status": "open",
"source_platform": "string",
"chargers_estimate": 1,
"sites_estimate": 1,
"target_from": "string",
"target_to": "string",
"partner": {
"name": "bay-01",
"email": "developer@example.com"
},
"notes": "string",
"requested_by": "string",
"created_at": "2026-09-30T17:00:00Z",
"updated_at": "2026-09-30T17:00:00Z",
"migration_id": "migration_0123456789abcdef",
"decision_reason": "string",
"decided_at": "2026-09-30T17:00:00Z"
}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.



