Read a migration's audit log
get/v1/migrations/{migration_id}/audit
Requires an API key
Every entry of this migration and nothing else: who created it, added chargers, asked for rollbacks, the proxy's results, invited teams and runner credentials, with the actor's own team (actor_team_id). Any participant, signed in; API keys cannot read it. A team narrowed to some sites reads its own team's entries only. Filters: action (exact or a family such as migration.runner), actor, since, until. Newest first. Errors: 404 migration_not_found. See Errors and statuses.
Path parameters
- migration_idstringRequiredPattern
^mig_[0-9a-f]{32}$
Query parameters
- actionstring | nullPattern
^[a-z][a-z0-9_.]{0,63}$ - actorstring | nullPattern
^[A-Za-z0-9:._@/-]{1,128}$ - sincestring | nullUp to 40 characters
- untilstring | nullUp to 40 characters
- cursorstring | nullnext_cursor of the previous page.Pattern
^[0-9]{1,18}$ - limitintegerDefault
50· Minimum 1 · Maximum 100
Returns · 200
- dataarray of AuditEventRequiredNewest first.
Child attributes
- idstringRequiredThe entry's ID.
- atstringRequiredWhen it happened, ISO 8601 UTC.
- actorstringRequiredWho did it: user:{id} for a person, access-sync for the automatic import of a sign-in grant, or a staff or system actor.
- actionstringRequiredWhat happened, such as team.member.added, team.invite.created, project.created, project.renamed, project.api_key.created.
- team_idstring | nullRequiredThe team, for team entries and every entry of a team's project; null for entries outside any team.
- tenant_idinteger | nullRequiredThe project's tenant ID; null for team-level entries.
- targetstring | nullRequiredWhat it was done to: a user, invite or key ID, or a project ID.
- detailobjectRequiredIdentifiers, roles and labels; never a secret, an email or card data.
- migration_idstring | nullThe migration workspace the entry belongs to (mig_...), else null.
- actor_team_idstring | nullThe actor's own team in a migration entry (team_id is the project's), else null.
- next_cursorstring | nullRequiredPass as cursor for the next, older page; null on the last page.
GET /v1/migrations/{migration_id}/audit
curl --fail-with-body "https://api.ivoracharge.com/v1/migrations/mig_0123456789abcdef0123456789abcdef/audit" \
-H "Authorization: Bearer $IVORA_API_KEY"Response · 200JSON
{
"data": [
{
"id": "id_0123456789abcdef",
"at": "string",
"actor": "string",
"action": "string",
"team_id": "team_0123456789abcdef",
"tenant_id": 1042,
"target": "string",
"detail": {},
"migration_id": "migration_0123456789abcdef",
"actor_team_id": "actor_team_0123456789abcdef"
}
],
"next_cursor": "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.



