Admin Libraries
Generated admin libraries operations.
GET/v1/admin/librariesRead server librarylibrary
- Audience
- Integrations · Native API
- Authorization
- API key or personal access token with the library scope, or a signed-in session
- OpenAPI operation ID
get_admin_libraries
Parameters
| Name | In | Type | Description |
|---|---|---|---|
cursor | query | string | |
limit | query | integer1–40 |
Responses
200Successapplication/json
{
"items": [
{
"actions": [
"string"
],
"attention": {
"atLeast": true,
"files": 0
},
"audience": {
"accounts": 0,
"everyone": true
},
"filesSkipped": 0,
"id": "id_8h2k4q",
"kind": "string",
"lastScan": {
"actions": [
"string"
],
"analyzed": 0,
"createdAt": "2026-10-18T19:30:00Z",
"error": "string",
"errorCode": "string",
"finishedAt": "2026-10-18T19:30:00Z",
"id": "id_8h2k4q",
"libraryId": "id_8h2k4q",
"libraryKind": "string",
"libraryName": "Fargo",
"pauseReason": "string",
"phase": "string",
"processed": 0,
"sourceId": "id_8h2k4q",
"status": "string",
"updatedAt": "2026-10-18T19:30:00Z",
"warnings": 0
},
"name": "Fargo",
"position": 0,
"revision": 0,
"source": {
"availability": "string",
"basis": "string",
"message": "string",
"observedAt": "2026-10-18T19:30:00Z",
"path": "string"
},
"summary": {
"counts": [
{}
],
"coverUrls": [
"https://example.com/…"
],
"empty": true,
"emptyKnown": true,
"firstScan": true,
"latestArtwork": "string",
"publicationCounts": [
{}
]
}
}
],
"nextCursor": "eyJvIjoyMH0",
"revision": 0,
"scope": {
"serverId": "id_8h2k4q",
"viewerFence": "string"
}
}itemsarray of objectrequired
- actionsarray of stringrequired
attentionobject
- atLeastboolean
- filesintegerrequired
audienceobject
- accountsintegerrequired
- everyonebooleanrequired
- filesSkippedintegerrequired
- idstringrequired
- kindstringrequired
lastScanobject | any | nullrequired
- actionsarray of stringrequired
- analyzedintegerrequired
- createdAtstringrequired
- errorstring
- errorCodestring
- finishedAtstring | any | nullrequired
- idstringrequired
- libraryIdstringrequired
- libraryKindstringrequired
- libraryNamestringrequired
- pauseReasonstringrequired
- phasestringrequired
- processedintegerrequired
- sourceIdstringrequired
- statusstringrequired
- updatedAtstring | any | nullrequired
- warningsintegerrequired
- namestringrequired
- positionintegerrequired
- revisionintegerrequired
sourceobjectrequired
- availabilitystringrequired
- basisstringrequired
- messagestring
- observedAtstring
- pathstringrequired
summaryobject
countsarray of objectrequired
- atLeastbooleanrequired
- countintegerrequired
- kindstringrequired
- coverUrlsarray of stringrequired
- emptybooleanrequired
- emptyKnownbooleanrequired
- firstScanbooleanrequired
- latestArtworkstringrequired
publicationCountsarray of object
- atLeastbooleanrequired
- countintegerrequired
- kindstringrequired
- nextCursorstringrequired
- revisionintegerrequired
scopeobjectrequired
- serverIdstringrequired
- viewerFencestringrequired
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesinvalid_requestunauthorizednot_permittednot_foundinternaldatabase_busy
Example request
curl -X GET "http://127.0.0.1:32500/v1/admin/libraries" \
-H "Authorization: Bearer $PORTICO_API_KEY"DELETE/v1/admin/libraries/{id}Remove a library: it disappears at once and is taken apart in the background; files on disk are not touched and each profile's state is kept in case its titles returnadmin
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the admin scope, or a signed-in session
- OpenAPI operation ID
remove_library- Max body
- 4 KiB
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string |
Request body application/json · required
{
"confirmation": "string",
"expectedRevision": 0
}- confirmationstringrequired
- expectedRevisionintegerrequired
Responses
202Successapplication/json
{
"libraryId": "id_8h2k4q",
"removing": true
}- libraryIdstringrequired
- removingbooleanrequired
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesrevision_mismatchconfirmation_mismatchadministration_unavailableunauthorizednot_permittednot_foundinvalid_requestinternaltimeoutrevision_requireddatabase_busywriter_capacity
Example request
curl -X DELETE "http://127.0.0.1:32500/v1/admin/libraries/{id}" \
-H "Authorization: Bearer $PORTICO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"confirmation":"string","expectedRevision":0}'GET/v1/admin/libraries/{id}Read server librarylibrary
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the library scope, or a signed-in session
- OpenAPI operation ID
get_admin_libraries_id
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string |
Responses
200Successapplication/json
{
"library": {
"actions": [
"string"
],
"attention": {
"atLeast": true,
"files": 0
},
"audience": {
"accounts": 0,
"everyone": true
},
"filesSkipped": 0,
"id": "id_8h2k4q",
"kind": "string",
"lastScan": {
"actions": [
"string"
],
"analyzed": 0,
"createdAt": "2026-10-18T19:30:00Z",
"error": "string",
"errorCode": "string",
"finishedAt": "2026-10-18T19:30:00Z",
"id": "id_8h2k4q",
"libraryId": "id_8h2k4q",
"libraryKind": "string",
"libraryName": "Fargo",
"pauseReason": "string",
"phase": "string",
"processed": 0,
"sourceId": "id_8h2k4q",
"status": "string",
"updatedAt": "2026-10-18T19:30:00Z",
"warnings": 0
},
"name": "Fargo",
"position": 0,
"revision": 0,
"source": {
"availability": "string",
"basis": "string",
"message": "string",
"observedAt": "2026-10-18T19:30:00Z",
"path": "string"
},
"summary": {
"counts": [
{
"atLeast": true,
"count": 0,
"kind": "string"
}
],
"coverUrls": [
"https://example.com/…"
],
"empty": true,
"emptyKnown": true,
"firstScan": true,
"latestArtwork": "string",
"publicationCounts": [
{
"atLeast": true,
"count": 0,
"kind": "string"
}
]
}
},
"scope": {
"serverId": "id_8h2k4q",
"viewerFence": "string"
}
}libraryobjectrequired
- actionsarray of stringrequired
attentionobject
- atLeastboolean
- filesintegerrequired
audienceobject
- accountsintegerrequired
- everyonebooleanrequired
- filesSkippedintegerrequired
- idstringrequired
- kindstringrequired
lastScanobject | any | nullrequired
- actionsarray of stringrequired
- analyzedintegerrequired
- createdAtstringrequired
- errorstring
- errorCodestring
- finishedAtstring | any | nullrequired
- idstringrequired
- libraryIdstringrequired
- libraryKindstringrequired
- libraryNamestringrequired
- pauseReasonstringrequired
- phasestringrequired
- processedintegerrequired
- sourceIdstringrequired
- statusstringrequired
- updatedAtstring | any | nullrequired
- warningsintegerrequired
- namestringrequired
- positionintegerrequired
- revisionintegerrequired
sourceobjectrequired
- availabilitystringrequired
- basisstringrequired
- messagestring
- observedAtstring
- pathstringrequired
summaryobject
countsarray of objectrequired
- atLeastbooleanrequired
- countintegerrequired
- kindstringrequired
- coverUrlsarray of stringrequired
- emptybooleanrequired
- emptyKnownbooleanrequired
- firstScanbooleanrequired
- latestArtworkstringrequired
publicationCountsarray of object
- atLeastbooleanrequired
- countintegerrequired
- kindstringrequired
scopeobjectrequired
- serverIdstringrequired
- viewerFencestringrequired
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesinvalid_requestunauthorizednot_permittednot_foundinternaldatabase_busy
Example request
curl -X GET "http://127.0.0.1:32500/v1/admin/libraries/{id}" \
-H "Authorization: Bearer $PORTICO_API_KEY"PATCH/v1/admin/libraries/{id}Change server librarylibrary
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the library scope, or a signed-in session
- OpenAPI operation ID
patch_admin_libraries_id- Max body
- 64 KiB
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string | |
Idempotency-Key | header | string | |
Portico-Mutation-Root | header | string |
Request body application/json · required
{
"expectedRevision": 0,
"name": "Fargo"
}- expectedRevisionintegerrequired
- namestringrequired
Responses
200Successapplication/json
{
"library": {
"actions": [
"string"
],
"attention": {
"atLeast": true,
"files": 0
},
"audience": {
"accounts": 0,
"everyone": true
},
"filesSkipped": 0,
"id": "id_8h2k4q",
"kind": "string",
"lastScan": {
"actions": [
"string"
],
"analyzed": 0,
"createdAt": "2026-10-18T19:30:00Z",
"error": "string",
"errorCode": "string",
"finishedAt": "2026-10-18T19:30:00Z",
"id": "id_8h2k4q",
"libraryId": "id_8h2k4q",
"libraryKind": "string",
"libraryName": "Fargo",
"pauseReason": "string",
"phase": "string",
"processed": 0,
"sourceId": "id_8h2k4q",
"status": "string",
"updatedAt": "2026-10-18T19:30:00Z",
"warnings": 0
},
"name": "Fargo",
"position": 0,
"revision": 0,
"source": {
"availability": "string",
"basis": "string",
"message": "string",
"observedAt": "2026-10-18T19:30:00Z",
"path": "string"
},
"summary": {
"counts": [
{
"atLeast": true,
"count": 0,
"kind": "string"
}
],
"coverUrls": [
"https://example.com/…"
],
"empty": true,
"emptyKnown": true,
"firstScan": true,
"latestArtwork": "string",
"publicationCounts": [
{
"atLeast": true,
"count": 0,
"kind": "string"
}
]
}
},
"scope": {
"serverId": "id_8h2k4q",
"viewerFence": "string"
}
}libraryobjectrequired
- actionsarray of stringrequired
attentionobject
- atLeastboolean
- filesintegerrequired
audienceobject
- accountsintegerrequired
- everyonebooleanrequired
- filesSkippedintegerrequired
- idstringrequired
- kindstringrequired
lastScanobject | any | nullrequired
- actionsarray of stringrequired
- analyzedintegerrequired
- createdAtstringrequired
- errorstring
- errorCodestring
- finishedAtstring | any | nullrequired
- idstringrequired
- libraryIdstringrequired
- libraryKindstringrequired
- libraryNamestringrequired
- pauseReasonstringrequired
- phasestringrequired
- processedintegerrequired
- sourceIdstringrequired
- statusstringrequired
- updatedAtstring | any | nullrequired
- warningsintegerrequired
- namestringrequired
- positionintegerrequired
- revisionintegerrequired
sourceobjectrequired
- availabilitystringrequired
- basisstringrequired
- messagestring
- observedAtstring
- pathstringrequired
summaryobject
countsarray of objectrequired
- atLeastbooleanrequired
- countintegerrequired
- kindstringrequired
- coverUrlsarray of stringrequired
- emptybooleanrequired
- emptyKnownbooleanrequired
- firstScanbooleanrequired
- latestArtworkstringrequired
publicationCountsarray of object
- atLeastbooleanrequired
- countintegerrequired
- kindstringrequired
scopeobjectrequired
- serverIdstringrequired
- viewerFencestringrequired
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesinvalid_requestunauthorizednot_permittednot_foundinternalidempotency_conflictreceipt_expiredinvalid_mutation_keydatabase_busywriter_capacity
Example request
curl -X PATCH "http://127.0.0.1:32500/v1/admin/libraries/{id}" \
-H "Authorization: Bearer $PORTICO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"expectedRevision":0,"name":"Fargo"}'GET/v1/admin/libraries/{id}/inventoryRead one page of library files, optionally locating one file by its asset idlibrary
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the library scope, or a signed-in session
- OpenAPI operation ID
get_library_inventory
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string | |
sourceId | query | string | |
assetId | query | string | |
state | query | string | |
cursor | query | string | |
limit | query | integer | ""0–40 |
Responses
200Successapplication/json
{
"items": [
{
"analysisError": "string",
"analysisState": "string",
"assetId": "id_8h2k4q",
"id": "id_8h2k4q",
"itemId": "id_8h2k4q",
"missingSince": "string",
"modifiedNs": 0,
"relativePath": "string",
"revision": "r12",
"size": 0,
"sourceId": "id_8h2k4q",
"state": "string",
"title": "Fargo",
"unsupportedReason": "string"
}
],
"libraryId": "id_8h2k4q",
"nextCursor": "eyJvIjoyMH0",
"revision": 0,
"scope": {
"serverId": "id_8h2k4q",
"viewerFence": "string"
},
"sourceId": "id_8h2k4q"
}itemsarray of objectrequired
- analysisErrorstringrequired
- analysisStatestringrequired
- assetIdstringrequired
- idstringrequired
- itemIdstringrequired
- missingSincestringrequired
- modifiedNsintegerrequired
- relativePathstringrequired
- revisionstringrequired
- sizeintegerrequired
- sourceIdstringrequired
- statestringrequired
- titlestringrequired
- unsupportedReasonstringrequired
- libraryIdstringrequired
- nextCursorstringrequired
- revisionintegerrequired
scopeobjectrequired
- serverIdstringrequired
- viewerFencestringrequired
- sourceIdstringrequired
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesunauthorizednot_permittedinvalid_requestnot_foundrevision_mismatchinternaltimeoutdatabase_busy
Example request
curl -X GET "http://127.0.0.1:32500/v1/admin/libraries/{id}/inventory" \
-H "Authorization: Bearer $PORTICO_API_KEY"GET/v1/admin/libraries/{id}/inventory-configRead server library inventory configlibrary
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the library scope, or a signed-in session
- OpenAPI operation ID
get_admin_libraries_id_inventory_config
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string |
Responses
200Successapplication/json
{
"libraryId": "id_8h2k4q",
"policy": {
"operations": [
"string"
],
"revision": 0,
"tier": "string",
"trickplay": {
"intervalMs": 1800000,
"maxTiles": 0,
"tileWidth": 0
}
},
"revision": 0,
"scope": {
"serverId": "id_8h2k4q",
"viewerFence": "string"
},
"sources": [
{
"classification": "string",
"enabled": true,
"followSymlinks": true,
"generation": 0,
"health": "string",
"id": "id_8h2k4q",
"identityConfirmed": true,
"intervalMs": 1800000,
"kind": "string",
"lastCompleteAt": "2026-10-18T19:30:00Z",
"lastProgressAt": "2026-10-18T19:30:00Z",
"libraryId": "id_8h2k4q",
"name": "Fargo",
"nextScanAt": "2026-10-18T19:30:00Z",
"path": "string",
"resolvedPath": "string"
}
]
}- libraryIdstringrequired
policyobjectrequired
- operationsarray of stringrequired
- revisionintegerrequired
- tierstringrequired
trickplayobjectrequired
- intervalMsintegerrequired≥ 0
- maxTilesintegerrequired
- tileWidthintegerrequired
- revisionintegerrequired
scopeobjectrequired
- serverIdstringrequired
- viewerFencestringrequired
sourcesarray of objectrequired
- classificationstringrequired
- enabledbooleanrequired
- followSymlinksbooleanrequired
- generationintegerrequired
- healthstringrequired
- idstringrequired
- identityConfirmedbooleanrequired
- intervalMsintegerrequired≥ 0
- kindstringrequired
- lastCompleteAtstringrequired
- lastProgressAtstringrequired
- libraryIdstringrequired
- namestringrequired
- nextScanAtstringrequired
- pathstringrequired
- resolvedPathstringrequired
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesinvalid_requestunauthorizednot_permittednot_foundinternaldatabase_busy
Example request
curl -X GET "http://127.0.0.1:32500/v1/admin/libraries/{id}/inventory-config" \
-H "Authorization: Bearer $PORTICO_API_KEY"POST/v1/admin/libraries/{id}/inventory/{object}/{action}Run server library inventorylibrary
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the library scope, or a signed-in session
- OpenAPI operation ID
post_admin_libraries_id_inventory_object_action- Max body
- 64 KiB
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string | |
objectrequired | path | string | |
actionrequired | path | string |
Request body application/json · required
{
"itemId": "id_8h2k4q",
"revision": "r12"
}- itemIdstringrequired
- revisionstringrequired
Responses
200Successapplication/json
{
"itemId": "id_8h2k4q"
}- itemIdstringrequired
204Success
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesinvalid_requestunauthorizednot_permittednot_foundinternaldatabase_busywriter_capacity
Example request
curl -X POST "http://127.0.0.1:32500/v1/admin/libraries/{id}/inventory/{object}/{action}" \
-H "Authorization: Bearer $PORTICO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"itemId":"id_8h2k4q","revision":"r12"}'POST/v1/admin/libraries/{id}/inventory/{object}/separate-folderMake a file's folder its own album or booklibrary
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the library scope, or a signed-in session
- OpenAPI operation ID
post_admin_libraries_id_inventory_object_separate_folder- Max body
- 64 KiB
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string | |
objectrequired | path | string |
Request body application/json · required
{
"revision": "r12"
}- revisionstringrequired
Responses
200Successapplication/json
{
"itemId": "id_8h2k4q"
}- itemIdstringrequired
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesinvalid_requestunauthorizednot_permittednot_foundrevision_mismatchrequest_in_progressinternaldatabase_busywriter_capacity
Example request
curl -X POST "http://127.0.0.1:32500/v1/admin/libraries/{id}/inventory/{object}/separate-folder" \
-H "Authorization: Bearer $PORTICO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"revision":"r12"}'PUT/v1/admin/libraries/{id}/scan-policySave server library scan policylibrary
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the library scope, or a signed-in session
- OpenAPI operation ID
put_admin_libraries_id_scan_policy- Max body
- 64 KiB
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string | |
Idempotency-Key | header | string | |
Portico-Mutation-Root | header | string |
Request body application/json · required
{
"expectedRevision": 0,
"operations": [
"string"
],
"tier": "string"
}- expectedRevisionintegerrequired
- operationsarray of stringrequired
- tierstringrequired
Responses
200Successapplication/json
{
"operations": [
"string"
],
"revision": 0,
"tier": "string",
"trickplay": {
"intervalMs": 1800000,
"maxTiles": 0,
"tileWidth": 0
}
}- operationsarray of stringrequired
- revisionintegerrequired
- tierstringrequired
trickplayobjectrequired
- intervalMsintegerrequired≥ 0
- maxTilesintegerrequired
- tileWidthintegerrequired
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesinvalid_requestunauthorizednot_permittednot_foundinternalidempotency_conflictreceipt_expiredinvalid_mutation_keydatabase_busywriter_capacity
Example request
curl -X PUT "http://127.0.0.1:32500/v1/admin/libraries/{id}/scan-policy" \
-H "Authorization: Bearer $PORTICO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"expectedRevision":0,"operations":["string"],"tier":"string"}'GET/v1/admin/libraries/{id}/scans/{job}/issuesList files and folders skipped during a scanlibrary
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the library scope, or a signed-in session
- OpenAPI operation ID
get_scan_issues
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string | |
jobrequired | path | string | |
after | query | string | |
limit | query | integer | ""1–128 |
Responses
200Successapplication/json
{
"count": 0,
"hasMore": true,
"items": [
{
"category": "string",
"line": 0,
"messageKey": "string",
"path": "string",
"reason": "string",
"sequence": 0,
"warning": true
}
],
"jobId": "id_8h2k4q",
"nextSequence": 0
}- countintegerrequired
- hasMorebooleanrequired
itemsarray of objectrequired
- categorystringrequired
- lineintegerrequired
- messageKeystringrequired
- pathstringrequired
- reasonstringrequired
- sequenceintegerrequired
- warningbooleanrequired
- jobIdstringrequired
- nextSequenceintegerrequired
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesunauthorizednot_permittednot_foundinvalid_requestrevision_mismatchidempotency_key_reusedinternaltimeoutdatabase_busy
Example request
curl -X GET "http://127.0.0.1:32500/v1/admin/libraries/{id}/scans/{job}/issues" \
-H "Authorization: Bearer $PORTICO_API_KEY"GET/v1/admin/libraries/{id}/settingsRead a library's scanning and metadata settingslibrary
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the library scope, or a signed-in session
- OpenAPI operation ID
get_library_settings
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string |
Responses
200Successapplication/json
{
"actions": [
"string"
],
"analysisMatrix": {
"costClasses": [
{
"description": "string",
"id": "id_8h2k4q",
"name": "Fargo",
"order": 0
}
],
"operations": [
{
"costClass": "string",
"defaultEnabled": true,
"description": "string",
"id": "id_8h2k4q",
"mediaKinds": [
"string"
],
"name": "Fargo",
"network": true,
"producesArtifacts": true,
"requires": [
"string"
]
}
]
},
"audience": {
"accounts": 0,
"everyone": true
},
"availableProviders": [
{
"attributionNote": "string",
"id": "id_8h2k4q",
"mediaKinds": [
"string"
],
"name": "Fargo",
"supportsApiKey": true,
"supportsLocale": true
}
],
"defaults": {
"acoustidEnabled": true,
"allowMediaDeletion": true,
"analysis": [
"probe"
],
"continueWatching": {
"includeSeasonPremieres": true,
"maximumItems": 1800000,
"videoCompletion": "string",
"videoPlayedThreshold": 0,
"weeks": 0
},
"episodeNumbering": "season",
"findExtras": true,
"groupCollections": true,
"localTags": "prefer",
"lyricsSource": "files",
"monitorChanges": true,
"navigation": {
"chapterThumbnailMode": "string",
"trickplayIntervalMs": 1800000,
"trickplayMaxTiles": 0,
"trickplayTileWidth": 0,
"videoPreviewEnabled": true,
"videoPreviewMs": 1800000
},
"providers": [
{
"apiKey": "string",
"apiKeySet": true,
"language": "en",
"mediaKind": "string",
"provider": "string",
"region": "string"
}
],
"refreshMode": "replace_unlocked",
"scanDepth": "file_list_only",
"segmentDetection": "server",
"sortIgnoreArticles": true,
"titleSource": "tags"
},
"digest": "string",
"eligibleControls": [
"string"
],
"enumerations": {
"key": [
"string"
]
},
"libraryId": "id_8h2k4q",
"libraryKind": "string",
"libraryName": "Fargo",
"revision": 0,
"settings": {
"acoustidEnabled": true,
"allowMediaDeletion": true,
"analysis": [
"probe"
],
"continueWatching": {
"includeSeasonPremieres": true,
"maximumItems": 1800000,
"videoCompletion": "string",
"videoPlayedThreshold": 0,
"weeks": 0
},
"episodeNumbering": "season",
"findExtras": true,
"groupCollections": true,
"localTags": "prefer",
"lyricsSource": "files",
"monitorChanges": true,
"navigation": {
"chapterThumbnailMode": "string",
"trickplayIntervalMs": 1800000,
"trickplayMaxTiles": 0,
"trickplayTileWidth": 0,
"videoPreviewEnabled": true,
"videoPreviewMs": 1800000
},
"providers": [
{
"apiKey": "string",
"apiKeySet": true,
"language": "en",
"mediaKind": "string",
"provider": "string",
"region": "string"
}
],
"refreshMode": "replace_unlocked",
"scanDepth": "file_list_only",
"segmentDetection": "server",
"sortIgnoreArticles": true,
"titleSource": "tags"
},
"sources": [
{
"classification": "string",
"enabled": true,
"followSymlinks": true,
"generation": 0,
"health": "string",
"id": "id_8h2k4q",
"identityConfirmed": true,
"intervalMs": 1800000,
"kind": "string",
"lastCompleteAt": "2026-10-18T19:30:00Z",
"lastProgressAt": "2026-10-18T19:30:00Z",
"libraryId": "id_8h2k4q",
"name": "Fargo",
"nextScanAt": "2026-10-18T19:30:00Z",
"path": "string",
"resolvedPath": "string"
}
]
}- actionsarray of stringrequired
analysisMatrixobjectrequired
costClassesarray of objectrequired
- descriptionstringrequired
- idstringrequired
- namestringrequired
- orderintegerrequired
operationsarray of objectrequired
- costClassstringrequired
- defaultEnabledbooleanrequired
- descriptionstringrequired
- idstringrequired
- mediaKindsarray of stringrequired
- namestringrequired
- networkbooleanrequired
- producesArtifactsbooleanrequired
- requiresarray of stringrequired
audienceobjectrequired
- accountsintegerrequired
- everyonebooleanrequired
availableProvidersarray of objectrequired
- attributionNotestringrequired
- idstringrequired
- mediaKindsarray of stringrequired
- namestringrequired
- supportsApiKeybooleanrequired
- supportsLocalebooleanrequired
defaultsobjectrequired
- acoustidEnabledbooleanrequired
- allowMediaDeletionbooleanrequired
- analysisarray of stringrequired0–9 items
continueWatchingobjectrequired
- includeSeasonPremieresboolean | any | nullrequired
- maximumItemsintegerrequired
- videoCompletionstringrequired
- videoPlayedThresholdintegerrequired
- weeksintegerrequired
- episodeNumberingstringrequiredone of "season", "absolute"
- findExtrasbooleanrequired
- groupCollectionsbooleanrequired
- localTagsstringrequiredone of "prefer", "supplement", "off"
- lyricsSourcestringrequiredone of "files", "lrclib"
- monitorChangesbooleanrequired
navigationobjectrequired
- chapterThumbnailModestringrequired
- trickplayIntervalMsintegerrequired
- trickplayMaxTilesintegerrequired
- trickplayTileWidthintegerrequired
- videoPreviewEnabledbooleanrequired
- videoPreviewMsintegerrequired
providersarray of objectrequired
- apiKeystringrequired
- apiKeySetbooleanrequired
- languagestringrequired
- mediaKindstringrequired
- providerstringrequired
- regionstringrequired
- refreshModestringrequiredone of "replace_unlocked", "fill_missing"
- scanDepthstringrequiredone of "file_list_only", "basic", "complete", "custom"
- segmentDetectionstringrequiredone of "server", "off", "standard", "thorough"
- sortIgnoreArticlesbooleanrequired
- titleSourcestringrequiredone of "tags", "names"
- digeststringrequired
- eligibleControlsarray of stringrequired
- enumerationsobjectrequired
- libraryIdstringrequired
- libraryKindstringrequired
- libraryNamestringrequired
- revisionintegerrequired
settingsobjectrequired
- acoustidEnabledbooleanrequired
- allowMediaDeletionbooleanrequired
- analysisarray of stringrequired0–9 items
continueWatchingobjectrequired
- includeSeasonPremieresboolean | any | nullrequired
- maximumItemsintegerrequired
- videoCompletionstringrequired
- videoPlayedThresholdintegerrequired
- weeksintegerrequired
- episodeNumberingstringrequiredone of "season", "absolute"
- findExtrasbooleanrequired
- groupCollectionsbooleanrequired
- localTagsstringrequiredone of "prefer", "supplement", "off"
- lyricsSourcestringrequiredone of "files", "lrclib"
- monitorChangesbooleanrequired
navigationobjectrequired
- chapterThumbnailModestringrequired
- trickplayIntervalMsintegerrequired
- trickplayMaxTilesintegerrequired
- trickplayTileWidthintegerrequired
- videoPreviewEnabledbooleanrequired
- videoPreviewMsintegerrequired
providersarray of objectrequired
- apiKeystringrequired
- apiKeySetbooleanrequired
- languagestringrequired
- mediaKindstringrequired
- providerstringrequired
- regionstringrequired
- refreshModestringrequiredone of "replace_unlocked", "fill_missing"
- scanDepthstringrequiredone of "file_list_only", "basic", "complete", "custom"
- segmentDetectionstringrequiredone of "server", "off", "standard", "thorough"
- sortIgnoreArticlesbooleanrequired
- titleSourcestringrequiredone of "tags", "names"
sourcesarray of objectrequired
- classificationstringrequired
- enabledbooleanrequired
- followSymlinksbooleanrequired
- generationintegerrequired
- healthstringrequired
- idstringrequired
- identityConfirmedbooleanrequired
- intervalMsintegerrequired≥ 0
- kindstringrequired
- lastCompleteAtstringrequired
- lastProgressAtstringrequired
- libraryIdstringrequired
- namestringrequired
- nextScanAtstringrequired
- pathstringrequired
- resolvedPathstringrequired
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesunauthorizednot_permittednot_foundinvalid_requestrevision_mismatchidempotency_key_reusedinternaltimeoutdatabase_busy
Example request
curl -X GET "http://127.0.0.1:32500/v1/admin/libraries/{id}/settings" \
-H "Authorization: Bearer $PORTICO_API_KEY"PUT/v1/admin/libraries/{id}/settingsSave a library's scanning and metadata settingslibrary
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the library scope, or a signed-in session
- OpenAPI operation ID
put_library_settings- Max body
- 64 KiB
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string | |
Idempotency-Key | header | string | |
Portico-Mutation-Root | header | string |
Request body application/json · required
{
"expectedRevision": 0,
"operationId": "id_8h2k4q",
"settings": {
"acoustidEnabled": true,
"allowMediaDeletion": true,
"analysis": [
"probe"
],
"continueWatching": {
"includeSeasonPremieres": true,
"maximumItems": 1800000,
"videoCompletion": "string",
"videoPlayedThreshold": 0,
"weeks": 0
},
"episodeNumbering": "season",
"findExtras": true,
"groupCollections": true,
"localTags": "prefer",
"lyricsSource": "files",
"monitorChanges": true,
"navigation": {
"chapterThumbnailMode": "string",
"trickplayIntervalMs": 1800000,
"trickplayMaxTiles": 0,
"trickplayTileWidth": 0,
"videoPreviewEnabled": true,
"videoPreviewMs": 1800000
},
"providers": [
{
"apiKey": "string",
"apiKeySet": true,
"language": "en",
"mediaKind": "string",
"provider": "string",
"region": "string"
}
],
"refreshMode": "replace_unlocked",
"scanDepth": "file_list_only",
"segmentDetection": "server",
"sortIgnoreArticles": true,
"titleSource": "tags"
}
}- expectedRevisionintegerrequired
- operationIdstringrequired
settingsobjectrequired
- acoustidEnabledbooleanrequired
- allowMediaDeletionbooleanrequired
- analysisarray of stringrequired0–9 items
continueWatchingobjectrequired
- includeSeasonPremieresboolean | any | nullrequired
- maximumItemsintegerrequired
- videoCompletionstringrequired
- videoPlayedThresholdintegerrequired
- weeksintegerrequired
- episodeNumberingstringrequiredone of "season", "absolute"
- findExtrasbooleanrequired
- groupCollectionsbooleanrequired
- localTagsstringrequiredone of "prefer", "supplement", "off"
- lyricsSourcestringrequiredone of "files", "lrclib"
- monitorChangesbooleanrequired
navigationobjectrequired
- chapterThumbnailModestringrequired
- trickplayIntervalMsintegerrequired
- trickplayMaxTilesintegerrequired
- trickplayTileWidthintegerrequired
- videoPreviewEnabledbooleanrequired
- videoPreviewMsintegerrequired
providersarray of objectrequired
- apiKeystringrequired
- apiKeySetbooleanrequired
- languagestringrequired
- mediaKindstringrequired
- providerstringrequired
- regionstringrequired
- refreshModestringrequiredone of "replace_unlocked", "fill_missing"
- scanDepthstringrequiredone of "file_list_only", "basic", "complete", "custom"
- segmentDetectionstringrequiredone of "server", "off", "standard", "thorough"
- sortIgnoreArticlesbooleanrequired
- titleSourcestringrequiredone of "tags", "names"
Responses
200Successapplication/json
{
"actions": [
"string"
],
"analysisMatrix": {
"costClasses": [
{
"description": "string",
"id": "id_8h2k4q",
"name": "Fargo",
"order": 0
}
],
"operations": [
{
"costClass": "string",
"defaultEnabled": true,
"description": "string",
"id": "id_8h2k4q",
"mediaKinds": [
"string"
],
"name": "Fargo",
"network": true,
"producesArtifacts": true,
"requires": [
"string"
]
}
]
},
"audience": {
"accounts": 0,
"everyone": true
},
"availableProviders": [
{
"attributionNote": "string",
"id": "id_8h2k4q",
"mediaKinds": [
"string"
],
"name": "Fargo",
"supportsApiKey": true,
"supportsLocale": true
}
],
"defaults": {
"acoustidEnabled": true,
"allowMediaDeletion": true,
"analysis": [
"probe"
],
"continueWatching": {
"includeSeasonPremieres": true,
"maximumItems": 1800000,
"videoCompletion": "string",
"videoPlayedThreshold": 0,
"weeks": 0
},
"episodeNumbering": "season",
"findExtras": true,
"groupCollections": true,
"localTags": "prefer",
"lyricsSource": "files",
"monitorChanges": true,
"navigation": {
"chapterThumbnailMode": "string",
"trickplayIntervalMs": 1800000,
"trickplayMaxTiles": 0,
"trickplayTileWidth": 0,
"videoPreviewEnabled": true,
"videoPreviewMs": 1800000
},
"providers": [
{
"apiKey": "string",
"apiKeySet": true,
"language": "en",
"mediaKind": "string",
"provider": "string",
"region": "string"
}
],
"refreshMode": "replace_unlocked",
"scanDepth": "file_list_only",
"segmentDetection": "server",
"sortIgnoreArticles": true,
"titleSource": "tags"
},
"digest": "string",
"eligibleControls": [
"string"
],
"enumerations": {
"key": [
"string"
]
},
"libraryId": "id_8h2k4q",
"libraryKind": "string",
"libraryName": "Fargo",
"revision": 0,
"settings": {
"acoustidEnabled": true,
"allowMediaDeletion": true,
"analysis": [
"probe"
],
"continueWatching": {
"includeSeasonPremieres": true,
"maximumItems": 1800000,
"videoCompletion": "string",
"videoPlayedThreshold": 0,
"weeks": 0
},
"episodeNumbering": "season",
"findExtras": true,
"groupCollections": true,
"localTags": "prefer",
"lyricsSource": "files",
"monitorChanges": true,
"navigation": {
"chapterThumbnailMode": "string",
"trickplayIntervalMs": 1800000,
"trickplayMaxTiles": 0,
"trickplayTileWidth": 0,
"videoPreviewEnabled": true,
"videoPreviewMs": 1800000
},
"providers": [
{
"apiKey": "string",
"apiKeySet": true,
"language": "en",
"mediaKind": "string",
"provider": "string",
"region": "string"
}
],
"refreshMode": "replace_unlocked",
"scanDepth": "file_list_only",
"segmentDetection": "server",
"sortIgnoreArticles": true,
"titleSource": "tags"
},
"sources": [
{
"classification": "string",
"enabled": true,
"followSymlinks": true,
"generation": 0,
"health": "string",
"id": "id_8h2k4q",
"identityConfirmed": true,
"intervalMs": 1800000,
"kind": "string",
"lastCompleteAt": "2026-10-18T19:30:00Z",
"lastProgressAt": "2026-10-18T19:30:00Z",
"libraryId": "id_8h2k4q",
"name": "Fargo",
"nextScanAt": "2026-10-18T19:30:00Z",
"path": "string",
"resolvedPath": "string"
}
]
}- actionsarray of stringrequired
analysisMatrixobjectrequired
costClassesarray of objectrequired
- descriptionstringrequired
- idstringrequired
- namestringrequired
- orderintegerrequired
operationsarray of objectrequired
- costClassstringrequired
- defaultEnabledbooleanrequired
- descriptionstringrequired
- idstringrequired
- mediaKindsarray of stringrequired
- namestringrequired
- networkbooleanrequired
- producesArtifactsbooleanrequired
- requiresarray of stringrequired
audienceobjectrequired
- accountsintegerrequired
- everyonebooleanrequired
availableProvidersarray of objectrequired
- attributionNotestringrequired
- idstringrequired
- mediaKindsarray of stringrequired
- namestringrequired
- supportsApiKeybooleanrequired
- supportsLocalebooleanrequired
defaultsobjectrequired
- acoustidEnabledbooleanrequired
- allowMediaDeletionbooleanrequired
- analysisarray of stringrequired0–9 items
continueWatchingobjectrequired
- includeSeasonPremieresboolean | any | nullrequired
- maximumItemsintegerrequired
- videoCompletionstringrequired
- videoPlayedThresholdintegerrequired
- weeksintegerrequired
- episodeNumberingstringrequiredone of "season", "absolute"
- findExtrasbooleanrequired
- groupCollectionsbooleanrequired
- localTagsstringrequiredone of "prefer", "supplement", "off"
- lyricsSourcestringrequiredone of "files", "lrclib"
- monitorChangesbooleanrequired
navigationobjectrequired
- chapterThumbnailModestringrequired
- trickplayIntervalMsintegerrequired
- trickplayMaxTilesintegerrequired
- trickplayTileWidthintegerrequired
- videoPreviewEnabledbooleanrequired
- videoPreviewMsintegerrequired
providersarray of objectrequired
- apiKeystringrequired
- apiKeySetbooleanrequired
- languagestringrequired
- mediaKindstringrequired
- providerstringrequired
- regionstringrequired
- refreshModestringrequiredone of "replace_unlocked", "fill_missing"
- scanDepthstringrequiredone of "file_list_only", "basic", "complete", "custom"
- segmentDetectionstringrequiredone of "server", "off", "standard", "thorough"
- sortIgnoreArticlesbooleanrequired
- titleSourcestringrequiredone of "tags", "names"
- digeststringrequired
- eligibleControlsarray of stringrequired
- enumerationsobjectrequired
- libraryIdstringrequired
- libraryKindstringrequired
- libraryNamestringrequired
- revisionintegerrequired
settingsobjectrequired
- acoustidEnabledbooleanrequired
- allowMediaDeletionbooleanrequired
- analysisarray of stringrequired0–9 items
continueWatchingobjectrequired
- includeSeasonPremieresboolean | any | nullrequired
- maximumItemsintegerrequired
- videoCompletionstringrequired
- videoPlayedThresholdintegerrequired
- weeksintegerrequired
- episodeNumberingstringrequiredone of "season", "absolute"
- findExtrasbooleanrequired
- groupCollectionsbooleanrequired
- localTagsstringrequiredone of "prefer", "supplement", "off"
- lyricsSourcestringrequiredone of "files", "lrclib"
- monitorChangesbooleanrequired
navigationobjectrequired
- chapterThumbnailModestringrequired
- trickplayIntervalMsintegerrequired
- trickplayMaxTilesintegerrequired
- trickplayTileWidthintegerrequired
- videoPreviewEnabledbooleanrequired
- videoPreviewMsintegerrequired
providersarray of objectrequired
- apiKeystringrequired
- apiKeySetbooleanrequired
- languagestringrequired
- mediaKindstringrequired
- providerstringrequired
- regionstringrequired
- refreshModestringrequiredone of "replace_unlocked", "fill_missing"
- scanDepthstringrequiredone of "file_list_only", "basic", "complete", "custom"
- segmentDetectionstringrequiredone of "server", "off", "standard", "thorough"
- sortIgnoreArticlesbooleanrequired
- titleSourcestringrequiredone of "tags", "names"
sourcesarray of objectrequired
- classificationstringrequired
- enabledbooleanrequired
- followSymlinksbooleanrequired
- generationintegerrequired
- healthstringrequired
- idstringrequired
- identityConfirmedbooleanrequired
- intervalMsintegerrequired≥ 0
- kindstringrequired
- lastCompleteAtstringrequired
- lastProgressAtstringrequired
- libraryIdstringrequired
- namestringrequired
- nextScanAtstringrequired
- pathstringrequired
- resolvedPathstringrequired
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesunauthorizednot_permittednot_foundinvalid_requestrevision_mismatchidempotency_key_reusedinternaltimeoutrevision_requiredidempotency_conflictreceipt_expiredinvalid_mutation_keydatabase_busywriter_capacity
Example request
curl -X PUT "http://127.0.0.1:32500/v1/admin/libraries/{id}/settings" \
-H "Authorization: Bearer $PORTICO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"expectedRevision": 0,
"operationId": "id_8h2k4q",
"settings": {
"acoustidEnabled": true,
"allowMediaDeletion": true,
"analysis": [
"probe"
],
"continueWatching": {
"includeSeasonPremieres": true,
"maximumItems": 1800000,
"videoCompletion": "string",
"videoPlayedThreshold": 0,
"weeks": 0
},
"episodeNumbering": "season",
"findExtras": true,
"groupCollections": true,
"localTags": "prefer",
"lyricsSource": "files",
"monitorChanges": true,
"navigation": {
"chapterThumbnailMode": "string",
"trickplayIntervalMs": 1800000,
"trickplayMaxTiles": 0,
"trickplayTileWidth": 0,
"videoPreviewEnabled": true,
"videoPreviewMs": 1800000
},
"providers": [
{
"apiKey": "string",
"apiKeySet": true,
"language": "en",
"mediaKind": "string",
"provider": "string",
"region": "string"
}
],
"refreshMode": "replace_unlocked",
"scanDepth": "file_list_only",
"segmentDetection": "server",
"sortIgnoreArticles": true,
"titleSource": "tags"
}
}'PUT/v1/admin/libraries/{id}/shows/{show}/settingsSave server library show settingslibrary
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the library scope, or a signed-in session
- OpenAPI operation ID
put_admin_libraries_id_shows_show_settings- Max body
- 64 KiB
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string | |
showrequired | path | string | |
Idempotency-Key | header | string | |
Portico-Mutation-Root | header | string |
Request body application/json · required
{
"absoluteNumbering": true,
"hideSeasons": true,
"newestFirst": true,
"ranges": true,
"revision": 0
}- absoluteNumberingbooleanrequired
- hideSeasonsbooleanrequired
- newestFirstbooleanrequired
- rangesbooleanrequired
- revisionintegerrequired
Responses
200Successapplication/json
{
"absoluteNumbering": true,
"hideSeasons": true,
"newestFirst": true,
"ranges": true,
"revision": 0
}- absoluteNumberingbooleanrequired
- hideSeasonsbooleanrequired
- newestFirstbooleanrequired
- rangesbooleanrequired
- revisionintegerrequired
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesinvalid_requestunauthorizednot_permittednot_foundinternalidempotency_conflictreceipt_expiredinvalid_mutation_keydatabase_busywriter_capacity
Example request
curl -X PUT "http://127.0.0.1:32500/v1/admin/libraries/{id}/shows/{show}/settings" \
-H "Authorization: Bearer $PORTICO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"absoluteNumbering":true,"hideSeasons":true,"newestFirst":true,"ranges":true,"revision":0}'GET/v1/admin/libraries/{id}/sonic-analysisRead current library sound analysis statusadmin
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the admin scope, or a signed-in session
- OpenAPI operation ID
get_admin_libraries_id_sonic_analysis
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string |
Responses
200Successapplication/json
{
"available": true,
"defaultEnabled": true,
"done": 0,
"enabled": true,
"estimatedRemainingSeconds": 0,
"libraryId": "id_8h2k4q",
"model": {
"id": "id_8h2k4q",
"sha256": "string",
"version": "string"
},
"observedAtMs": 1800000,
"pausedUntilMs": 1800000,
"policyAllows": true,
"policyRevision": 0,
"reasonCode": "inference_failed",
"revision": 0,
"state": "disabled",
"total": 0
}- availablebooleanrequired
- defaultEnabledbooleanrequired
- doneintegerrequired
- enabledbooleanrequired
- estimatedRemainingSecondsinteger
- libraryIdstringrequired
modelobject
- idstringrequired
- sha256stringrequired
- versionstringrequired
- observedAtMsintegerrequired
- pausedUntilMsinteger
- policyAllowsbooleanrequired
- policyRevisionintegerrequired
- reasonCodestringone of "inference_failed", "inference_not_verified", "runtime_or_model_missing", "scan_policy_disallows"
- revisionintegerrequired
- statestringrequiredone of "disabled", "unavailable", "complete", "paused", "analyzing"
- totalintegerrequired
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesinvalid_requestinvalid_analysisunauthorizednot_permittednot_foundrevision_requiredlibrary_configuration_conflictanalysis_conflictanalysis_unavailableinternaldatabase_busy
Example request
curl -X GET "http://127.0.0.1:32500/v1/admin/libraries/{id}/sonic-analysis" \
-H "Authorization: Bearer $PORTICO_API_KEY"PUT/v1/admin/libraries/{id}/sonic-analysisSave library sound analysis with its current revisionadmin
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the admin scope, or a signed-in session
- OpenAPI operation ID
put_admin_libraries_id_sonic_analysis- Max body
- 4 KiB
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string | |
Idempotency-Key | header | string | |
Portico-Mutation-Root | header | string |
Request body application/json · required
{
"enabled": true,
"expectedRevision": 0
}- enabledbooleanrequired
- expectedRevisionintegerrequired
Responses
200Successapplication/json
{
"available": true,
"defaultEnabled": true,
"done": 0,
"enabled": true,
"estimatedRemainingSeconds": 0,
"libraryId": "id_8h2k4q",
"model": {
"id": "id_8h2k4q",
"sha256": "string",
"version": "string"
},
"observedAtMs": 1800000,
"pausedUntilMs": 1800000,
"policyAllows": true,
"policyRevision": 0,
"reasonCode": "inference_failed",
"revision": 0,
"state": "disabled",
"total": 0
}- availablebooleanrequired
- defaultEnabledbooleanrequired
- doneintegerrequired
- enabledbooleanrequired
- estimatedRemainingSecondsinteger
- libraryIdstringrequired
modelobject
- idstringrequired
- sha256stringrequired
- versionstringrequired
- observedAtMsintegerrequired
- pausedUntilMsinteger
- policyAllowsbooleanrequired
- policyRevisionintegerrequired
- reasonCodestringone of "inference_failed", "inference_not_verified", "runtime_or_model_missing", "scan_policy_disallows"
- revisionintegerrequired
- statestringrequiredone of "disabled", "unavailable", "complete", "paused", "analyzing"
- totalintegerrequired
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesinvalid_requestinvalid_analysisunauthorizednot_permittednot_foundrevision_requiredlibrary_configuration_conflictanalysis_conflictanalysis_unavailableinternalidempotency_conflictreceipt_expiredinvalid_mutation_keydatabase_busywriter_capacity
Example request
curl -X PUT "http://127.0.0.1:32500/v1/admin/libraries/{id}/sonic-analysis" \
-H "Authorization: Bearer $PORTICO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"enabled":true,"expectedRevision":0}'POST/v1/admin/libraries/{id}/sonic-analysis/retryRetry the installed sound analysis engineadmin
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the admin scope, or a signed-in session
- OpenAPI operation ID
post_admin_libraries_id_sonic_analysis_retry- Max body
- 1 KiB
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string |
Request body application/json · required
{}object
Responses
200Successapplication/json
{
"available": true,
"defaultEnabled": true,
"done": 0,
"enabled": true,
"estimatedRemainingSeconds": 0,
"libraryId": "id_8h2k4q",
"model": {
"id": "id_8h2k4q",
"sha256": "string",
"version": "string"
},
"observedAtMs": 1800000,
"pausedUntilMs": 1800000,
"policyAllows": true,
"policyRevision": 0,
"reasonCode": "inference_failed",
"revision": 0,
"state": "disabled",
"total": 0
}- availablebooleanrequired
- defaultEnabledbooleanrequired
- doneintegerrequired
- enabledbooleanrequired
- estimatedRemainingSecondsinteger
- libraryIdstringrequired
modelobject
- idstringrequired
- sha256stringrequired
- versionstringrequired
- observedAtMsintegerrequired
- pausedUntilMsinteger
- policyAllowsbooleanrequired
- policyRevisionintegerrequired
- reasonCodestringone of "inference_failed", "inference_not_verified", "runtime_or_model_missing", "scan_policy_disallows"
- revisionintegerrequired
- statestringrequiredone of "disabled", "unavailable", "complete", "paused", "analyzing"
- totalintegerrequired
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesinvalid_requestinvalid_analysisunauthorizednot_permittednot_foundrevision_requiredlibrary_configuration_conflictanalysis_conflictanalysis_unavailableinternaldatabase_busywriter_capacity
Example request
curl -X POST "http://127.0.0.1:32500/v1/admin/libraries/{id}/sonic-analysis/retry" \
-H "Authorization: Bearer $PORTICO_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'POST/v1/admin/libraries/{id}/sourcesRun server library sourceslibrary
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the library scope, or a signed-in session
- OpenAPI operation ID
post_admin_libraries_id_sources- Max body
- 64 KiB
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string |
Request body application/json · required
{
"acceptReplacement": true,
"classification": "string",
"expectedRemoteSource": {
"generation": 1,
"sourceId": "id_8h2k4q"
},
"expectedRevision": 0,
"followSymlinks": true,
"intervalMs": 1800000,
"name": "Fargo",
"path": "string",
"scanAfter": true
}- acceptReplacementbooleanrequired
- classificationstringrequired
expectedRemoteSourceobject
- generationintegerrequired≥ 1
- sourceIdstringrequiredlength 1–256
- expectedRevisionintegerrequired
- followSymlinksbooleanrequired
- intervalMsintegerrequired≥ 0
- namestringrequired
- pathstringrequired
- scanAfterboolean
Responses
200Successapplication/json
{
"classification": "string",
"enabled": true,
"followSymlinks": true,
"generation": 0,
"health": "string",
"id": "id_8h2k4q",
"identityConfirmed": true,
"intervalMs": 1800000,
"kind": "string",
"lastCompleteAt": "2026-10-18T19:30:00Z",
"lastProgressAt": "2026-10-18T19:30:00Z",
"libraryId": "id_8h2k4q",
"name": "Fargo",
"nextScanAt": "2026-10-18T19:30:00Z",
"path": "string",
"resolvedPath": "string"
}- classificationstringrequired
- enabledbooleanrequired
- followSymlinksbooleanrequired
- generationintegerrequired
- healthstringrequired
- idstringrequired
- identityConfirmedbooleanrequired
- intervalMsintegerrequired≥ 0
- kindstringrequired
- lastCompleteAtstringrequired
- lastProgressAtstringrequired
- libraryIdstringrequired
- namestringrequired
- nextScanAtstringrequired
- pathstringrequired
- resolvedPathstringrequired
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codessource_changedinvalid_requestunauthorizednot_permittednot_foundinternaldatabase_busywriter_capacity
Example request
curl -X POST "http://127.0.0.1:32500/v1/admin/libraries/{id}/sources" \
-H "Authorization: Bearer $PORTICO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"acceptReplacement": true,
"classification": "string",
"expectedRemoteSource": {
"generation": 1,
"sourceId": "id_8h2k4q"
},
"expectedRevision": 0,
"followSymlinks": true,
"intervalMs": 1800000,
"name": "Fargo",
"path": "string",
"scanAfter": true
}'DELETE/v1/admin/libraries/{id}/sources/{source}Remove server library sourceslibrary
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the library scope, or a signed-in session
- OpenAPI operation ID
delete_admin_libraries_id_sources_source- Max body
- 64 KiB
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string | |
sourcerequired | path | string |
Request body application/json · required
{
"expectedRevision": 0
}- expectedRevisionintegerrequired
Responses
204Success
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesinvalid_requestunauthorizednot_permittednot_foundinternaldatabase_busywriter_capacity
Example request
curl -X DELETE "http://127.0.0.1:32500/v1/admin/libraries/{id}/sources/{source}" \
-H "Authorization: Bearer $PORTICO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"expectedRevision":0}'PATCH/v1/admin/libraries/{id}/sources/{source}Change server library sourceslibrary
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the library scope, or a signed-in session
- OpenAPI operation ID
patch_admin_libraries_id_sources_source- Max body
- 64 KiB
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string | |
sourcerequired | path | string |
Request body application/json · required
{
"acceptReplacement": true,
"classification": "string",
"expectedRemoteSource": {
"generation": 1,
"sourceId": "id_8h2k4q"
},
"expectedRevision": 0,
"followSymlinks": true,
"intervalMs": 1800000,
"name": "Fargo",
"path": "string",
"scanAfter": true
}- acceptReplacementbooleanrequired
- classificationstringrequired
expectedRemoteSourceobject
- generationintegerrequired≥ 1
- sourceIdstringrequiredlength 1–256
- expectedRevisionintegerrequired
- followSymlinksbooleanrequired
- intervalMsintegerrequired≥ 0
- namestringrequired
- pathstringrequired
- scanAfterboolean
Responses
200Successapplication/json
{
"classification": "string",
"enabled": true,
"followSymlinks": true,
"generation": 0,
"health": "string",
"id": "id_8h2k4q",
"identityConfirmed": true,
"intervalMs": 1800000,
"kind": "string",
"lastCompleteAt": "2026-10-18T19:30:00Z",
"lastProgressAt": "2026-10-18T19:30:00Z",
"libraryId": "id_8h2k4q",
"name": "Fargo",
"nextScanAt": "2026-10-18T19:30:00Z",
"path": "string",
"resolvedPath": "string"
}- classificationstringrequired
- enabledbooleanrequired
- followSymlinksbooleanrequired
- generationintegerrequired
- healthstringrequired
- idstringrequired
- identityConfirmedbooleanrequired
- intervalMsintegerrequired≥ 0
- kindstringrequired
- lastCompleteAtstringrequired
- lastProgressAtstringrequired
- libraryIdstringrequired
- namestringrequired
- nextScanAtstringrequired
- pathstringrequired
- resolvedPathstringrequired
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codessource_changedinvalid_requestunauthorizednot_permittednot_foundinternaldatabase_busywriter_capacity
Example request
curl -X PATCH "http://127.0.0.1:32500/v1/admin/libraries/{id}/sources/{source}" \
-H "Authorization: Bearer $PORTICO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"acceptReplacement": true,
"classification": "string",
"expectedRemoteSource": {
"generation": 1,
"sourceId": "id_8h2k4q"
},
"expectedRevision": 0,
"followSymlinks": true,
"intervalMs": 1800000,
"name": "Fargo",
"path": "string",
"scanAfter": true
}'GET/v1/admin/libraries/{id}/sources/{source}/changesRead retained inventory changes and cursor expirylibrary
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the library scope, or a signed-in session
- OpenAPI operation ID
get_inventory_changes
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string | |
sourcerequired | path | string | |
after | query | string |
Responses
200Successapplication/json
{
"hasMore": true,
"items": [
{
"assetId": "id_8h2k4q",
"createdAt": "2026-10-18T19:30:00Z",
"jobId": "id_8h2k4q",
"kind": "string",
"objectId": "id_8h2k4q",
"revision": "r12",
"sequence": 0,
"sourceId": "id_8h2k4q"
}
],
"nextSequence": 0,
"oldestSequence": 0,
"resetRequired": true,
"sourceId": "id_8h2k4q"
}- hasMorebooleanrequired
itemsarray of objectrequired
- assetIdstringrequired
- createdAtstringrequired
- jobIdstringrequired
- kindstringrequired
- objectIdstringrequired
- revisionstringrequired
- sequenceintegerrequired
- sourceIdstringrequired
- nextSequenceintegerrequired
- oldestSequenceintegerrequired
- resetRequiredbooleanrequired
- sourceIdstringrequired
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesunauthorizednot_permittednot_foundinvalid_requestrevision_mismatchidempotency_key_reusedinternaltimeoutdatabase_busy
Example request
curl -X GET "http://127.0.0.1:32500/v1/admin/libraries/{id}/sources/{source}/changes" \
-H "Authorization: Bearer $PORTICO_API_KEY"POST/v1/admin/libraries/{id}/sources/{source}/checkRun server library sources checklibrary
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the library scope, or a signed-in session
- OpenAPI operation ID
post_admin_libraries_id_sources_source_check
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string | |
sourcerequired | path | string |
Responses
200Successapplication/json
{
"classification": "string",
"enabled": true,
"followSymlinks": true,
"generation": 0,
"health": "string",
"id": "id_8h2k4q",
"identityConfirmed": true,
"intervalMs": 1800000,
"kind": "string",
"lastCompleteAt": "2026-10-18T19:30:00Z",
"lastProgressAt": "2026-10-18T19:30:00Z",
"libraryId": "id_8h2k4q",
"name": "Fargo",
"nextScanAt": "2026-10-18T19:30:00Z",
"path": "string",
"resolvedPath": "string"
}- classificationstringrequired
- enabledbooleanrequired
- followSymlinksbooleanrequired
- generationintegerrequired
- healthstringrequired
- idstringrequired
- identityConfirmedbooleanrequired
- intervalMsintegerrequired≥ 0
- kindstringrequired
- lastCompleteAtstringrequired
- lastProgressAtstringrequired
- libraryIdstringrequired
- namestringrequired
- nextScanAtstringrequired
- pathstringrequired
- resolvedPathstringrequired
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesinvalid_requestunauthorizednot_permittednot_foundinternaldatabase_busywriter_capacity
Example request
curl -X POST "http://127.0.0.1:32500/v1/admin/libraries/{id}/sources/{source}/check" \
-H "Authorization: Bearer $PORTICO_API_KEY"POST/v1/admin/libraries/{id}/sources/{source}/scansRun server library sources scanslibrary
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the library scope, or a signed-in session
- OpenAPI operation ID
post_admin_libraries_id_sources_source_scans
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string | |
sourcerequired | path | string | |
mode | query | string |
Responses
202Successapplication/json
{
"analyzed": 0,
"error": "string",
"id": "id_8h2k4q",
"jobs": [
"string"
],
"phase": "string",
"processed": 0,
"scanMode": "string",
"sourceId": "id_8h2k4q",
"status": "string",
"warnings": 0
}- analyzedintegerrequired
- errorstring
- idstringrequired
- jobsarray of string
- phasestring
- processedintegerrequired
- scanModestring
- sourceIdstring
- statusstringrequired
- warningsintegerrequired
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesinvalid_requestunauthorizednot_permittednot_foundinternaldatabase_busywriter_capacity
Example request
curl -X POST "http://127.0.0.1:32500/v1/admin/libraries/{id}/sources/{source}/scans" \
-H "Authorization: Bearer $PORTICO_API_KEY"PUT/v1/admin/libraries/orderSave server library orderlibrary
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the library scope, or a signed-in session
- OpenAPI operation ID
put_admin_libraries_order- Max body
- 64 KiB
Parameters
| Name | In | Type | Description |
|---|---|---|---|
Idempotency-Key | header | string | |
Portico-Mutation-Root | header | string |
Request body application/json · required
{
"libraryIds": [
"string"
]
}- libraryIdsarray of stringrequired
Responses
200Successapplication/json
{
"libraryIds": [
"string"
]
}- libraryIdsarray of stringrequired
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesinvalid_requestunauthorizednot_permittednot_foundinternalidempotency_conflictreceipt_expiredinvalid_mutation_keydatabase_busywriter_capacity
Example request
curl -X PUT "http://127.0.0.1:32500/v1/admin/libraries/order" \
-H "Authorization: Bearer $PORTICO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"libraryIds":["string"]}'No operations match that filter.