Log inTalk to us

Remove what a network import created

post/v1/tenants/{tenant_id}/imports/{import_id}/revert
Requires an API key

Deletes the stations the import created that never connected and have no charging or message history, then the locations it created that no station is at. Other stations and locations stay (state kept, with the reason); updates are not undone. Replays with the same Idempotency-Key return the same result. Audited as network_import.reverted. Requires a team owner or admin of the project (projects:manage) signed in, or Ivora staff (signed in, or a staff key with stations:write); a migration:import key cannot revert. Errors: 404 import_not_found, 409 import_in_progress, 409 import_not_applied, 409 request_in_progress. See Errors and statuses.

Path parameters

  • tenant_idintegerRequired
  • import_idstringRequired
    The import's ID (the dry run's), imp_ and 32 hex digits
    Pattern ^imp_[0-9a-f]{32}$

Headers

  • idempotency-keystringRequired

Returns · 200

  • idstringRequired
  • tenant_idintegerRequired
  • migration_idstring | null
    The migration this import belongs to (made under /v1/migrations/{migration_id}/imports): its applied stations join that migration as imported. null for a project import.
  • sourceenumRequired
    One of csv, ocpi_locations
  • originstring | nullRequired
    The fetched feed's host and path (no query string or token); null for an upload
  • statusenumRequired
    One of planned, applying, applied, partial, reverted, partially_reverted
  • identityenumRequired
    project: chargers keep their own IDs under the project's charger URL; global: each charger ID is a globally unique OCPP connection name
    One of project, global
  • countsImportCountsRequired
    Child attributes
    • createintegerRequired
    • updateintegerRequired
    • skipintegerRequired
    • errorintegerRequired
  • totalsImportTotalsRequired
    Child attributes
    • locationsintegerRequired
      Locations in the source
    • stationsintegerRequired
      Chargers in the source, each one station
    • evsesintegerRequired
    • connectorsintegerRequired
  • actorstringRequired
  • created_atstringRequired
  • updated_atstringRequired
  • applied_atstring | nullRequired
  • reverted_atstring | nullRequired
  • rowsarray of ImportRowRequired
    Child attributes
    • itemstring | nullRequired
      The row's ID in this import (L<n> for a location, S<n> for a station); null for a source row that could not be read
    • kindenumRequired
      One of location, station, row
    • actionenumRequired
      What apply does: create, update (change the existing resource), skip (identical, or removed in the source) or error (nothing is written for it)
      One of create, update, skip, error
    • stateenumRequired
      planned in a dry run; after apply pending, done, failed or skipped; after a revert reverted or kept
      One of planned, pending, done, failed, skipped, reverted, kept
    • sourcestring | nullRequired
      Where the row comes from: CSV line numbers, or the position in the OCPI document
    • refstring | null
      A location's reference: the CSV location_ref or the OCPI Location id, stored as its external_reference
    • charger_idstring | null
    • namestring | null
      The station's OCPP connection name in Ivora
    • location_refstring | null
    • location_idinteger | null
    • station_idinteger | null
    • connector_idsarray of integer | null
      The station's connector resource IDs, once applied
    • evsesinteger | null
    • connectorsinteger | null
    • changesarray of string
      The fields an update changes
    • codestring | null
    • messagestring | null
    • warningsarray of string
    • migration_stateenum | null
      A migration's import (migration_id): the station's state on the migration's board once it joined (imported first); null while it is not in this migration (not applied yet, or in another migration). null on a project import.
      One of imported, proxied, shadow, parity_checked, moved, rolling_back, rolled_back
    • charger_keystring | null
      A migration's import: the charger proxy's routing key the station joined with, <project>/<charger id> (or the global connection name); null while not in the migration.
  • follow_upsarray of stringRequired
    Steps outside this import: RFID tokens, tariffs, EVSE IDs for roaming, credentials
POST /v1/tenants/{tenant_id}/imports/{import_id}/revert
curl --fail-with-body -X POST "https://api.ivoracharge.com/v1/tenants/1042/imports/imp_0123456789abcdef0123456789abcdef/revert" \
  -H "Authorization: Bearer $IVORA_API_KEY" \
  -H "Idempotency-Key: order-2026-09-30-0001"
Response · 200JSON
{
  "id": "id_0123456789abcdef",
  "tenant_id": 1042,
  "migration_id": "migration_0123456789abcdef",
  "source": "csv",
  "origin": "string",
  "status": "planned",
  "identity": "project",
  "counts": {
    "create": 1,
    "update": 1,
    "skip": 1,
    "error": 1
  },
  "totals": {
    "locations": 1,
    "stations": 1,
    "evses": 1,
    "connectors": 1
  },
  "actor": "string",
  "created_at": "2026-09-30T17:00:00Z",
  "updated_at": "2026-09-30T17:00:00Z",
  "applied_at": "2026-09-30T17:00:00Z",
  "reverted_at": "2026-09-30T17:00:00Z",
  "rows": [
    {
      "item": "string",
      "kind": "location",
      "action": "create",
      "state": "planned",
      "source": "string",
      "ref": "string",
      "charger_id": "charger_0123456789abcdef",
      "name": "bay-01",
      "location_ref": "string",
      "location_id": 7,
      "station_id": 1,
      "connector_ids": [
        1
      ],
      "evses": 1,
      "connectors": 1,
      "changes": [
        "string"
      ],
      "code": "string",
      "message": "string",
      "warnings": [
        "string"
      ],
      "migration_state": "imported",
      "charger_key": "string"
    }
  ],
  "follow_ups": [
    "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.

POST is a write: you confirm the method, path and project before it is sent, with a generated Idempotency-Key.