Download OpenAPI specification:
Pin a tenant to a different executor class (compute pool). Operations-only —
not something a tenant can do to itself. The target tenant is named by the
X-Tenant-ID header, as with every other cross-tenant Operations call.
Repointing a tenant's class reassigns where all of its jobs are routed, with no cross-class fallback (ADR-0020). In-flight jobs already assigned to an executor are not touched; jobs still pending in the queue pick up the new class on the next assignment attempt.
The class is validated as a slug. If no executor is currently registered for the target class, the change still succeeds, but the response carries a warning — the tenant's jobs will queue until a matching pool is provisioned. This is intentional: Operations sometimes repoints a tenant ahead of standing up its pool.
Authorization: requires the mimic:write:tenants_mgmt scope, granted only to the
qvyon-ops role. The handler additionally rejects any non-Operations caller.
Returns 400 if executor_class is malformed. Returns 404 if the X-Tenant-ID
header names an unknown tenant.
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
| executor_class required | string The executor class to pin the tenant to — the named pool identifier that
determines which executors its jobs route to. Slug format:
|
{- "executor_class": "string"
}{- "executor_class": "string",
- "warnings": [
- "string"
]
}Send a sequence folder straight to object storage with presigned URLs, then register it as a validation.
Opens an import of one sequence folder from the caller's machine. The full file list is
announced here and checked before anything is sent: scene.json at the folder's root,
paths that stay inside the folder, no path twice, each file at most 5 GiB, at most
50 GiB in total.
The files are written directly to object storage with presigned URLs (see
POST /{import_id}/urls), into a folder of their own -- the one the sequence will live
in. Close with POST /{import_id}/complete.
Authorization (requires mimic:write:validations scope):
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
| name required | string [ 1 .. 255 ] characters Sequence name, usually the folder's name. Becomes the validation's |
required | Array of objects (MimicResources.SequenceImportFile) [ 1 .. 10000 ] items Every file of the folder. Must hold |
{- "name": "string",
- "files": [
- {
- "path": "string",
- "size": 5368709120
}
]
}{- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "import_id": "13230382-dadc-41f2-963d-e123bd5c0585",
- "name": "string",
- "object_uri": "string",
- "status": "UPLOADING",
- "file_count": 0,
- "total_bytes": 0,
- "uploaded_files": 0,
- "uploaded_bytes": 0,
- "expires_at": "2019-08-24T14:15:22Z",
- "validation_id": "4b787051-9941-4155-aa13-68df4d20d7bc"
}List sequence imports for the authenticated tenant, in every status.
Pass status to filter to imports currently in any of the given statuses.
Authorization (requires mimic:read:validations scope):
| limit | integer <int32> [ 1 .. 200 ] Default: 50 Maximum items to return. Server default: 50. Server maximum: 200. |
| cursor | string Opaque continuation token from previous response. |
| status | Array of strings (MimicResources.SequenceImportStatus) Items Enum: "UPLOADING" "COMPLETED" "CANCELLED" "EXPIRED" |
| sort_by | string Default: "CREATED_AT" Enum: "CREATED_AT" "NAME" "TOTAL_BYTES" "STATUS" Field to sort the sequence import list by. |
| order | string Default: "DESC" Enum: "ASC" "DESC" Direction for a sorted list endpoint's |
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
{- "items": [
- {
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "import_id": "13230382-dadc-41f2-963d-e123bd5c0585",
- "name": "string",
- "object_uri": "string",
- "status": "UPLOADING",
- "file_count": 0,
- "total_bytes": 0,
- "uploaded_files": 0,
- "uploaded_bytes": 0,
- "expires_at": "2019-08-24T14:15:22Z",
- "validation_id": "4b787051-9941-4155-aa13-68df4d20d7bc"
}
], - "page": {
- "next": "string"
}
} Retrieve a single sequence import by ID. Does not look at object storage -- see
/resume for that.
Authorization (requires mimic:read:validations scope).
Returns 404 if not found.
| import_id required | string <uuid> |
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
{- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "import_id": "13230382-dadc-41f2-963d-e123bd5c0585",
- "name": "string",
- "object_uri": "string",
- "status": "UPLOADING",
- "file_count": 0,
- "total_bytes": 0,
- "uploaded_files": 0,
- "uploaded_bytes": 0,
- "expires_at": "2019-08-24T14:15:22Z",
- "validation_id": "4b787051-9941-4155-aa13-68df4d20d7bc"
}Cancels an UPLOADING import: no validation run is created, and the files received so far are deleted shortly after. A COMPLETED import is left alone -- its files are the sequence's now; delete the validation instead.
Authorization (requires mimic:write:validations scope).
Idempotent: returns 204 even if already cancelled, expired, completed or not found.
| import_id required | string <uuid> |
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
{- "type": "string",
- "title": "string",
- "status": 0,
- "detail": "string",
- "instance": "string"
} Checks that object storage holds exactly the announced files at the announced sizes,
then creates the sequence's validation run in READY_TO_VALIDATE, with the import's
object_uri. Call the validations :start to run it.
Safe to retry: on an import already COMPLETED, returns its validation again.
Authorization (requires mimic:write:validations scope).
Returns 400 if a file is missing, has another size, or was not announced (one error per file, the first 100); 404 if the import is not found, CANCELLED or EXPIRED.
| import_id required | string <uuid> |
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
{- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "validation_id": "4b787051-9941-4155-aa13-68df4d20d7bc",
- "name": "string",
- "object_uri": "string",
- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "status": "READY_TO_VALIDATE",
- "result": {
- "status": "success",
- "started_at": "2019-08-24T14:15:22Z",
- "finished_at": "2019-08-24T14:15:22Z",
- "duration_seconds": 0.1,
- "error": {
- "message": "string",
- "datasets": [
- "string"
], - "errors": [
- {
- "code": "string",
- "message": "string",
- "error_ref": "string",
- "stage": "string",
- "dataset": "string",
- "detail": "string",
- "internal_description": "string"
}
]
}, - "message": "string",
- "thumbnail_path": "string",
- "scenes_found": 0,
- "frame_count": 0,
- "scenes_passed": 0,
- "scenes_failed": 0
}, - "progress": {
- "percent": 0,
- "stage": "string",
- "label": "string",
- "eta": "string",
- "iter": 0
}, - "executor_version": "string",
- "started_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z",
- "tag_ids": [
- "string"
]
} Compares object storage with the announced files and returns those still missing (or
at another size, e.g. overwritten by a stray PUT), so an interrupted upload -- even one
whose caller lost its own record of what was sent -- picks up where it stopped.
Refreshes uploaded_files/uploaded_bytes and pushes expires_at back.
Authorization (requires mimic:write:validations scope).
Returns 404 if the import is not UPLOADING.
| import_id required | string <uuid> |
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
{- "import": {
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "import_id": "13230382-dadc-41f2-963d-e123bd5c0585",
- "name": "string",
- "object_uri": "string",
- "status": "UPLOADING",
- "file_count": 0,
- "total_bytes": 0,
- "uploaded_files": 0,
- "uploaded_bytes": 0,
- "expires_at": "2019-08-24T14:15:22Z",
- "validation_id": "4b787051-9941-4155-aa13-68df4d20d7bc"
}, - "missing_paths": [
- "string"
]
} Returns a presigned PUT URL for each path given, valid for 15 minutes. Each URL is bound
to its file's key and announced size: the PUT must carry that exact Content-Length.
Ask in batches as the upload goes rather than for every file at once -- a URL that
expires before it is used is simply asked for again. Pushes expires_at back.
Authorization (requires mimic:write:validations scope).
Returns 400 if a path was not announced, 404 if the import is not UPLOADING.
| import_id required | string <uuid> |
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
| paths required | Array of strings [ 1 .. 1000 ] items Paths to sign, each one announced when the import was opened. Ask in batches as the upload goes, since a URL lives no longer than 15 minutes. |
{- "paths": [
- "string"
]
}{- "urls": [
- {
- "path": "string",
- "url": "string",
- "expires_at": "2019-08-24T14:15:22Z"
}
]
} Creates one validation run record per sequence given, in order, in READY_TO_VALIDATE --
no job is created and no executor is involved yet. The manual counterpart to :scan for
a caller that already knows a sequence's name and object_uri rather than discovering it
by walking the landing zone -- sequences must be non-empty. Call :start to actually
dispatch the validation jobs.
Authorization (requires mimic:write:validations scope):
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
required | Array of objects (MimicResources.Sequence) The sequences to create validation run records for. Must be non-empty. |
{- "sequences": [
- {
- "name": "string",
- "object_uri": "string"
}
]
}{- "validations": [
- {
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "validation_id": "4b787051-9941-4155-aa13-68df4d20d7bc",
- "name": "string",
- "object_uri": "string",
- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "status": "READY_TO_VALIDATE",
- "result": {
- "status": "success",
- "started_at": "2019-08-24T14:15:22Z",
- "finished_at": "2019-08-24T14:15:22Z",
- "duration_seconds": 0.1,
- "error": {
- "message": "string",
- "datasets": [
- "string"
], - "errors": [
- {
- "code": "string",
- "message": "string",
- "error_ref": "string",
- "stage": "string",
- "dataset": "string",
- "detail": "string",
- "internal_description": "string"
}
]
}, - "message": "string",
- "thumbnail_path": "string",
- "scenes_found": 0,
- "frame_count": 0,
- "scenes_passed": 0,
- "scenes_failed": 0
}, - "progress": {
- "percent": 0,
- "stage": "string",
- "label": "string",
- "eta": "string",
- "iter": 0
}, - "executor_version": "string",
- "started_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z",
- "tag_ids": [
- "string"
]
}
]
}List validation runs for the authenticated tenant.
Pass job_id to look up the validation run created by a specific validation job --
useful for clients (e.g. a generic jobs list) that only know the job ID and need to
poll its progress.
Pass name to filter by a case-insensitive substring match on the sequence's name.
Pass tag_ids to filter to validations tagged with any of the given tags.
Pass executor_version to filter to validations whose job reported that exact
executor version.
Pass status to filter to validations currently in any of the given statuses.
Pass created_at_from and/or created_at_to to filter to validations whose
created_at falls within that inclusive range.
Pass sort_by to choose the sort column.
Authorization (requires mimic:read:validations scope):
| limit | integer <int32> [ 1 .. 200 ] Default: 50 Maximum items to return. Server default: 50. Server maximum: 200. |
| cursor | string Opaque continuation token from previous response. |
| job_id | string <uuid> |
| name | string |
| tag_ids | Array of strings |
| executor_version | string |
| status | Array of strings (MimicResources.ValidationStatus) Items Enum: "READY_TO_VALIDATE" "QUEUED" "VALIDATING" "VALID" "INVALID" "ERROR" "CANCELLED" |
| created_at_from | string <date-time> |
| created_at_to | string <date-time> |
| sort_by | string Default: "CREATED_AT" Enum: "CREATED_AT" "NAME" "EXECUTOR_VERSION" Sortable columns for |
| order | string Default: "ASC" Enum: "ASC" "DESC" Direction for a sorted list endpoint's |
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
{- "items": [
- {
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "validation_id": "4b787051-9941-4155-aa13-68df4d20d7bc",
- "name": "string",
- "object_uri": "string",
- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "status": "READY_TO_VALIDATE",
- "result": {
- "status": "success",
- "started_at": "2019-08-24T14:15:22Z",
- "finished_at": "2019-08-24T14:15:22Z",
- "duration_seconds": 0.1,
- "error": {
- "message": "string",
- "datasets": [
- "string"
], - "errors": [
- {
- "code": "string",
- "message": "string",
- "error_ref": "string",
- "stage": "string",
- "dataset": "string",
- "detail": "string",
- "internal_description": "string"
}
]
}, - "message": "string",
- "thumbnail_path": "string",
- "scenes_found": 0,
- "frame_count": 0,
- "scenes_passed": 0,
- "scenes_failed": 0
}, - "progress": {
- "percent": 0,
- "stage": "string",
- "label": "string",
- "eta": "string",
- "iter": 0
}, - "executor_version": "string",
- "started_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z",
- "tag_ids": [
- "string"
]
}
], - "page": {
- "next": "string"
}
} Returns the URI of the tenant's staging directory -- a fixed location, not something a
caller chooses. Drop raw sequences there, then call :scan to discover them.
Authorization (requires mimic:read:validations scope):
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
{- "uri": "string"
}Attach every listed tag to every listed validation, so that a multi-row selection produces one request instead of one per pair.
Authorization (requires mimic:write:tags scope).
Idempotent: pairs that are already attached are left alone. Returns 404 if any tag or validation does not exist.
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
| tag_ids required | Array of strings The tags to apply. Must be non-empty. |
| validation_ids required | Array of strings The validations to apply them to. Must be non-empty. |
{- "tag_ids": [
- "string"
], - "validation_ids": [
- "string"
]
}{- "errors": [
- {
- "detail": "string",
- "pointer": "string"
}
], - "type": "string",
- "title": "string",
- "status": 0,
- "detail": "string",
- "instance": "string"
}Detach every listed tag from every listed validation.
Authorization (requires mimic:write:tags scope).
Idempotent: pairs that are not attached are left alone. Returns 404 if any tag or validation does not exist.
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
| tag_ids required | Array of strings The tags to apply. Must be non-empty. |
| validation_ids required | Array of strings The validations to apply them to. Must be non-empty. |
{- "tag_ids": [
- "string"
], - "validation_ids": [
- "string"
]
}{- "errors": [
- {
- "detail": "string",
- "pointer": "string"
}
], - "type": "string",
- "title": "string",
- "status": 0,
- "detail": "string",
- "instance": "string"
} Returns every distinct executor_version recorded across this tenant's validation runs
(e.g. for a UI filter dropdown) -- looks through the executor_version reported on every
Validation, not just the latest.
Empty list if no run has reported a version yet, including when there are no validations at all.
Authorization (requires mimic:read:validations scope).
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
{- "items": [
- "string"
]
}Retrieve a single validation run by ID.
Authorization (requires mimic:read:validations scope):
Returns 404 if not found or soft-deleted.
| validation_id required | string <uuid> |
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
{- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "validation_id": "4b787051-9941-4155-aa13-68df4d20d7bc",
- "name": "string",
- "object_uri": "string",
- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "status": "READY_TO_VALIDATE",
- "result": {
- "status": "success",
- "started_at": "2019-08-24T14:15:22Z",
- "finished_at": "2019-08-24T14:15:22Z",
- "duration_seconds": 0.1,
- "error": {
- "message": "string",
- "datasets": [
- "string"
], - "errors": [
- {
- "code": "string",
- "message": "string",
- "error_ref": "string",
- "stage": "string",
- "dataset": "string",
- "detail": "string",
- "internal_description": "string"
}
]
}, - "message": "string",
- "thumbnail_path": "string",
- "scenes_found": 0,
- "frame_count": 0,
- "scenes_passed": 0,
- "scenes_failed": 0
}, - "progress": {
- "percent": 0,
- "stage": "string",
- "label": "string",
- "eta": "string",
- "iter": 0
}, - "executor_version": "string",
- "started_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z",
- "tag_ids": [
- "string"
]
}Soft-delete a validation run, matching Reconstruction/Actor's delete semantics.
If the underlying job is still QUEUED, ASSIGNED, or RUNNING, it is cancelled first before the validation run is soft-deleted. Otherwise (VALID, INVALID, ERROR, READY_TO_VALIDATE, already CANCELLED) it is soft-deleted directly. Sequence files the platform stores (imported or scanned in) are then permanently deleted.
Returns 409 while any reconstruction of it still exists (delete those first), or while a job built on this sequence is still winding down -- deleting would pull the files out from under them.
Authorization (requires mimic:write:validations scope):
Idempotent: returns 204 even if already deleted or not found.
| validation_id required | string <uuid> |
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
{- "type": "string",
- "title": "string",
- "status": 0,
- "detail": "string",
- "instance": "string"
} Step 1 of the pipeline: scans the tenant's staging directory (see
GET /import-directory), walking its directory tree for scene.json files. For each
one found, the immediate parent directory name becomes the sequence's name and its S3
path becomes its object_uri.
Validations are the system's registry of sequences -- there is no separate registration
step. A validation run is created directly for each newly discovered sequence, in
READY_TO_VALIDATE. Sequences already known (matched by object_uri) are skipped, so
repeated (re-)scans are safe -- only genuinely new sequences produce new records.
No job is created and no executor is involved yet -- call :start to actually dispatch
the validation jobs.
Authorization (requires mimic:write:validations scope):
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
{- "validations": [
- {
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "validation_id": "4b787051-9941-4155-aa13-68df4d20d7bc",
- "name": "string",
- "object_uri": "string",
- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "status": "READY_TO_VALIDATE",
- "result": {
- "status": "success",
- "started_at": "2019-08-24T14:15:22Z",
- "finished_at": "2019-08-24T14:15:22Z",
- "duration_seconds": 0.1,
- "error": {
- "message": "string",
- "datasets": [
- "string"
], - "errors": [
- {
- "code": "string",
- "message": "string",
- "error_ref": "string",
- "stage": "string",
- "dataset": "string",
- "detail": "string",
- "internal_description": "string"
}
]
}, - "message": "string",
- "thumbnail_path": "string",
- "scenes_found": 0,
- "frame_count": 0,
- "scenes_passed": 0,
- "scenes_failed": 0
}, - "progress": {
- "percent": 0,
- "stage": "string",
- "label": "string",
- "eta": "string",
- "iter": 0
}, - "executor_version": "string",
- "started_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z",
- "tag_ids": [
- "string"
]
}
]
} Starts the validation job for each validation run ID given, in order --
validation_ids must be non-empty. Unlike Actor's per-resource :start, this is bulk: a
validation job takes no per-item args, so one request can start many runs at once.
Eligible starting statuses: READY_TO_VALIDATE (first run), or VALID/INVALID/ERROR/ CANCELLED (to retry or re-run) -- so a caller can bulk-retry a set of failed or cancelled validations in one call. Not eligible while a run is already in flight (QUEUED, VALIDATING).
Authorization (requires mimic:write:validations scope):
Returns 409 if any validation run is not in an eligible status.
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
| validation_ids required | Array of strings The validation runs to start. Must be non-empty. |
{- "validation_ids": [
- "string"
]
}{- "validations": [
- {
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "validation_id": "4b787051-9941-4155-aa13-68df4d20d7bc",
- "name": "string",
- "object_uri": "string",
- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "status": "READY_TO_VALIDATE",
- "result": {
- "status": "success",
- "started_at": "2019-08-24T14:15:22Z",
- "finished_at": "2019-08-24T14:15:22Z",
- "duration_seconds": 0.1,
- "error": {
- "message": "string",
- "datasets": [
- "string"
], - "errors": [
- {
- "code": "string",
- "message": "string",
- "error_ref": "string",
- "stage": "string",
- "dataset": "string",
- "detail": "string",
- "internal_description": "string"
}
]
}, - "message": "string",
- "thumbnail_path": "string",
- "scenes_found": 0,
- "frame_count": 0,
- "scenes_passed": 0,
- "scenes_failed": 0
}, - "progress": {
- "percent": 0,
- "stage": "string",
- "label": "string",
- "eta": "string",
- "iter": 0
}, - "executor_version": "string",
- "started_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z",
- "tag_ids": [
- "string"
]
}
]
} Create a reconstructed model record without starting anything -- no job is created and
no executor is involved. The model starts in READY_TO_RECONSTRUCT. Call :start to
actually dispatch the reconstruction job.
This lets a caller (e.g. the Mimic UI, transitioning between pipeline stages) create the record ahead of time without committing to run it yet.
Authorization (requires mimic:write:reconstructions scope):
Supports Idempotency-Key header for safe retries.
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
| validation_id required | string <uuid> ID of the validation (must be VALID) whose sequence to reconstruct on. |
| name | string Human-readable name for the model. If omitted, auto-generated from scene name. |
{- "validation_id": "4b787051-9941-4155-aa13-68df4d20d7bc",
- "name": "string"
}{- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "reconstruction_id": "b8b4f18f-1fee-4bf5-8e0c-3e50b159e778",
- "validation_id": "4b787051-9941-4155-aa13-68df4d20d7bc",
- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "name": "string",
- "run_count": 0,
- "frame_count": 0,
- "status": "READY_TO_RECONSTRUCT",
- "args": {
- "train_radar": true,
- "is_fisheye": true,
- "camera_synchronized": true
}, - "result": {
- "status": "success",
- "started_at": "2019-08-24T14:15:22Z",
- "finished_at": "2019-08-24T14:15:22Z",
- "duration_seconds": 0.1,
- "error": {
- "message": "string",
- "datasets": [
- "string"
], - "errors": [
- {
- "code": "string",
- "message": "string",
- "error_ref": "string",
- "stage": "string",
- "dataset": "string",
- "detail": "string",
- "internal_description": "string"
}
]
}, - "message": "string",
- "final_metrics": {
- "step": "string",
- "global_kpi": 0.1,
- "colors": {
- "property1": "string",
- "property2": "string"
}, - "metric_directions": {
- "property1": "higher_is_better",
- "property2": "higher_is_better"
}, - "image": {
- "property1": 0.1,
- "property2": 0.1
}, - "lidar": {
- "property1": 0.1,
- "property2": 0.1
}, - "radar": {
- "property1": 0.1,
- "property2": 0.1
}
}, - "exported_scene": "string",
- "exported_actors": "string",
- "output_size_mb": 0.1
}, - "progress": {
- "percent": 0,
- "stage": "string",
- "label": "string",
- "eta": "string",
- "iter": 0
}, - "executor_version": "string",
- "object_uri": "string",
- "started_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z",
- "tag_ids": [
- "string"
], - "kpis": {
- "property1": {
- "value": 0.1,
- "direction": "higher_is_better",
- "color": "string"
}, - "property2": {
- "value": 0.1,
- "direction": "higher_is_better",
- "color": "string"
}
}, - "scene_actors": [
- {
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "actor_id": "04f37679-bfbf-4906-b749-01756515cecf",
- "kind": "SCENE",
- "library_id": "21f784c9-c915-48d4-a805-f15b3e01b084",
- "name": "string",
- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "status": "QUEUED",
- "category_ids": [
- "string"
], - "dimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "description": "string",
- "license": "string",
- "sequence_id": "7cd84c09-94f4-486c-9c49-de3b9cf3f74f",
- "category": "string",
- "progress": {
- "percent": 0,
- "stage": "string",
- "label": "string",
- "eta": "string",
- "iter": 0
}, - "executor_version": "string",
- "result": {
- "status": "success",
- "started_at": "2019-08-24T14:15:22Z",
- "finished_at": "2019-08-24T14:15:22Z",
- "duration_seconds": 0.1,
- "error": {
- "message": "string",
- "datasets": [
- "string"
], - "errors": [
- {
- "code": "string",
- "message": "string",
- "error_ref": "string",
- "stage": "string",
- "dataset": "string",
- "detail": "string",
- "internal_description": "string"
}
]
}, - "conversion_status": "ok",
- "bundles_requested": 0,
- "bundles_converted": 0,
- "output_size_mb": 0.1,
- "bundles": [
- {
- "source": "string",
- "output_dir": "string",
- "result_json": "string",
- "status": "string",
- "detected_format": "string",
- "tool": "string",
- "tool_version": "string",
- "artifacts": [
- "string"
], - "required_present": true,
- "output_size_mb": 0.1,
- "timing_seconds": 0.1,
- "actors": [
- {
- "property1": "string",
- "property2": "string"
}
]
}
]
}, - "object_uri": "string",
- "started_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z"
}
]
}List reconstructed models for the authenticated tenant.
Default sort: created_at DESC, reconstruction_id ASC (newest first, stable tie-breaker). Includes models in all statuses (PROCESSING, READY, FAILED). Excludes soft-deleted models.
Pass job_id to look up the reconstruction created by a specific training job —
useful for clients (e.g. a generic jobs list) that only know the job ID and need to
poll its progress/metrics/output_uri.
Pass name to filter by a case-insensitive substring match on the model's name.
Pass tag_ids to filter to models tagged with any of the given tags.
Pass executor_version to filter to models whose job reported that exact executor
version.
Pass status to filter to models currently in any of the given statuses.
Pass started_at_from and/or started_at_to to filter to models whose started_at
falls within that inclusive range.
Pass sort_by to choose the sort column.
Authorization (requires mimic:read:reconstructions scope):
| limit | integer <int32> [ 1 .. 200 ] Default: 50 Maximum items to return. Server default: 50. Server maximum: 200. |
| cursor | string Opaque continuation token from previous response. |
| job_id | string <uuid> |
| name | string |
| tag_ids | Array of strings |
| executor_version | string |
| status | Array of strings (MimicResources.ReconstructionStatus) Items Enum: "READY_TO_RECONSTRUCT" "QUEUED" "PROCESSING" "READY" "FAILED" "ERROR" "CANCELLED" |
| started_at_from | string <date-time> |
| started_at_to | string <date-time> |
| sort_by | string Default: "CREATED_AT" Enum: "CREATED_AT" "NAME" "EXECUTOR_VERSION" "RUN_COUNT" "STARTED_AT" "COMPLETED_AT" Sortable columns for |
| order | string Default: "ASC" Enum: "ASC" "DESC" Direction for a sorted list endpoint's |
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
{- "items": [
- {
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "reconstruction_id": "b8b4f18f-1fee-4bf5-8e0c-3e50b159e778",
- "validation_id": "4b787051-9941-4155-aa13-68df4d20d7bc",
- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "name": "string",
- "run_count": 0,
- "frame_count": 0,
- "status": "READY_TO_RECONSTRUCT",
- "args": {
- "train_radar": true,
- "is_fisheye": true,
- "camera_synchronized": true
}, - "result": {
- "status": "success",
- "started_at": "2019-08-24T14:15:22Z",
- "finished_at": "2019-08-24T14:15:22Z",
- "duration_seconds": 0.1,
- "error": {
- "message": "string",
- "datasets": [
- "string"
], - "errors": [
- {
- "code": "string",
- "message": "string",
- "error_ref": "string",
- "stage": "string",
- "dataset": "string",
- "detail": "string",
- "internal_description": "string"
}
]
}, - "message": "string",
- "final_metrics": {
- "step": "string",
- "global_kpi": 0.1,
- "colors": {
- "property1": "string",
- "property2": "string"
}, - "metric_directions": {
- "property1": "higher_is_better",
- "property2": "higher_is_better"
}, - "image": {
- "property1": 0.1,
- "property2": 0.1
}, - "lidar": {
- "property1": 0.1,
- "property2": 0.1
}, - "radar": {
- "property1": 0.1,
- "property2": 0.1
}
}, - "exported_scene": "string",
- "exported_actors": "string",
- "output_size_mb": 0.1
}, - "progress": {
- "percent": 0,
- "stage": "string",
- "label": "string",
- "eta": "string",
- "iter": 0
}, - "executor_version": "string",
- "object_uri": "string",
- "started_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z",
- "tag_ids": [
- "string"
], - "kpis": {
- "property1": {
- "value": 0.1,
- "direction": "higher_is_better",
- "color": "string"
}, - "property2": {
- "value": 0.1,
- "direction": "higher_is_better",
- "color": "string"
}
}, - "scene_actors": [
- {
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "actor_id": "04f37679-bfbf-4906-b749-01756515cecf",
- "kind": "SCENE",
- "library_id": "21f784c9-c915-48d4-a805-f15b3e01b084",
- "name": "string",
- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "status": "QUEUED",
- "category_ids": [
- "string"
], - "dimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "description": "string",
- "license": "string",
- "sequence_id": "7cd84c09-94f4-486c-9c49-de3b9cf3f74f",
- "category": "string",
- "progress": {
- "percent": 0,
- "stage": "string",
- "label": "string",
- "eta": "string",
- "iter": 0
}, - "executor_version": "string",
- "result": {
- "status": "success",
- "started_at": "2019-08-24T14:15:22Z",
- "finished_at": "2019-08-24T14:15:22Z",
- "duration_seconds": 0.1,
- "error": {
- "message": "string",
- "datasets": [
- "string"
], - "errors": [
- {
- "code": "string",
- "message": "string",
- "error_ref": "string",
- "stage": "string",
- "dataset": "string",
- "detail": "string",
- "internal_description": "string"
}
]
}, - "conversion_status": "ok",
- "bundles_requested": 0,
- "bundles_converted": 0,
- "output_size_mb": 0.1,
- "bundles": [
- {
- "source": "string",
- "output_dir": "string",
- "result_json": "string",
- "status": "string",
- "detected_format": "string",
- "tool": "string",
- "tool_version": "string",
- "artifacts": [
- "string"
], - "required_present": true,
- "output_size_mb": 0.1,
- "timing_seconds": 0.1,
- "actors": [
- {
- "property1": null,
- "property2": null
}
]
}
]
}, - "object_uri": "string",
- "started_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z"
}
]
}
], - "page": {
- "next": "string"
}
} Returns the parameters accepted by POST /reconstructions's args field, derived
from the ReconstructionArgs schema, so a client can render a form without hardcoding
field names.
Static schema only — does not resolve per-scene default values.
Authorization (requires mimic:read:reconstructions scope).
{- "items": [
- {
- "name": "string",
- "label": "string",
- "type": "string",
- "description": "string",
- "required": true,
- "enum_values": [
- "string"
], - "default_value": null
}
]
}Attach every listed tag to every listed reconstruction, so that a multi-row selection produces one request instead of one per pair.
Authorization (requires mimic:write:tags scope).
Idempotent: pairs that are already attached are left alone. Returns 404 if any tag or reconstruction does not exist.
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
| tag_ids required | Array of strings The tags to apply. Must be non-empty. |
| reconstruction_ids required | Array of strings The reconstructions to apply them to. Must be non-empty. |
{- "tag_ids": [
- "string"
], - "reconstruction_ids": [
- "string"
]
}{- "errors": [
- {
- "detail": "string",
- "pointer": "string"
}
], - "type": "string",
- "title": "string",
- "status": 0,
- "detail": "string",
- "instance": "string"
}Detach every listed tag from every listed reconstruction.
Authorization (requires mimic:write:tags scope).
Idempotent: pairs that are not attached are left alone. Returns 404 if any tag or reconstruction does not exist.
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
| tag_ids required | Array of strings The tags to apply. Must be non-empty. |
| reconstruction_ids required | Array of strings The reconstructions to apply them to. Must be non-empty. |
{- "tag_ids": [
- "string"
], - "reconstruction_ids": [
- "string"
]
}{- "errors": [
- {
- "detail": "string",
- "pointer": "string"
}
], - "type": "string",
- "title": "string",
- "status": 0,
- "detail": "string",
- "instance": "string"
} Returns every distinct executor_version recorded across this tenant's reconstruction
runs (e.g. for a UI filter dropdown) -- looks through the executor_version reported on
every Reconstruction, not just the latest.
Empty list if no run has reported a version yet, including when there are no reconstructions at all.
Authorization (requires mimic:read:reconstructions scope).
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
{- "items": [
- "string"
]
}Retrieve a single reconstructed model by ID.
Authorization (requires mimic:read:reconstructions scope):
Returns 404 if not found or soft-deleted.
| reconstruction_id required | string <uuid> |
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
{- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "reconstruction_id": "b8b4f18f-1fee-4bf5-8e0c-3e50b159e778",
- "validation_id": "4b787051-9941-4155-aa13-68df4d20d7bc",
- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "name": "string",
- "run_count": 0,
- "frame_count": 0,
- "status": "READY_TO_RECONSTRUCT",
- "args": {
- "train_radar": true,
- "is_fisheye": true,
- "camera_synchronized": true
}, - "result": {
- "status": "success",
- "started_at": "2019-08-24T14:15:22Z",
- "finished_at": "2019-08-24T14:15:22Z",
- "duration_seconds": 0.1,
- "error": {
- "message": "string",
- "datasets": [
- "string"
], - "errors": [
- {
- "code": "string",
- "message": "string",
- "error_ref": "string",
- "stage": "string",
- "dataset": "string",
- "detail": "string",
- "internal_description": "string"
}
]
}, - "message": "string",
- "final_metrics": {
- "step": "string",
- "global_kpi": 0.1,
- "colors": {
- "property1": "string",
- "property2": "string"
}, - "metric_directions": {
- "property1": "higher_is_better",
- "property2": "higher_is_better"
}, - "image": {
- "property1": 0.1,
- "property2": 0.1
}, - "lidar": {
- "property1": 0.1,
- "property2": 0.1
}, - "radar": {
- "property1": 0.1,
- "property2": 0.1
}
}, - "exported_scene": "string",
- "exported_actors": "string",
- "output_size_mb": 0.1
}, - "progress": {
- "percent": 0,
- "stage": "string",
- "label": "string",
- "eta": "string",
- "iter": 0
}, - "executor_version": "string",
- "object_uri": "string",
- "started_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z",
- "tag_ids": [
- "string"
], - "kpis": {
- "property1": {
- "value": 0.1,
- "direction": "higher_is_better",
- "color": "string"
}, - "property2": {
- "value": 0.1,
- "direction": "higher_is_better",
- "color": "string"
}
}, - "scene_actors": [
- {
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "actor_id": "04f37679-bfbf-4906-b749-01756515cecf",
- "kind": "SCENE",
- "library_id": "21f784c9-c915-48d4-a805-f15b3e01b084",
- "name": "string",
- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "status": "QUEUED",
- "category_ids": [
- "string"
], - "dimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "description": "string",
- "license": "string",
- "sequence_id": "7cd84c09-94f4-486c-9c49-de3b9cf3f74f",
- "category": "string",
- "progress": {
- "percent": 0,
- "stage": "string",
- "label": "string",
- "eta": "string",
- "iter": 0
}, - "executor_version": "string",
- "result": {
- "status": "success",
- "started_at": "2019-08-24T14:15:22Z",
- "finished_at": "2019-08-24T14:15:22Z",
- "duration_seconds": 0.1,
- "error": {
- "message": "string",
- "datasets": [
- "string"
], - "errors": [
- {
- "code": "string",
- "message": "string",
- "error_ref": "string",
- "stage": "string",
- "dataset": "string",
- "detail": "string",
- "internal_description": "string"
}
]
}, - "conversion_status": "ok",
- "bundles_requested": 0,
- "bundles_converted": 0,
- "output_size_mb": 0.1,
- "bundles": [
- {
- "source": "string",
- "output_dir": "string",
- "result_json": "string",
- "status": "string",
- "detected_format": "string",
- "tool": "string",
- "tool_version": "string",
- "artifacts": [
- "string"
], - "required_present": true,
- "output_size_mb": 0.1,
- "timing_seconds": 0.1,
- "actors": [
- {
- "property1": "string",
- "property2": "string"
}
]
}
]
}, - "object_uri": "string",
- "started_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z"
}
]
}Rename a reconstructed model. Renames the reconstruction's own name only -- distinct from and independent of the source sequence's name it was trained from.
Authorization (requires mimic:write:reconstructions scope):
Returns 404 if not found or soft-deleted.
| reconstruction_id required | string <uuid> |
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
| name required | string New human-readable name for this reconstructed model. |
{- "name": "string"
}{- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "reconstruction_id": "b8b4f18f-1fee-4bf5-8e0c-3e50b159e778",
- "validation_id": "4b787051-9941-4155-aa13-68df4d20d7bc",
- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "name": "string",
- "run_count": 0,
- "frame_count": 0,
- "status": "READY_TO_RECONSTRUCT",
- "args": {
- "train_radar": true,
- "is_fisheye": true,
- "camera_synchronized": true
}, - "result": {
- "status": "success",
- "started_at": "2019-08-24T14:15:22Z",
- "finished_at": "2019-08-24T14:15:22Z",
- "duration_seconds": 0.1,
- "error": {
- "message": "string",
- "datasets": [
- "string"
], - "errors": [
- {
- "code": "string",
- "message": "string",
- "error_ref": "string",
- "stage": "string",
- "dataset": "string",
- "detail": "string",
- "internal_description": "string"
}
]
}, - "message": "string",
- "final_metrics": {
- "step": "string",
- "global_kpi": 0.1,
- "colors": {
- "property1": "string",
- "property2": "string"
}, - "metric_directions": {
- "property1": "higher_is_better",
- "property2": "higher_is_better"
}, - "image": {
- "property1": 0.1,
- "property2": 0.1
}, - "lidar": {
- "property1": 0.1,
- "property2": 0.1
}, - "radar": {
- "property1": 0.1,
- "property2": 0.1
}
}, - "exported_scene": "string",
- "exported_actors": "string",
- "output_size_mb": 0.1
}, - "progress": {
- "percent": 0,
- "stage": "string",
- "label": "string",
- "eta": "string",
- "iter": 0
}, - "executor_version": "string",
- "object_uri": "string",
- "started_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z",
- "tag_ids": [
- "string"
], - "kpis": {
- "property1": {
- "value": 0.1,
- "direction": "higher_is_better",
- "color": "string"
}, - "property2": {
- "value": 0.1,
- "direction": "higher_is_better",
- "color": "string"
}
}, - "scene_actors": [
- {
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "actor_id": "04f37679-bfbf-4906-b749-01756515cecf",
- "kind": "SCENE",
- "library_id": "21f784c9-c915-48d4-a805-f15b3e01b084",
- "name": "string",
- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "status": "QUEUED",
- "category_ids": [
- "string"
], - "dimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "description": "string",
- "license": "string",
- "sequence_id": "7cd84c09-94f4-486c-9c49-de3b9cf3f74f",
- "category": "string",
- "progress": {
- "percent": 0,
- "stage": "string",
- "label": "string",
- "eta": "string",
- "iter": 0
}, - "executor_version": "string",
- "result": {
- "status": "success",
- "started_at": "2019-08-24T14:15:22Z",
- "finished_at": "2019-08-24T14:15:22Z",
- "duration_seconds": 0.1,
- "error": {
- "message": "string",
- "datasets": [
- "string"
], - "errors": [
- {
- "code": "string",
- "message": "string",
- "error_ref": "string",
- "stage": "string",
- "dataset": "string",
- "detail": "string",
- "internal_description": "string"
}
]
}, - "conversion_status": "ok",
- "bundles_requested": 0,
- "bundles_converted": 0,
- "output_size_mb": 0.1,
- "bundles": [
- {
- "source": "string",
- "output_dir": "string",
- "result_json": "string",
- "status": "string",
- "detected_format": "string",
- "tool": "string",
- "tool_version": "string",
- "artifacts": [
- "string"
], - "required_present": true,
- "output_size_mb": 0.1,
- "timing_seconds": 0.1,
- "actors": [
- {
- "property1": "string",
- "property2": "string"
}
]
}
]
}, - "object_uri": "string",
- "started_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z"
}
]
}Soft-delete a Reconstruction.
Authorization (requires mimic:write:reconstructions scope):
Idempotent: returns 204 even if already deleted or not found. Cancels an in-flight reconstruction job, then permanently deletes its output files.
Returns 409 while an export run or an augmentation session that loaded it is still active -- deleting would pull the files out from under them.
| reconstruction_id required | string <uuid> |
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
{- "type": "string",
- "title": "string",
- "status": 0,
- "detail": "string",
- "instance": "string"
}Start the reconstruction job for each reconstructed model given, in order, each with its own args -- reconstructions must be non-empty.
Each model transitions to QUEUED, then PROCESSING when picked up by an executor, then READY or ERROR when the job completes. reconstruction parameters are optional -- server defaults are applied for any omitted parameters. The resolved parameters (with defaults) are stored on the reconstructed model for reproducibility.
Eligible starting statuses: READY_TO_RECONSTRUCT (first run), or FAILED/ERROR/READY/ CANCELLED (to retry or re-run) -- so a caller can bulk-retry a set of failed or cancelled reconstructions in one call. Not eligible while a run is already in flight (QUEUED, PROCESSING).
Authorization (requires mimic:write:reconstructions scope):
Returns 409 if any reconstruction is not in an eligible status.
Supports Idempotency-Key header for safe retries.
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
required | Array of objects (MimicResources.StartReconstructionRequestItem) The reconstructed models to start. Must be non-empty. |
{- "reconstructions": [
- {
- "reconstruction_id": "b8b4f18f-1fee-4bf5-8e0c-3e50b159e778",
- "args": {
- "train_radar": true,
- "is_fisheye": true,
- "camera_synchronized": true
}
}
]
}{- "reconstructions": [
- {
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "reconstruction_id": "b8b4f18f-1fee-4bf5-8e0c-3e50b159e778",
- "validation_id": "4b787051-9941-4155-aa13-68df4d20d7bc",
- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "name": "string",
- "run_count": 0,
- "frame_count": 0,
- "status": "READY_TO_RECONSTRUCT",
- "args": {
- "train_radar": true,
- "is_fisheye": true,
- "camera_synchronized": true
}, - "result": {
- "status": "success",
- "started_at": "2019-08-24T14:15:22Z",
- "finished_at": "2019-08-24T14:15:22Z",
- "duration_seconds": 0.1,
- "error": {
- "message": "string",
- "datasets": [
- "string"
], - "errors": [
- {
- "code": "string",
- "message": "string",
- "error_ref": "string",
- "stage": "string",
- "dataset": "string",
- "detail": "string",
- "internal_description": "string"
}
]
}, - "message": "string",
- "final_metrics": {
- "step": "string",
- "global_kpi": 0.1,
- "colors": {
- "property1": "string",
- "property2": "string"
}, - "metric_directions": {
- "property1": "higher_is_better",
- "property2": "higher_is_better"
}, - "image": {
- "property1": 0.1,
- "property2": 0.1
}, - "lidar": {
- "property1": 0.1,
- "property2": 0.1
}, - "radar": {
- "property1": 0.1,
- "property2": 0.1
}
}, - "exported_scene": "string",
- "exported_actors": "string",
- "output_size_mb": 0.1
}, - "progress": {
- "percent": 0,
- "stage": "string",
- "label": "string",
- "eta": "string",
- "iter": 0
}, - "executor_version": "string",
- "object_uri": "string",
- "started_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z",
- "tag_ids": [
- "string"
], - "kpis": {
- "property1": {
- "value": 0.1,
- "direction": "higher_is_better",
- "color": "string"
}, - "property2": {
- "value": 0.1,
- "direction": "higher_is_better",
- "color": "string"
}
}, - "scene_actors": [
- {
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "actor_id": "04f37679-bfbf-4906-b749-01756515cecf",
- "kind": "SCENE",
- "library_id": "21f784c9-c915-48d4-a805-f15b3e01b084",
- "name": "string",
- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "status": "QUEUED",
- "category_ids": [
- "string"
], - "dimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "description": "string",
- "license": "string",
- "sequence_id": "7cd84c09-94f4-486c-9c49-de3b9cf3f74f",
- "category": "string",
- "progress": {
- "percent": 0,
- "stage": "string",
- "label": "string",
- "eta": "string",
- "iter": 0
}, - "executor_version": "string",
- "result": {
- "status": "success",
- "started_at": "2019-08-24T14:15:22Z",
- "finished_at": "2019-08-24T14:15:22Z",
- "duration_seconds": 0.1,
- "error": {
- "message": "string",
- "datasets": [
- "string"
], - "errors": [
- {
- "code": "string",
- "message": "string",
- "error_ref": "string",
- "stage": "string",
- "dataset": "string",
- "detail": "string",
- "internal_description": "string"
}
]
}, - "conversion_status": "ok",
- "bundles_requested": 0,
- "bundles_converted": 0,
- "output_size_mb": 0.1,
- "bundles": [
- {
- "source": "string",
- "output_dir": "string",
- "result_json": "string",
- "status": "string",
- "detected_format": "string",
- "tool": "string",
- "tool_version": "string",
- "artifacts": [
- "string"
], - "required_present": true,
- "output_size_mb": 0.1,
- "timing_seconds": 0.1,
- "actors": [
- {
- "property1": null,
- "property2": null
}
]
}
]
}, - "object_uri": "string",
- "started_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z"
}
]
}
]
}Metrics a reconstruction's own executor reports, surfaced as comparable columns across every finished run.
One row per reconstruction whose job finished successfully, each carrying its final
reading per KPI metric (Reconstruction.kpis) with the executor's own colour. Directions
are per metric, in listMetadata.
Pass search to filter to reconstructions whose sequence name matches.
Pass tag_ids to filter to reconstructions carrying any of the given tags.
Pass sort_by to choose the sort column -- score sorts by sequence name for now.
Authorization (requires mimic:read:reconstructions scope):
| limit | integer <int32> [ 1 .. 200 ] Default: 50 Maximum items to return. Server default: 50. Server maximum: 200. |
| cursor | string Opaque continuation token from previous response. |
| search | string |
| tag_ids | Array of strings |
| sort_by | string Default: "SEQUENCE_NAME" Enum: "SEQUENCE_NAME" "SCORE" Sortable columns for |
| order | string Default: "ASC" Enum: "ASC" "DESC" Direction for a sorted list endpoint's |
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
{- "items": [
- {
- "reconstruction_id": "b8b4f18f-1fee-4bf5-8e0c-3e50b159e778",
- "sequence_name": "string",
- "score": {
- "value": 0.1,
- "color": "string"
}, - "tag_ids": [
- "string"
], - "values": {
- "property1": {
- "value": 0.1,
- "color": "string"
}, - "property2": {
- "value": 0.1,
- "color": "string"
}
}
}
], - "page": {
- "next": "string"
}
} The comparison grid's columns: every metric key found in KpisAPI.list's rows, with the
direction the executor last reported for it, plus the score column's own. Derived from
the data -- a metric appears once some finished reconstruction reports it.
Authorization (requires mimic:read:reconstructions scope).
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
{- "score": {
- "direction": "higher_is_better"
}, - "items": [
- {
- "key": "string",
- "direction": "higher_is_better"
}
]
} One entry per metric this reconstruction reported, built from its current run's metrics
history, plus the run's final score.
Authorization (requires mimic:read:reconstructions scope).
| reconstruction_id required | string <uuid> |
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
{- "score": {
- "value": 0.1,
- "direction": "higher_is_better",
- "color": "string"
}, - "kpis": [
- {
- "key": "string",
- "direction": "higher_is_better",
- "iterations": [
- 0
], - "values": [
- 0.1
], - "colors": [
- "string"
]
}
]
} Every actor in the tenant, regardless of kind or library membership -- unlike
GET /v1/library/actors, which only returns actors already added to the library
(library_id set). Check kind/library_id on each entry.
Pass name to filter by a case-insensitive substring match on the actor's name.
Pass sequence_id to filter to actors detected in that exact sequence (kind SCENE), or
imported from it (kind SCENE, library_id set).
Default sort: created_at DESC, actor_id ASC.
Authorization (requires mimic:read:actors scope):
| limit | integer <int32> [ 1 .. 200 ] Default: 50 Maximum items to return. Server default: 50. Server maximum: 200. |
| cursor | string Opaque continuation token from previous response. |
| name | string |
| sequence_id | string <uuid> |
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
{- "items": [
- {
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "actor_id": "04f37679-bfbf-4906-b749-01756515cecf",
- "kind": "SCENE",
- "library_id": "21f784c9-c915-48d4-a805-f15b3e01b084",
- "name": "string",
- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "status": "QUEUED",
- "category_ids": [
- "string"
], - "dimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "description": "string",
- "license": "string",
- "sequence_id": "7cd84c09-94f4-486c-9c49-de3b9cf3f74f",
- "category": "string",
- "progress": {
- "percent": 0,
- "stage": "string",
- "label": "string",
- "eta": "string",
- "iter": 0
}, - "executor_version": "string",
- "result": {
- "status": "success",
- "started_at": "2019-08-24T14:15:22Z",
- "finished_at": "2019-08-24T14:15:22Z",
- "duration_seconds": 0.1,
- "error": {
- "message": "string",
- "datasets": [
- "string"
], - "errors": [
- {
- "code": "string",
- "message": "string",
- "error_ref": "string",
- "stage": "string",
- "dataset": "string",
- "detail": "string",
- "internal_description": "string"
}
]
}, - "conversion_status": "ok",
- "bundles_requested": 0,
- "bundles_converted": 0,
- "output_size_mb": 0.1,
- "bundles": [
- {
- "source": "string",
- "output_dir": "string",
- "result_json": "string",
- "status": "string",
- "detected_format": "string",
- "tool": "string",
- "tool_version": "string",
- "artifacts": [
- "string"
], - "required_present": true,
- "output_size_mb": 0.1,
- "timing_seconds": 0.1,
- "actors": [
- {
- "property1": "string",
- "property2": "string"
}
]
}
]
}, - "object_uri": "string",
- "started_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z"
}
], - "page": {
- "next": "string"
}
} Upload a vendor 3D asset (mesh, glTF/GLB, CAD file, image set, or gaussian-splat PLY)
and immediately convert it into an actor. Stores the file under the tenant's actor
library in object storage, creates the Actor record (kind EXTERNAL, library_id set
immediately), and dispatches the conversion job -- all in this one call. Returns the
actor immediately in QUEUED.
Authorization (requires mimic:write:actors scope):
Returns 409 if an actor with this name already exists in the tenant's library.
Supports Idempotency-Key header for safe retries.
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
| file required | string <binary> |
required | object (MimicResources.CreateActorRequest) Metadata for uploading a vendor 3D asset as a new actor. |
{- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "actor_id": "04f37679-bfbf-4906-b749-01756515cecf",
- "kind": "SCENE",
- "library_id": "21f784c9-c915-48d4-a805-f15b3e01b084",
- "name": "string",
- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "status": "QUEUED",
- "category_ids": [
- "string"
], - "dimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "description": "string",
- "license": "string",
- "sequence_id": "7cd84c09-94f4-486c-9c49-de3b9cf3f74f",
- "category": "string",
- "progress": {
- "percent": 0,
- "stage": "string",
- "label": "string",
- "eta": "string",
- "iter": 0
}, - "executor_version": "string",
- "result": {
- "status": "success",
- "started_at": "2019-08-24T14:15:22Z",
- "finished_at": "2019-08-24T14:15:22Z",
- "duration_seconds": 0.1,
- "error": {
- "message": "string",
- "datasets": [
- "string"
], - "errors": [
- {
- "code": "string",
- "message": "string",
- "error_ref": "string",
- "stage": "string",
- "dataset": "string",
- "detail": "string",
- "internal_description": "string"
}
]
}, - "conversion_status": "ok",
- "bundles_requested": 0,
- "bundles_converted": 0,
- "output_size_mb": 0.1,
- "bundles": [
- {
- "source": "string",
- "output_dir": "string",
- "result_json": "string",
- "status": "string",
- "detected_format": "string",
- "tool": "string",
- "tool_version": "string",
- "artifacts": [
- "string"
], - "required_present": true,
- "output_size_mb": 0.1,
- "timing_seconds": 0.1,
- "actors": [
- {
- "property1": "string",
- "property2": "string"
}
]
}
]
}, - "object_uri": "string",
- "started_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z"
} List actors already in the tenant's library (library_id set) -- see GET /v1/actors for
every actor regardless of library membership.
Default sort: created_at DESC, actor_id ASC (newest first, stable tie-breaker). Includes actors in all statuses.
Pass job_id to look up the actor created by a specific job — useful for
clients (e.g. a generic jobs list) that only know the job ID and need to poll its
progress/result.
Pass name to filter by a case-insensitive substring match on the actor's class name.
Pass executor_version to filter to actors whose job reported that exact executor
version.
Pass category_ids to keep only actors carrying every one of those categories. Each
one narrows the list further, rather than widening it, so a client can stack them.
Returns 404 if any of them is not a category of this tenant -- a filter naming something
that does not exist is a mistake worth reporting, not an empty grid to puzzle over.
Pass kind or status to filter to actors currently matching any of the given values.
Pass created_at_from and/or created_at_to to filter to actors whose created_at
falls within that inclusive range.
Pass sort_by to choose the sort column.
Authorization (requires mimic:read:actors scope):
| limit | integer <int32> [ 1 .. 200 ] Default: 50 Maximum items to return. Server default: 50. Server maximum: 200. |
| cursor | string Opaque continuation token from previous response. |
| job_id | string <uuid> |
| name | string |
| executor_version | string |
| category_ids | Array of strings Keep actors carrying every one of these categories. |
| kind | Array of strings (MimicResources.ActorKind) Items Enum: "SCENE" "EXTERNAL" |
| status | Array of strings (MimicResources.ActorStatus) Items Enum: "QUEUED" "PROCESSING" "READY" "FAILED" "CANCELLED" |
| created_at_from | string <date-time> |
| created_at_to | string <date-time> |
| sort_by | string Default: "CREATED_AT" Enum: "CREATED_AT" "NAME" "KIND" Sortable columns for |
| order | string Default: "DESC" Enum: "ASC" "DESC" Direction for a sorted list endpoint's |
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
{- "items": [
- {
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "actor_id": "04f37679-bfbf-4906-b749-01756515cecf",
- "kind": "SCENE",
- "library_id": "21f784c9-c915-48d4-a805-f15b3e01b084",
- "name": "string",
- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "status": "QUEUED",
- "category_ids": [
- "string"
], - "dimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "description": "string",
- "license": "string",
- "sequence_id": "7cd84c09-94f4-486c-9c49-de3b9cf3f74f",
- "category": "string",
- "progress": {
- "percent": 0,
- "stage": "string",
- "label": "string",
- "eta": "string",
- "iter": 0
}, - "executor_version": "string",
- "result": {
- "status": "success",
- "started_at": "2019-08-24T14:15:22Z",
- "finished_at": "2019-08-24T14:15:22Z",
- "duration_seconds": 0.1,
- "error": {
- "message": "string",
- "datasets": [
- "string"
], - "errors": [
- {
- "code": "string",
- "message": "string",
- "error_ref": "string",
- "stage": "string",
- "dataset": "string",
- "detail": "string",
- "internal_description": "string"
}
]
}, - "conversion_status": "ok",
- "bundles_requested": 0,
- "bundles_converted": 0,
- "output_size_mb": 0.1,
- "bundles": [
- {
- "source": "string",
- "output_dir": "string",
- "result_json": "string",
- "status": "string",
- "detected_format": "string",
- "tool": "string",
- "tool_version": "string",
- "artifacts": [
- "string"
], - "required_present": true,
- "output_size_mb": 0.1,
- "timing_seconds": 0.1,
- "actors": [
- {
- "property1": "string",
- "property2": "string"
}
]
}
]
}, - "object_uri": "string",
- "started_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z"
}
], - "page": {
- "next": "string"
}
} Returns the parameters accepted by create's metadata part, derived from the
CreateActorRequest schema, so a client can render a form without hardcoding field names.
Static schema only.
Authorization (requires mimic:read:actors scope).
{- "items": [
- {
- "name": "string",
- "label": "string",
- "type": "string",
- "description": "string",
- "required": true,
- "enum_values": [
- "string"
], - "default_value": null
}
]
} Returns every distinct executor_version recorded across this tenant's actor runs
(e.g. for a UI filter dropdown) -- looks through the executor_version reported on every
Actor, not just the latest.
Empty list if no run has reported a version yet, including when there are no actors at all.
Authorization (requires mimic:read:actors scope).
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
{- "items": [
- "string"
]
}Retrieve a single actor by ID.
Authorization (requires mimic:read:actors scope):
Returns 404 if not found.
| actor_id required | string <uuid> |
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
{- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "actor_id": "04f37679-bfbf-4906-b749-01756515cecf",
- "kind": "SCENE",
- "library_id": "21f784c9-c915-48d4-a805-f15b3e01b084",
- "name": "string",
- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "status": "QUEUED",
- "category_ids": [
- "string"
], - "dimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "description": "string",
- "license": "string",
- "sequence_id": "7cd84c09-94f4-486c-9c49-de3b9cf3f74f",
- "category": "string",
- "progress": {
- "percent": 0,
- "stage": "string",
- "label": "string",
- "eta": "string",
- "iter": 0
}, - "executor_version": "string",
- "result": {
- "status": "success",
- "started_at": "2019-08-24T14:15:22Z",
- "finished_at": "2019-08-24T14:15:22Z",
- "duration_seconds": 0.1,
- "error": {
- "message": "string",
- "datasets": [
- "string"
], - "errors": [
- {
- "code": "string",
- "message": "string",
- "error_ref": "string",
- "stage": "string",
- "dataset": "string",
- "detail": "string",
- "internal_description": "string"
}
]
}, - "conversion_status": "ok",
- "bundles_requested": 0,
- "bundles_converted": 0,
- "output_size_mb": 0.1,
- "bundles": [
- {
- "source": "string",
- "output_dir": "string",
- "result_json": "string",
- "status": "string",
- "detected_format": "string",
- "tool": "string",
- "tool_version": "string",
- "artifacts": [
- "string"
], - "required_present": true,
- "output_size_mb": 0.1,
- "timing_seconds": 0.1,
- "actors": [
- {
- "property1": "string",
- "property2": "string"
}
]
}
]
}, - "object_uri": "string",
- "started_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z"
}Rename an actor in the tenant's library. Oplists insert library actors by name, so oplists written against the old name stop resolving once it is renamed.
Authorization (requires mimic:write:actors scope):
Returns 404 if actor_id doesn't match an actor in the tenant's library. Returns 409 if
another actor in the tenant's library already uses the new name (case-insensitive).
| actor_id required | string <uuid> |
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
| name required | string New human-readable actor class name. Must be unique within the tenant's library. |
{- "name": "string"
}{- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "actor_id": "04f37679-bfbf-4906-b749-01756515cecf",
- "kind": "SCENE",
- "library_id": "21f784c9-c915-48d4-a805-f15b3e01b084",
- "name": "string",
- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "status": "QUEUED",
- "category_ids": [
- "string"
], - "dimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "description": "string",
- "license": "string",
- "sequence_id": "7cd84c09-94f4-486c-9c49-de3b9cf3f74f",
- "category": "string",
- "progress": {
- "percent": 0,
- "stage": "string",
- "label": "string",
- "eta": "string",
- "iter": 0
}, - "executor_version": "string",
- "result": {
- "status": "success",
- "started_at": "2019-08-24T14:15:22Z",
- "finished_at": "2019-08-24T14:15:22Z",
- "duration_seconds": 0.1,
- "error": {
- "message": "string",
- "datasets": [
- "string"
], - "errors": [
- {
- "code": "string",
- "message": "string",
- "error_ref": "string",
- "stage": "string",
- "dataset": "string",
- "detail": "string",
- "internal_description": "string"
}
]
}, - "conversion_status": "ok",
- "bundles_requested": 0,
- "bundles_converted": 0,
- "output_size_mb": 0.1,
- "bundles": [
- {
- "source": "string",
- "output_dir": "string",
- "result_json": "string",
- "status": "string",
- "detected_format": "string",
- "tool": "string",
- "tool_version": "string",
- "artifacts": [
- "string"
], - "required_present": true,
- "output_size_mb": 0.1,
- "timing_seconds": 0.1,
- "actors": [
- {
- "property1": "string",
- "property2": "string"
}
]
}
]
}, - "object_uri": "string",
- "started_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z"
}Soft-delete an Actor, matching Reconstruction's delete semantics.
If the underlying job is still QUEUED, ASSIGNED, or RUNNING, it is cancelled first (same effect as the old cancel-only behavior) before the actor is soft-deleted. Otherwise (READY, FAILED, already CANCELLED) the actor is soft-deleted directly -- unlike the old behavior, this no longer returns 409 Conflict for a terminal job. Its source and converted files are then permanently deleted.
Authorization (requires mimic:write:actors scope):
Idempotent: returns 204 even if already deleted or not found.
| actor_id required | string <uuid> |
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
{- "type": "string",
- "title": "string",
- "status": 0,
- "detail": "string",
- "instance": "string"
} List the actor bundle's files with a presigned download URL for each. Empty until the
bundle has been uploaded to object storage (i.e. before status is READY, or if upload
failed) -- poll read for status first.
Authorization (requires mimic:read:actors scope):
Returns 404 if the actor isn't found.
| actor_id required | string <uuid> |
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
{- "artifacts": [
- {
- "key": "string",
- "size": 0,
- "url": "string"
}
]
} Copy an existing kind-SCENE actor (see GET /v1/actors?sequence_id=..., not in the
library) into the tenant's actor library as a new actor, and immediately convert it. The
scene actor itself is left untouched and can be imported again under a different name.
The copy gets a fresh actor_id; dimensions, category and sequence_id carry over
from the scene actor, name/description/category_ids come from the request. Returns
the new actor immediately in QUEUED.
Authorization (requires mimic:write:actors scope):
Returns 404 if actor_id doesn't match an existing not-in-library kind-SCENE actor in
this tenant. Returns 409 if an actor with this name already exists in the tenant's library.
Supports Idempotency-Key header for safe retries.
| actor_id required | string <uuid> |
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
| name required | string Human-readable actor class name, e.g. "vehicle.porsche_911_gt2". Must be unique within the tenant's library. |
| description | string Free text description, written to actor.json. |
| category_ids | Array of strings IDs of categories (from GET /v1/library/categories) to attach at import. Must already exist in the tenant's registry. |
{- "name": "string",
- "description": "string",
- "category_ids": [
- "string"
]
}{- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "actor_id": "04f37679-bfbf-4906-b749-01756515cecf",
- "kind": "SCENE",
- "library_id": "21f784c9-c915-48d4-a805-f15b3e01b084",
- "name": "string",
- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "status": "QUEUED",
- "category_ids": [
- "string"
], - "dimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "description": "string",
- "license": "string",
- "sequence_id": "7cd84c09-94f4-486c-9c49-de3b9cf3f74f",
- "category": "string",
- "progress": {
- "percent": 0,
- "stage": "string",
- "label": "string",
- "eta": "string",
- "iter": 0
}, - "executor_version": "string",
- "result": {
- "status": "success",
- "started_at": "2019-08-24T14:15:22Z",
- "finished_at": "2019-08-24T14:15:22Z",
- "duration_seconds": 0.1,
- "error": {
- "message": "string",
- "datasets": [
- "string"
], - "errors": [
- {
- "code": "string",
- "message": "string",
- "error_ref": "string",
- "stage": "string",
- "dataset": "string",
- "detail": "string",
- "internal_description": "string"
}
]
}, - "conversion_status": "ok",
- "bundles_requested": 0,
- "bundles_converted": 0,
- "output_size_mb": 0.1,
- "bundles": [
- {
- "source": "string",
- "output_dir": "string",
- "result_json": "string",
- "status": "string",
- "detected_format": "string",
- "tool": "string",
- "tool_version": "string",
- "artifacts": [
- "string"
], - "required_present": true,
- "output_size_mb": 0.1,
- "timing_seconds": 0.1,
- "actors": [
- {
- "property1": "string",
- "property2": "string"
}
]
}
]
}, - "object_uri": "string",
- "started_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z"
} (Re-)dispatch the conversion job for each actor id given, in order -- actor_ids must be
non-empty. No args are accepted: every actor's boxtype/dimensions/category/source were
already fixed at create/import time, and a retry re-runs the conversion job against
those same stored inputs unchanged.
Each actor transitions to QUEUED, then PROCESSING when picked up by an executor, then READY or FAILED when the job completes.
Eligible starting statuses: FAILED or READY (to retry or re-run). Not eligible while a run is already in flight (QUEUED, PROCESSING) or CANCELLED.
Authorization (requires mimic:write:actors scope):
Returns 409 if any actor is not in an eligible status.
Supports Idempotency-Key header for safe retries.
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
| actor_ids required | Array of strings IDs of the actors to start. Must be non-empty. |
{- "actor_ids": [
- "string"
]
}{- "items": [
- {
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "actor_id": "04f37679-bfbf-4906-b749-01756515cecf",
- "kind": "SCENE",
- "library_id": "21f784c9-c915-48d4-a805-f15b3e01b084",
- "name": "string",
- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "status": "QUEUED",
- "category_ids": [
- "string"
], - "dimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "description": "string",
- "license": "string",
- "sequence_id": "7cd84c09-94f4-486c-9c49-de3b9cf3f74f",
- "category": "string",
- "progress": {
- "percent": 0,
- "stage": "string",
- "label": "string",
- "eta": "string",
- "iter": 0
}, - "executor_version": "string",
- "result": {
- "status": "success",
- "started_at": "2019-08-24T14:15:22Z",
- "finished_at": "2019-08-24T14:15:22Z",
- "duration_seconds": 0.1,
- "error": {
- "message": "string",
- "datasets": [
- "string"
], - "errors": [
- {
- "code": "string",
- "message": "string",
- "error_ref": "string",
- "stage": "string",
- "dataset": "string",
- "detail": "string",
- "internal_description": "string"
}
]
}, - "conversion_status": "ok",
- "bundles_requested": 0,
- "bundles_converted": 0,
- "output_size_mb": 0.1,
- "bundles": [
- {
- "source": "string",
- "output_dir": "string",
- "result_json": "string",
- "status": "string",
- "detected_format": "string",
- "tool": "string",
- "tool_version": "string",
- "artifacts": [
- "string"
], - "required_present": true,
- "output_size_mb": 0.1,
- "timing_seconds": 0.1,
- "actors": [
- {
- "property1": "string",
- "property2": "string"
}
]
}
]
}, - "object_uri": "string",
- "started_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z"
}
]
} The calling user's GPU allocation in this tenant. Poll after gpu:allocate until READY
(or FAILED). Always 200: a user with no session gets status UNALLOCATED.
Authorization (requires mimic:read:editor scope).
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
{- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "status": "UNALLOCATED",
- "created_at": "2019-08-24T14:15:22Z",
- "started_at": "2019-08-24T14:15:22Z",
- "error": {
- "code": "EXECUTOR_CLASS_NOT_PROVISIONED",
- "message": "string"
}
}Request a GPU for the calling user and start their augmentation session. Each user in a tenant holds their own session.
Asynchronous: returns as soon as the session is queued. Poll GET /v1/editor/gpu until
READY. A missing executor shows up there as FAILED, not as an error here.
Idempotent -- if the user already has a session that is not UNALLOCATED or FAILED, that session is returned rather than starting a second one.
Authorization (requires mimic:write:editor scope).
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
{- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "status": "UNALLOCATED",
- "created_at": "2019-08-24T14:15:22Z",
- "started_at": "2019-08-24T14:15:22Z",
- "error": {
- "code": "EXECUTOR_CLASS_NOT_PROVISIONED",
- "message": "string"
}
}Hand the GPU back, ending the calling user's augmentation session.
Idempotent -- releasing what was never held succeeds.
Authorization (requires mimic:write:editor scope).
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
{- "type": "string",
- "title": "string",
- "status": 0,
- "detail": "string",
- "instance": "string"
}List sequences whose reconstruction finished.
search matches the sequence name, case-insensitively. name matches it exactly, for a
link that means one sequence. sequence_ids narrows to the sequences named, for a link
that means particular ones whatever they are called.
Authorization (requires mimic:read:editor scope):
| limit | integer <int32> [ 1 .. 200 ] Default: 50 Maximum items to return. Server default: 50. Server maximum: 200. |
| cursor | string Opaque continuation token from previous response. |
| search | string Case-insensitive match on the sequence name. |
| name | string Exact sequence name, for a link that means one sequence. |
| sequence_ids | Array of strings Keep only the sequences with these ids. |
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
{- "items": [
- {
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "sequence_id": "7cd84c09-94f4-486c-9c49-de3b9cf3f74f",
- "reconstruction_id": "b8b4f18f-1fee-4bf5-8e0c-3e50b159e778",
- "name": "string",
- "frame_count": 0,
- "scene_actors": [
- {
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "actor_id": "04f37679-bfbf-4906-b749-01756515cecf",
- "kind": "SCENE",
- "library_id": "21f784c9-c915-48d4-a805-f15b3e01b084",
- "name": "string",
- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "status": "QUEUED",
- "category_ids": [
- "string"
], - "dimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "description": "string",
- "license": "string",
- "sequence_id": "7cd84c09-94f4-486c-9c49-de3b9cf3f74f",
- "category": "string",
- "progress": {
- "percent": 0,
- "stage": "string",
- "label": "string",
- "eta": "string",
- "iter": 0
}, - "executor_version": "string",
- "result": {
- "status": "success",
- "started_at": "2019-08-24T14:15:22Z",
- "finished_at": "2019-08-24T14:15:22Z",
- "duration_seconds": 0.1,
- "error": {
- "message": "string",
- "datasets": [
- "string"
], - "errors": [
- {
- "code": "string",
- "message": "string",
- "error_ref": "string",
- "stage": "string",
- "dataset": "string",
- "detail": "string",
- "internal_description": "string"
}
]
}, - "conversion_status": "ok",
- "bundles_requested": 0,
- "bundles_converted": 0,
- "output_size_mb": 0.1,
- "bundles": [
- {
- "source": "string",
- "output_dir": "string",
- "result_json": "string",
- "status": "string",
- "detected_format": "string",
- "tool": "string",
- "tool_version": "string",
- "artifacts": [
- "string"
], - "required_present": true,
- "output_size_mb": 0.1,
- "timing_seconds": 0.1,
- "actors": [
- {
- "property1": null,
- "property2": null
}
]
}
]
}, - "object_uri": "string",
- "started_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z"
}
], - "cameras": [
- {
- "index": 0,
- "name": "string"
}
], - "lidars": [
- {
- "index": 0,
- "name": "string"
}
], - "radars": [
- {
- "index": 0,
- "name": "string"
}
], - "export_parameters": {
- "fix_visual_artifacts": true,
- "adapt_actors_style": true
}
}
], - "page": {
- "next": "string"
}
} Returns the parameters accepted by setExportParameters's body, derived from the
ExportParameters schema, so a client can render a form without hardcoding field names.
Static schema only.
Authorization (requires mimic:read:editor scope).
{- "items": [
- {
- "name": "string",
- "label": "string",
- "type": "string",
- "description": "string",
- "required": true,
- "enum_values": [
- "string"
], - "default_value": null
}
]
}Rename a sequence. Nothing else about it changes.
Authorization (requires mimic:write:editor scope).
| sequence_id required | string <uuid> The sequence to rename. |
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
| name required | string <= 255 characters The new name. Not required to be unique -- capped at what a filesystem takes for one name: a sequence is named on screen and written to disk under that name. |
{- "name": "string"
}{- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "sequence_id": "7cd84c09-94f4-486c-9c49-de3b9cf3f74f",
- "reconstruction_id": "b8b4f18f-1fee-4bf5-8e0c-3e50b159e778",
- "name": "string",
- "frame_count": 0,
- "scene_actors": [
- {
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "actor_id": "04f37679-bfbf-4906-b749-01756515cecf",
- "kind": "SCENE",
- "library_id": "21f784c9-c915-48d4-a805-f15b3e01b084",
- "name": "string",
- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "status": "QUEUED",
- "category_ids": [
- "string"
], - "dimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "description": "string",
- "license": "string",
- "sequence_id": "7cd84c09-94f4-486c-9c49-de3b9cf3f74f",
- "category": "string",
- "progress": {
- "percent": 0,
- "stage": "string",
- "label": "string",
- "eta": "string",
- "iter": 0
}, - "executor_version": "string",
- "result": {
- "status": "success",
- "started_at": "2019-08-24T14:15:22Z",
- "finished_at": "2019-08-24T14:15:22Z",
- "duration_seconds": 0.1,
- "error": {
- "message": "string",
- "datasets": [
- "string"
], - "errors": [
- {
- "code": "string",
- "message": "string",
- "error_ref": "string",
- "stage": "string",
- "dataset": "string",
- "detail": "string",
- "internal_description": "string"
}
]
}, - "conversion_status": "ok",
- "bundles_requested": 0,
- "bundles_converted": 0,
- "output_size_mb": 0.1,
- "bundles": [
- {
- "source": "string",
- "output_dir": "string",
- "result_json": "string",
- "status": "string",
- "detected_format": "string",
- "tool": "string",
- "tool_version": "string",
- "artifacts": [
- "string"
], - "required_present": true,
- "output_size_mb": 0.1,
- "timing_seconds": 0.1,
- "actors": [
- {
- "property1": "string",
- "property2": "string"
}
]
}
]
}, - "object_uri": "string",
- "started_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z"
}
], - "cameras": [
- {
- "index": 0,
- "name": "string"
}
], - "lidars": [
- {
- "index": 0,
- "name": "string"
}
], - "radars": [
- {
- "index": 0,
- "name": "string"
}
], - "export_parameters": {
- "fix_visual_artifacts": true,
- "adapt_actors_style": true
}
} Select one variant of the package loadOplist put on the calling user's held augmentation
container -- or, with variant_name omitted, the base scene -- so later getFrame calls
render from it. Sends no oplists: every variant was already loaded.
A PUT: it replaces the current selection, and selecting the same variant twice leaves the same state.
Blocks (bounded) until the container reports the result. Returns 400 if no GPU is held, or with the container's message if it rejects the selection (e.g. a variant name not in the loaded package -- not checked here).
Authorization (requires mimic:write:editor scope).
| sequence_id required | string <uuid> The baseline sequence to load or to apply its variant off of. |
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
| variant_name | string Which variant (or base reconstruction) is currently selected to apply |
{- "variant_name": "string"
}{- "errors": [
- {
- "detail": "string",
- "pointer": "string"
}
], - "type": "string",
- "title": "string",
- "status": 0,
- "detail": "string",
- "instance": "string"
}Set a sequence's export parameters: what everything exported from it is rendered with.
A replacement rather than a patch. Both values are always given, so there is no state where one is set and the other is unknown, and no order in which two of them have to be applied. Sending the same parameters twice is the same as sending them once.
Authorization (requires mimic:write:editor scope).
| sequence_id required | string <uuid> The sequence to set them on. |
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
| fix_visual_artifacts required | boolean Whether visual-artifact correction is applied. Off until turned on. |
| adapt_actors_style required | boolean Whether actor-style adaptation is applied. Off until turned on. |
{- "fix_visual_artifacts": true,
- "adapt_actors_style": true
}{- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "sequence_id": "7cd84c09-94f4-486c-9c49-de3b9cf3f74f",
- "reconstruction_id": "b8b4f18f-1fee-4bf5-8e0c-3e50b159e778",
- "name": "string",
- "frame_count": 0,
- "scene_actors": [
- {
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "actor_id": "04f37679-bfbf-4906-b749-01756515cecf",
- "kind": "SCENE",
- "library_id": "21f784c9-c915-48d4-a805-f15b3e01b084",
- "name": "string",
- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "status": "QUEUED",
- "category_ids": [
- "string"
], - "dimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "description": "string",
- "license": "string",
- "sequence_id": "7cd84c09-94f4-486c-9c49-de3b9cf3f74f",
- "category": "string",
- "progress": {
- "percent": 0,
- "stage": "string",
- "label": "string",
- "eta": "string",
- "iter": 0
}, - "executor_version": "string",
- "result": {
- "status": "success",
- "started_at": "2019-08-24T14:15:22Z",
- "finished_at": "2019-08-24T14:15:22Z",
- "duration_seconds": 0.1,
- "error": {
- "message": "string",
- "datasets": [
- "string"
], - "errors": [
- {
- "code": "string",
- "message": "string",
- "error_ref": "string",
- "stage": "string",
- "dataset": "string",
- "detail": "string",
- "internal_description": "string"
}
]
}, - "conversion_status": "ok",
- "bundles_requested": 0,
- "bundles_converted": 0,
- "output_size_mb": 0.1,
- "bundles": [
- {
- "source": "string",
- "output_dir": "string",
- "result_json": "string",
- "status": "string",
- "detected_format": "string",
- "tool": "string",
- "tool_version": "string",
- "artifacts": [
- "string"
], - "required_present": true,
- "output_size_mb": 0.1,
- "timing_seconds": 0.1,
- "actors": [
- {
- "property1": "string",
- "property2": "string"
}
]
}
]
}, - "object_uri": "string",
- "started_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z"
}
], - "cameras": [
- {
- "index": 0,
- "name": "string"
}
], - "lidars": [
- {
- "index": 0,
- "name": "string"
}
], - "radars": [
- {
- "index": 0,
- "name": "string"
}
], - "export_parameters": {
- "fix_visual_artifacts": true,
- "adapt_actors_style": true
}
} One or more frames of the sequence currently loaded on the calling user's held
augmentation session, drawn with the overlays given. Requires the calling user's GPU to be
READY (see GET /v1/editor/gpu) -- returns 400 if none is held.
A POST because the overlays decide what is rendered: the same frame asked for with the lidar off is a different frame, not a filtered one.
Blocks until the augmentation container renders every requested frame (a bounded wait -- returns an error if that takes too long, rather than hanging indefinitely). Returns 400 with the container's message if it reports the render failed. Returns 409 if another frames request for the calling user's session is already in flight -- only one may run at a time per user (other users in the tenant hold their own sessions and are unaffected).
Authorization (requires mimic:read:editor scope).
| sequence_id required | string <uuid> The sequence the frames belong to. |
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
| frames required | Array of integers <int32> [ items <int32 > ] Indexes of the frames within the recording. Must be non-empty. |
| camera_indices | Array of integers <int32> [ items <int32 > ] Camera indices to render. Omitted returns every camera configured in the augmentation job; an explicit empty list returns none. |
| include_gt required | boolean Whether to include the original validated sequence's images in the resulting glb files. note, this is used mainly for comparing side by side images in cameras. |
| include_3d | boolean Tells the executor whether to include and embed radar and lidar data in the resulting frames. Used by the frontend to mask on/off the 3d view panel. Defaults to true if omitted |
required | object What the frames are to be drawn with. |
{- "frames": [
- 0
], - "camera_indices": [
- 0
], - "include_gt": true,
- "include_3d": true,
- "overlays": {
- "boxes": true,
- "lidar": [
- 0
], - "lidar_coloring": "intensity",
- "radar": [
- 0
], - "radar_coloring": "distance"
}
}{- "files": {
- "property1": "string",
- "property2": "string"
}
} Load this sequence's reconstructed scene (training output and validated data) onto the
augmentation container the calling user currently holds a GPU on. Loads no variants --
see loadOplist -- e.g. to render the base scene on editor launch.
A POST rather than a PUT: a command to the container, not a replacement of a stored representation, and an expensive one (heavy object-storage reads) that a retry repeats.
Replaces whatever scene was previously loaded, and with it any loaded variants. Blocks (bounded) until the container reports the load's result. Returns 400 if no GPU is held, or with the container's message if it reports the load failed.
Authorization (requires mimic:write:editor scope).
| sequence_id required | string <uuid> The sequence to load. |
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
{- "errors": [
- {
- "detail": "string",
- "pointer": "string"
}
], - "type": "string",
- "title": "string",
- "status": 0,
- "detail": "string",
- "instance": "string"
} Load a variant package onto the scene load put on the calling user's held augmentation
container. Every variant is loaded at once; apply then picks one without resending them.
Requires load to have been called first.
A PUT: the package wholesale replaces whatever package was loaded before, and sending the
same one twice leaves the same state. Omitting oplists (or null) clears it, back to
the base scene alone.
Blocks (bounded) until the container reports the load's result. Returns 400 if no GPU is held, if an external actor the package references is not READY in the library, or with the container's message if it reports the load failed.
Authorization (requires mimic:write:editor scope).
| sequence_id required | string <uuid> The sequence to load. |
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
object or null The entire oplist package to build on this sequence's scene. Omitted or null loads nothing. |
{- "oplists": {
- "document_schema_version": 0,
- "op_list_schema_version": 0,
- "sequence_id": "string",
- "complete": true,
- "variants": [
- {
- "name": "string",
- "op_list_hash": "string",
- "operation_count": 0,
- "assets": [
- {
- "id": "string"
}
], - "ops": [
- {
- "op": "string",
- "params": null,
- "src": 0,
- "var": "string",
- "actor": {
- "var": "string",
- "scene_actor_id": 0
}, - "sensor": {
- "kind": "string",
- "name": "string"
}
}
], - "actors": [
- {
- "color": "string",
- "id": "string",
- "status": "string"
}
]
}
]
}
}{- "errors": [
- {
- "detail": "string",
- "pointer": "string"
}
], - "type": "string",
- "title": "string",
- "status": 0,
- "detail": "string",
- "instance": "string"
}Record the editor's selected variants as exports, ready to be started.
This creates rows only: no job is submitted and no tokens are held, so sending is free and the user decides later what to run. Every variant lands READY_TO_EXPORT.
The reconstruction must be READY -- a variant cannot be exported from a sequence that has not finished training.
Authorization (requires mimic:write:exports scope):
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
| reconstruction_id required | string <uuid> The reconstruction the variants were produced from. Must be READY. |
required | Array of objects (MimicResources.SendExportVariant) Variants to send. Must be non-empty. |
{- "reconstruction_id": "b8b4f18f-1fee-4bf5-8e0c-3e50b159e778",
- "variants": [
- {
- "script_name": "string",
- "frames": {
- "first": 0,
- "last": 0
}, - "oplist": {
- "name": "string",
- "op_list_hash": "string",
- "operation_count": 0,
- "assets": [
- {
- "id": "string"
}
], - "ops": [
- {
- "op": "string",
- "params": null,
- "src": 0,
- "var": "string",
- "actor": {
- "var": "string",
- "scene_actor_id": 0
}, - "sensor": {
- "kind": "string",
- "name": "string"
}
}
], - "actors": [
- {
- "color": "string",
- "id": "string",
- "status": "string"
}
]
}, - "fix_visual_artifacts": true,
- "adapt_actors_style": true
}
]
}{- "items": [
- {
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "export_id": "a9a55f8d-48b1-4a5b-a88e-c41b0cd75102",
- "reconstruction_id": "b8b4f18f-1fee-4bf5-8e0c-3e50b159e778",
- "sequence_name": "string",
- "script_name": "string",
- "variant_name": "string",
- "frames": {
- "first": 0,
- "last": 0
}, - "status": "READY_TO_EXPORT",
- "progress": 0,
- "tag_ids": [
- "string"
], - "started_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z",
- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "error_message": "string",
- "fix_visual_artifacts": true,
- "adapt_actors_style": true
}
]
}List the tenant's export variants, newest run first by default.
Pass sort_by to choose the sort column, and the filters to narrow the
list. A variant with no job yet is READY_TO_EXPORT and sorts with no
started_at.
Authorization (requires mimic:read:exports scope):
| limit | integer <int32> [ 1 .. 200 ] Default: 50 Maximum items to return. Server default: 50. Server maximum: 200. |
| cursor | string Opaque continuation token from previous response. |
| search | string |
| status | string (MimicResources.ExportStatus) Enum: "READY_TO_EXPORT" "IN_QUEUE" "IN_PROGRESS" "COMPLETED" "FAILED" State of a variant's export. |
| tag_ids | Array of strings |
| started_after | string <date-time> |
| started_before | string <date-time> |
| sort_by | string Default: "STARTED_AT" Enum: "SEQUENCE_NAME" "SCRIPT_NAME" "VARIANT_NAME" "STATUS" "PROGRESS" "STARTED_AT" "COMPLETED_AT" Sortable columns for |
| order | string Default: "DESC" Enum: "ASC" "DESC" Direction for a sorted list endpoint's |
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
{- "items": [
- {
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "export_id": "a9a55f8d-48b1-4a5b-a88e-c41b0cd75102",
- "reconstruction_id": "b8b4f18f-1fee-4bf5-8e0c-3e50b159e778",
- "sequence_name": "string",
- "script_name": "string",
- "variant_name": "string",
- "frames": {
- "first": 0,
- "last": 0
}, - "status": "READY_TO_EXPORT",
- "progress": 0,
- "tag_ids": [
- "string"
], - "started_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z",
- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "error_message": "string",
- "fix_visual_artifacts": true,
- "adapt_actors_style": true
}
], - "page": {
- "next": "string"
}
}Start an export run for each of the given variants.
Every id is checked before any run starts: if one is not READY_TO_EXPORT the whole request is refused and nothing is started, so a batch never half-runs. Tokens are held per variant and released if any later one fails.
Authorization (requires mimic:write:exports scope):
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
| export_ids required | Array of strings Variants to export. Each must be READY_TO_EXPORT. Must be non-empty. |
{- "export_ids": [
- "string"
]
}{- "items": [
- {
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "export_id": "a9a55f8d-48b1-4a5b-a88e-c41b0cd75102",
- "reconstruction_id": "b8b4f18f-1fee-4bf5-8e0c-3e50b159e778",
- "sequence_name": "string",
- "script_name": "string",
- "variant_name": "string",
- "frames": {
- "first": 0,
- "last": 0
}, - "status": "READY_TO_EXPORT",
- "progress": 0,
- "tag_ids": [
- "string"
], - "started_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z",
- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "error_message": "string",
- "fix_visual_artifacts": true,
- "adapt_actors_style": true
}
]
}The storage location this tenant's exports are written to.
Read-only, and specific to the calling tenant: the instance configures the bucket, the tenant's own prefix gives the rest. The grid shows it so the user does not have to go looking for it.
Authorization (requires mimic:read:exports scope):
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
{- "path": "string"
}Attach every listed tag to every listed export, so that a multi-row selection produces one request instead of one per pair.
Authorization (requires mimic:write:tags scope).
Idempotent: pairs that are already attached are left alone. Returns 404 if any tag or export does not exist.
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
| tag_ids required | Array of strings The tags to apply. Must be non-empty. |
| export_ids required | Array of strings The exports to apply them to. Must be non-empty. |
{- "tag_ids": [
- "string"
], - "export_ids": [
- "string"
]
}{- "errors": [
- {
- "detail": "string",
- "pointer": "string"
}
], - "type": "string",
- "title": "string",
- "status": 0,
- "detail": "string",
- "instance": "string"
}Detach every listed tag from every listed export.
Authorization (requires mimic:write:tags scope).
Idempotent: pairs that are not attached are left alone. Returns 404 if any tag or export does not exist.
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
| tag_ids required | Array of strings The tags to apply. Must be non-empty. |
| export_ids required | Array of strings The exports to apply them to. Must be non-empty. |
{- "tag_ids": [
- "string"
], - "export_ids": [
- "string"
]
}{- "errors": [
- {
- "detail": "string",
- "pointer": "string"
}
], - "type": "string",
- "title": "string",
- "status": 0,
- "detail": "string",
- "instance": "string"
}Retrieve a single export variant by ID.
Authorization (requires mimic:read:exports scope):
Returns 404 if not found or soft-deleted.
| export_id required | string <uuid> |
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
{- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "export_id": "a9a55f8d-48b1-4a5b-a88e-c41b0cd75102",
- "reconstruction_id": "b8b4f18f-1fee-4bf5-8e0c-3e50b159e778",
- "sequence_name": "string",
- "script_name": "string",
- "variant_name": "string",
- "frames": {
- "first": 0,
- "last": 0
}, - "status": "READY_TO_EXPORT",
- "progress": 0,
- "tag_ids": [
- "string"
], - "started_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z",
- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "error_message": "string",
- "fix_visual_artifacts": true,
- "adapt_actors_style": true
}Soft-delete an export variant.
An in-flight run is cancelled, then the files it wrote are permanently deleted.
Authorization (requires mimic:write:exports scope):
| export_id required | string <uuid> |
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
{- "errors": [
- {
- "detail": "string",
- "pointer": "string"
}
], - "type": "string",
- "title": "string",
- "status": 0,
- "detail": "string",
- "instance": "string"
}The files this export's run wrote, each with a presigned download URL, for the client to save wherever the user chose.
Empty until the run has uploaded anything, which in practice means until it is COMPLETED. The URLs are short-lived: list again rather than keeping them, and expect a long download to need a fresh listing partway.
Authorization (requires mimic:read:exports scope):
Returns 404 if not found or soft-deleted.
| export_id required | string <uuid> |
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
{- "files": [
- {
- "key": "string",
- "size": 0,
- "url": "string"
}
]
}Start a new run for each of the given variants, which must all be FAILED.
Checked and reserved as a batch, exactly like start: one id that is not
FAILED refuses the whole request, so a stale grid cannot restart a run
that is already going.
The run writes to the same location as the one that failed, so whatever the failed run managed to upload stays where the client already expects to find it. The executor has no frame-level resume, so the new run re-renders the variant's whole frame range and progress starts again at zero.
Authorization (requires mimic:write:exports scope):
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
| export_ids required | Array of strings Variants to resume. Each must be FAILED. Must be non-empty. |
{- "export_ids": [
- "string"
]
}{- "items": [
- {
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "export_id": "a9a55f8d-48b1-4a5b-a88e-c41b0cd75102",
- "reconstruction_id": "b8b4f18f-1fee-4bf5-8e0c-3e50b159e778",
- "sequence_name": "string",
- "script_name": "string",
- "variant_name": "string",
- "frames": {
- "first": 0,
- "last": 0
}, - "status": "READY_TO_EXPORT",
- "progress": 0,
- "tag_ids": [
- "string"
], - "started_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z",
- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "error_message": "string",
- "fix_visual_artifacts": true,
- "adapt_actors_style": true
}
]
}List the tenant's actor-category registry.
One registry per tenant: the same categories are available to every actor in the library, so there is nothing to scope this call by.
Authorization (requires mimic:read:categories scope).
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
{- "items": [
- {
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "category_id": "8de4c9fd-61a4-4c0b-bf88-0ed3a0fe3fa2",
- "name": "string"
}
]
}Add a category to the tenant's registry.
Authorization (requires mimic:write:categories scope).
Returns 409 if a category with the same name (case-insensitive) already exists.
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
| name required | string Display name for the new category. |
{- "name": "string"
}{- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "category_id": "8de4c9fd-61a4-4c0b-bf88-0ed3a0fe3fa2",
- "name": "string"
}Rename a category. The new name applies everywhere the category is attached.
Authorization (requires mimic:write:categories scope).
Returns 409 if another category already uses the new name.
| category_id required | string <uuid> |
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
| name required | string New display name. |
{- "name": "string"
}{- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "category_id": "8de4c9fd-61a4-4c0b-bf88-0ed3a0fe3fa2",
- "name": "string"
}Remove a category from the registry.
Authorization (requires mimic:write:categories scope).
Returns 409 if the category is still assigned to an actor. Detaching is an explicit act, so a delete never silently strips the category off rows the caller cannot see.
Idempotent otherwise: returns 204 even if the category does not exist.
| category_id required | string <uuid> |
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
{- "type": "string",
- "title": "string",
- "status": 0,
- "detail": "string",
- "instance": "string"
}Attach every listed category to every listed actor, so that a multi-row selection produces one request instead of one per pair.
Authorization (requires mimic:write:categories scope).
Idempotent: pairs that are already attached are left alone. Returns 404 if any category or actor does not exist.
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
| category_ids required | Array of strings The categories to apply. Must be non-empty. |
| actor_ids required | Array of strings The actors to apply them to. Must be non-empty. |
{- "category_ids": [
- "string"
], - "actor_ids": [
- "string"
]
}{- "errors": [
- {
- "detail": "string",
- "pointer": "string"
}
], - "type": "string",
- "title": "string",
- "status": 0,
- "detail": "string",
- "instance": "string"
}Detach every listed category from every listed actor.
Authorization (requires mimic:write:categories scope).
Idempotent: pairs that are not attached are left alone. Returns 404 if any category or actor does not exist.
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
| category_ids required | Array of strings The categories to apply. Must be non-empty. |
| actor_ids required | Array of strings The actors to apply them to. Must be non-empty. |
{- "category_ids": [
- "string"
], - "actor_ids": [
- "string"
]
}{- "errors": [
- {
- "detail": "string",
- "pointer": "string"
}
], - "type": "string",
- "title": "string",
- "status": 0,
- "detail": "string",
- "instance": "string"
}List the tenant's tag registry.
One registry per tenant: the same tags are available to every validation and reconstruction, so there is nothing to scope this call by.
Authorization (requires mimic:read:tags scope).
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
{- "tags": [
- {
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "tag_id": "39c8a0b3-fbe8-4801-95bf-e8a0792edf1d",
- "name": "string"
}
]
}Add a tag to the tenant's registry.
Authorization (requires mimic:write:tags scope).
Returns 409 if a tag with the same name (case-insensitive) already exists.
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
| name required | string Display name for the new tag. |
{- "name": "string"
}{- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "tag_id": "39c8a0b3-fbe8-4801-95bf-e8a0792edf1d",
- "name": "string"
}Rename a tag. The new name applies everywhere the tag is attached.
Authorization (requires mimic:write:tags scope).
Returns 409 if another tag already uses the new name.
| tag_id required | string <uuid> |
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
| name required | string New display name. |
{- "name": "string"
}{- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "tag_id": "39c8a0b3-fbe8-4801-95bf-e8a0792edf1d",
- "name": "string"
}Remove a tag from the registry.
Authorization (requires mimic:write:tags scope).
Returns 409 if the tag is still assigned to a validation or reconstruction. Detaching is an explicit act, so a delete never silently strips the tag off rows the caller cannot see.
Idempotent otherwise: returns 204 even if the tag does not exist.
| tag_id required | string <uuid> |
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
{- "type": "string",
- "title": "string",
- "status": 0,
- "detail": "string",
- "instance": "string"
}List jobs for the authenticated tenant.
Authorization (requires mimic:read:jobs scope):
Returns jobs ordered by created_at DESC (newest first), with stable tie-breaking by id ASC. Jobs in all statuses are included (QUEUED, RUNNING, SUCCEEDED, FAILED, CANCELLED, etc.).
Use the cursor parameter to paginate through results. The page.next
field in the response contains an opaque cursor for the next page.
| limit | integer <int32> [ 1 .. 200 ] Default: 50 Maximum items to return. Server default: 50. Server maximum: 200. |
| cursor | string Opaque continuation token from previous response. |
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
{- "items": [
- {
- "status": "QUEUED",
- "value": {
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "job_type": "IMPORT"
}
}
], - "page": {
- "next": "string"
}
}Retrieve a single job by ID.
Authorization (requires mimic:read:jobs scope):
Returns 404 if job not found or not in target tenant.
| job_id required | string <uuid> |
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
{- "status": "QUEUED",
- "value": {
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "job_type": "IMPORT"
}
}Retrieve every stdout/stderr line recorded for this job so far, oldest first, in a single response.
Authorization (requires mimic:read:jobs scope):
Returns 404 if job not found or not in target tenant.
| job_id required | string <uuid> |
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
{- "items": [
- {
- "stream": "stdout",
- "data": "string",
- "recorded_at": "2019-08-24T14:15:22Z"
}
]
}Retrieve every metrics frame recorded for this job so far, oldest first, in a single response. Generalizes across any job kind that reports metrics -- currently only RECONSTRUCT.
Returns 400 if this job's type never reports metrics. Returns an empty list (not 404) if the job's type supports metrics but none have arrived yet.
Authorization (requires mimic:read:jobs scope):
Returns 404 if job not found or not in target tenant.
| job_id required | string <uuid> |
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
{- "metrics": [
- {
- "metrics": {
- "job_type": "RECONSTRUCT",
- "value": {
- "global_kpi": 0.1,
- "colors": {
- "property1": "string",
- "property2": "string"
}, - "metric_directions": {
- "property1": "higher_is_better",
- "property2": "higher_is_better"
}, - "image": {
- "property1": 0.1,
- "property2": 0.1
}, - "lidar": {
- "property1": 0.1,
- "property2": 0.1
}, - "radar": {
- "property1": 0.1,
- "property2": 0.1
}
}
}, - "iteration": 0,
- "recorded_at": "2019-08-24T14:15:22Z"
}
]
}Cancels a job if it is in a cancellable state (QUEUED, ASSIGNED, RUNNING).
Authorization (requires mimic:write:jobs scope):
Admin Users: Can cancel jobs in their tenant. X-Tenant-ID header ignored.
Operations Users: Can cancel jobs in any tenant. X-Tenant-ID header required.
QUEUED: Cancelled immediately, no executor involved
ASSIGNED: Cancelled immediately, cancel message sent to executor
RUNNING: Transitioned to CANCELLING, cancel message sent to executor
Terminal states (SUCCEEDED, FAILED, CANCELLED): Returns 409 Conflict
CANCELLING: Returns 409 Conflict
soft_timeout: Maximum time to wait for graceful process termination before force-kill. Optional, defaults to 10s, maximum 5m.
| X-Tenant-ID | string Auth0 Organization ID of the target tenant (e.g., 'org_abc123'). Required for Operations Users. |
| job_id required | string <uuid> Job ID to cancel |
| soft_timeout | string Timeout for graceful termination (default: 10s, max: 5m). Format: duration string (e.g., '30s', '1m') |
{- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "soft_timeout": "string"
}{- "status": "QUEUED",
- "value": {
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "job_type": "IMPORT"
}
}Service-to-service endpoints executor-daemon instances use to self-register and deregister. See ADR-0016.
Mint a fresh executor identity and return the NATS .creds the daemon uses to connect.
Server-generated identity: the public_id in the response is generated by mimic-api on
every call. A daemon that wants a stable identity must persist the returned public_id
and pass it to DELETE /v1/executors/{public_id} at shutdown.
Side effects: creates the executor row (in offline status until the daemon publishes
its first heartbeat), creates the three per-executor JetStream consumers in
mimic-control, and mints a .creds NATS user JWT + NKey. All committed atomically —
on any error the caller can safely retry with a new request (each retry produces a
fresh identity).
Authentication: Auth0 M2M client_credentials token with the mimic:register:executors
scope. Not tenant-scoped — the caller identifies the target tenant via tenant_slug
in the body, matching the CLI mint semantics.
Returns 400 if name is empty or tenant_slug refers to an unknown tenant.
Returns 409 if an executor with the given name already exists in the target scope
(within the same tenant for single-tenant registrations, globally for multi-tenant).
| name required | string Human-readable name for the executor, surfaced in observability and mimic-api logs. Not required to be unique; the server-generated public_id is the identity. |
| tenant_slug | string Optional tenant slug for single-tenant executors. Omit for multi-tenant. Behaves the same way as the |
| executor_class | string Optional executor class declaring which pool this executor belongs to (ADR-0020). Slug format ( |
{- "name": "string",
- "tenant_slug": "string",
- "executor_class": "string"
}{- "public_id": "eb3ce6c7-ce7e-4638-a072-e5054706f601",
- "nats_creds": "string"
} Read the current status of an executor by public_id.
Intended consumer: operator tooling that polls after a POST to confirm the
daemon came online. The Ansible verify role described in ADR-0022 uses this
endpoint as its mimic-api round-trip exit criterion — "playbook done" means
"mimic-api reports the just-provisioned executor as ready."
Authentication: same mimic:register:executors M2M scope as register/deregister —
the daemon that mints and reaps an identity is the same principal that reads
its status.
Returns 404 if no executor with that public_id exists. Returns 200 for any
status including deregistered; the status field tells the caller what state
the executor is in. Does not reveal .creds material.
| public_id required | string <uuid> |
{- "public_id": "eb3ce6c7-ce7e-4638-a072-e5054706f601",
- "name": "string",
- "executor_class": "string",
- "status": "ready",
- "last_heartbeat_at": "2019-08-24T14:15:22Z",
- "tenant_slug": "string"
} Mark an executor as deregistered — a terminal status distinct from offline.
offline means "temporarily unreachable, may come back with the same identity."
deregistered means "the daemon has voluntarily gone away for good; do not assign
jobs, do not resurrect on reconciliation." Job-assignment queries filter on
status = 'ready', so a deregistered executor stops receiving assignments
immediately. Existing assignments in flight when this is called are not cancelled
here — the caller (daemon shutdown) is expected to drain them first via its own
graceful-shutdown path.
Soft-delete: the DB row, JetStream consumers, and .creds secret are all left in
place for post-mortem. A future GC pass may hard-delete deregistered executors
older than some retention window.
Authentication: same as register.
Idempotent: returns 204 whether the executor exists, is already deregistered, or was never registered. A daemon shutting down does not need to know whether it successfully registered in the first place.
| public_id required | string <uuid> |
{- "type": "string",
- "title": "string",
- "status": 0,
- "detail": "string",
- "instance": "string"
}