API reference / Admin
5 operations.
/api/v1/admin/importsStatus, progress, result and errors of each job, and the provider syncs that can run.
collector.listAdminImports()admin:ops:read(API keys are coming soon)If-None-MatchX-Request-Id| Name | In | Type | About |
|---|---|---|---|
statusoptional | query | enum | Which items (default all).One of all, active, failed, succeededdefault "all" |
syncsarray of objectrequiredid"new_releases" or "releases" or "refresh"requiredOption 1: "new_releases"
Option 2: "releases"
Option 3: "refresh"
labelstringrequireddescriptionstringrequiredavailablebooleanrequiredreasonstring or nullrequiredcurl 'https://collection.id/api/v1/admin/imports' \
-H "Authorization: Bearer $COLLECTOR_TOKEN"await collector.listAdminImports({ query: { … } });/api/v1/admin/imports/conflictsProvider series left out because another series of that provider holds their identity.
collector.listAdminImportConflicts()admin:ops:read(API keys are coming soon)If-None-MatchX-Request-Id| Name | In | Type | About |
|---|---|---|---|
statusoptional | query | enum | Which items (default open).One of open, resolveddefault "open" |
countsobjectrequiredopennumberrequiredresolvednumberrequiredcurl 'https://collection.id/api/v1/admin/imports/conflicts' \
-H "Authorization: Bearer $COLLECTOR_TOKEN"await collector.listAdminImportConflicts({ query: { … } });/api/v1/admin/imports/conflicts/{id}Both series side by side, their issues aligned by number, and what each resolution would do.
collector.getAdminImportConflict()admin:ops:read(API keys are coming soon)If-None-MatchX-Request-Id| Name | In | Type | About |
|---|---|---|---|
idrequired | path | string (uuid) |
idstringrequiredproviderstringrequiredexternalIdstringrequiredreasonstring or nullrequiredexistingany or nullrequiredissuesTotalnumberrequiredimpactobjectrequiredimportobjectrequiredbaseTitlestringrequiredissuesnumber or nullrequirededitionsnumber or nullrequireddismissobjectrequiredissuesnumber or nullrequiredcurl 'https://collection.id/api/v1/admin/imports/conflicts/<id>' \
-H "Authorization: Bearer $COLLECTOR_TOKEN"await collector.getAdminImportConflict({ path: { id } });/api/v1/admin/imports/conflicts/{id}Merge the provider series into the series it collides with, import it as its own series under a disambiguating title, or leave it out. Audited.
collector.resolveAdminImportConflict()admin:imports:write(API keys are coming soon)X-Request-Id| Name | In | Type | About |
|---|---|---|---|
idrequired | path | string (uuid) |
object or object or object
Option 1: object
action"merge"requirednotestringoptionalat most 1000 charactersOption 2: object
action"import"requiredsuffixstringrequired1–60 charactersnotestringoptionalat most 1000 charactersOption 3: object
action"dismiss"requirednotestringrequired3–1000 charactersobject
seriesIdstring or nullrequiredinvalid_request: The query or body doesn’t match the schema (see errors[]).
invalid_json: The body isn’t JSON.
not_found: Not an admin (moderator): the same 404 as a missing route.
already_resolved: Someone already resolved it.
invalid_record: The conflict has no title to import under.
internal: Something went wrong on our side (quote the requestId).
curl -X POST 'https://collection.id/api/v1/admin/imports/conflicts/<id>' \
-H "Authorization: Bearer $COLLECTOR_TOKEN" \
-H 'Content-Type: application/json' \
-d @body.jsonawait collector.resolveAdminImportConflict({ path: { id }, body: { … } });/api/v1/admin/imports/syncThe same jobs the daily crons run; the work continues after the response. One Metron sync at a time.
collector.startAdminSync()admin:imports:write(API keys are coming soon)X-Request-Idobject
jobenumrequiredOne ofnew_releasesreleasesrefresh
object
started"true"requiredinvalid_request: The query or body doesn’t match the schema (see errors[]).
invalid_json: The body isn’t JSON.
not_found: Not an admin (moderator): the same 404 as a missing route.
sync_running: A Metron sync is already running.
provider_not_configured: Metron credentials aren’t configured.
internal: Something went wrong on our side (quote the requestId).
curl -X POST 'https://collection.id/api/v1/admin/imports/sync' \
-H "Authorization: Bearer $COLLECTOR_TOKEN" \
-H 'Content-Type: application/json' \
-d @body.jsonawait collector.startAdminSync({ body: { … } });