Gets a directory import run by id — poll it to track progress and read the final counters.
Use this endpoint after `POST directory/import` returns `202 Accepted`. It reads the durable import job row for the current tenant and returns the current lifecycle status plus counters captured by the background worker. Pending and running imports have progress metadata only; completed imports include participant-created/existing/failed counts and the bounded failure sample, while failed imports include the captured error message for operator triage.
Authorization
Bearer JWT Authorization header using the Bearer scheme. Enter 'Bearer' [space] and then your token.
In: header
Path Parameters
The import run id returned by the enqueue.
uuidThe tenant identifier
Response Body
curl -X GET "https://api.fruxon.com/v1/tenants/string/directory/importRuns/497f6eca-6276-4993-bfeb-53cbbbba6f08"{
"id": "00000000-0000-0000-0000-000000000000",
"kind": "IMPORT",
"sourceRunId": "00000000-0000-0000-0000-000000000000",
"provider": "string",
"integrationConfigId": "00000000-0000-0000-0000-000000000000",
"scheduleId": "00000000-0000-0000-0000-000000000000",
"targetNetworkId": "00000000-0000-0000-0000-000000000000",
"targetAgentMode": "ON",
"enrollmentScope": "ALL_CONTACTS",
"enrollmentEnvironmentIds": [
"00000000-0000-0000-0000-000000000000"
],
"status": "PENDING",
"participantsCreated": 0,
"participantsUpdated": 0,
"participantsExisting": 0,
"participantsFailed": 0,
"contactsUnaffiliated": 0,
"valuesWithheld": 0,
"sampleFailures": [
{
"address": "string",
"reason": "string"
}
],
"accessGranted": 0,
"accessAlreadyGranted": 0,
"accessSkipped": 0,
"accessOutOfScope": 0,
"channelsActuated": 0,
"channelsNotActuated": 0,
"accessWithdrawn": 0,
"accessLeftAlone": 0,
"channelsReleased": 0,
"channelsNotReleased": 0,
"errorMessage": "string",
"createdAt": 0,
"modifiedAt": 0,
"startedAt": 0,
"completedAt": 0
}{
"type": "string",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string",
"property1": null,
"property2": null
}Lists the tenant's directory sync jobs, newest first — imports and the undos of their enrollment.
The history behind the wizard: what each sync created, refreshed and enrolled, and whether its enrollment has since been reversed (an undo row carries `sourceRunId`). It is what makes `POST directory/importRuns/{importRun}:undoEnrollment` reachable at all once the wizard is closed — a mis-scoped sync is usually noticed hours later, not on the completion screen.
Undoes the enrollment an earlier import performed — the imported contacts stay in the Directory.
The safety net for a sync that enrolled the wrong cohort. It withdraws every `Served` grant that run authored <b>and still owns</b> — a grant somebody has since blocked, switched to humans-only or re-enrolled by hand belongs to that operator now and is reported as left alone, never steamrolled — and hands the transports it took over back to the provider's own bot. Contacts, environments and any operator edits to them are untouched: this reverses "the agent answers these people", not the import. Like the import it enqueues a job and returns `202 Accepted`; poll the returned run. Rejected with `400` when the source run granted nothing, and `409` when it is still sweeping or has already been undone.