Libraries
Generated libraries operations.
GET/v1/librariesList visible librariesread
- Audience
- Integrations · Native API
- Authorization
- API key or personal access token with the read scope, or a signed-in session
- OpenAPI operation ID
get_libraries
Responses
200Successapplication/json
{
"items": [
{
"defaultView": "string",
"id": "id_8h2k4q",
"kind": "string",
"name": "Fargo",
"pinned": true,
"summary": {
"counts": [
{}
],
"coverUrls": [
"https://example.com/…"
],
"empty": true,
"emptyKnown": true,
"firstScan": true,
"latestArtwork": "string",
"publicationCounts": [
{}
]
}
}
]
}itemsarray of objectrequired
- defaultViewstringrequired
- idstringrequired
- kindstringrequired
- namestringrequired
- pinnedbooleanrequired
summaryobject
countsarray of objectrequired
- atLeastbooleanrequired
- countintegerrequired
- kindstringrequired
- coverUrlsarray of stringrequired
- emptybooleanrequired
- emptyKnownbooleanrequired
- firstScanbooleanrequired
- latestArtworkstringrequired
publicationCountsarray of object
- atLeastbooleanrequired
- countintegerrequired
- kindstringrequired
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesinvalid_requestunauthorizednot_permittednot_foundrevision_mismatchinternaldatabase_busy
Example request
curl -X GET "http://127.0.0.1:32500/v1/libraries" \
-H "Authorization: Bearer $PORTICO_API_KEY"POST/v1/librariesCreate a librarylibrary
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the library scope, or a signed-in session
- OpenAPI operation ID
post_libraries- Max body
- 64 KiB
Request body application/json · required
{
"expectedRemoteSource": {
"generation": 1,
"sourceId": "id_8h2k4q"
},
"folders": [
"string"
],
"kind": "movie",
"metadataAgent": "string",
"metadataLanguage": "en",
"name": "Fargo",
"path": "string",
"scanAfter": true
}expectedRemoteSourceobject
- generationintegerrequired≥ 1
- sourceIdstringrequiredlength 1–256
- foldersarray of string1–64 items
- kindstringrequiredone of "movie", "tv", "anime", "music", "audiobook", "book", "comic"
- metadataAgentstring
- metadataLanguagestring
- namestringrequired
- pathstring
- scanAfterboolean
Responses
201Successapplication/json
{
"defaultView": "string",
"id": "id_8h2k4q",
"kind": "string",
"name": "Fargo",
"pinned": true,
"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"
}
]
}
}- defaultViewstringrequired
- idstringrequired
- kindstringrequired
- namestringrequired
- pinnedbooleanrequired
summaryobject
countsarray of objectrequired
- atLeastbooleanrequired
- countintegerrequired
- kindstringrequired
- coverUrlsarray of stringrequired
- emptybooleanrequired
- emptyKnownbooleanrequired
- firstScanbooleanrequired
- latestArtworkstringrequired
publicationCountsarray of object
- atLeastbooleanrequired
- countintegerrequired
- kindstringrequired
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/libraries" \
-H "Authorization: Bearer $PORTICO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"expectedRemoteSource": {
"generation": 1,
"sourceId": "id_8h2k4q"
},
"folders": [
"string"
],
"kind": "movie",
"metadataAgent": "string",
"metadataLanguage": "en",
"name": "Fargo",
"path": "string",
"scanAfter": true
}'GET/v1/libraries/{id}/artistsRead library artistread
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the read scope, or a signed-in session
- OpenAPI operation ID
get_libraries_id_artists
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string | |
cursor | query | string | |
limit | query | integer |
Responses
200Successapplication/json
{
"artists": [
{
"id": "id_8h2k4q",
"libraryId": "id_8h2k4q",
"name": "Fargo"
}
],
"nextCursor": "eyJvIjoyMH0"
}artistsarray of objectrequired
- idstringrequired
- libraryIdstringrequired
- namestringrequired
- nextCursorstringrequired
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/libraries/{id}/artists" \
-H "Authorization: Bearer $PORTICO_API_KEY"GET/v1/libraries/{id}/booksRead library bookread
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the read scope, or a signed-in session
- OpenAPI operation ID
get_libraries_id_books
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string | |
cursor | query | string | |
limit | query | integer |
Responses
200Successapplication/json
{
"books": [
{
"author": "string",
"id": "id_8h2k4q",
"libraryId": "id_8h2k4q",
"narrator": "string",
"posterUrl": "https://example.com/…",
"providerMatchStatus": "string",
"resume": {
"itemId": "id_8h2k4q",
"positionMs": 1800000
},
"title": "Fargo"
}
],
"nextCursor": "eyJvIjoyMH0"
}booksarray of objectrequired
- authorstring
- idstringrequired
- libraryIdstringrequired
- narratorstring
- posterUrlstring
- providerMatchStatusstringrequired
resumeobject
- itemIdstringrequired
- positionMsintegerrequired≥ 0
- titlestringrequired
- nextCursorstringrequired
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/libraries/{id}/books" \
-H "Authorization: Bearer $PORTICO_API_KEY"GET/v1/libraries/{id}/browseRead or update the selected projectionread
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the read scope, or a signed-in session
- OpenAPI operation ID
get_libraries_id_browse
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string | |
sort | query | string | |
direction | query | string | |
category | query | string | |
q | query | string | |
cursor | query | string | |
limit | query | integer |
Responses
200Successapplication/json
{
"items": [
{
"addedAt": "2026-10-18T19:30:00Z",
"audioFacts": {
"atmos": true,
"bitDepth": 0,
"channels": 0,
"codec": "string",
"layout": "string",
"lossless": true,
"sampleRate": 0
},
"available": true,
"backdropUrl": "https://example.com/…",
"bookFile": {
"bookId": "id_8h2k4q",
"bookTitle": "Fargo",
"discNumber": 0,
"localMetadata": {
"authors": [],
"description": "string",
"edition": "string",
"identifiers": [],
"language": "en",
"narrators": [],
"publishedYear": 0,
"publisher": "string",
"series": [],
"sources": {}
},
"localMetadataIssue": "string",
"localPolicy": {
"localMode": "string",
"revision": 0
},
"partNumber": 0,
"sourceBoundary": "string"
},
"durationMs": 1800000,
"durationState": "unrepresentable",
"episode": {
"airDate": "string",
"localIdentityStatus": "string",
"number": 0,
"numbering": "string",
"orderingBasis": "string",
"providerMatchStatus": "string",
"seasonId": "id_8h2k4q",
"seasonNumber": 0,
"showId": "id_8h2k4q",
"showTitle": "Fargo",
"sourceBoundary": "string"
},
"fileInfoOpening": "string",
"id": "id_8h2k4q",
"kind": "string",
"libraryId": "id_8h2k4q",
"missing": true,
"overview": "string",
"posterUrl": "https://example.com/…",
"progressMs": 1800000,
"song": {
"albumArtist": "string",
"albumId": "id_8h2k4q",
"albumTitle": "Fargo",
"artist": "string",
"discNumber": 0,
"localMetadataIssue": "string",
"providerArtist": "string",
"providerMatchStatus": "string",
"providerObservedAt": "2026-10-18T19:30:00Z",
"providerRecordingId": "id_8h2k4q",
"providerReleaseGroupId": "id_8h2k4q",
"providerReleaseId": "id_8h2k4q",
"providerReleaseStatus": "string",
"providerSourceUrl": "https://example.com/…",
"providerTitle": "Fargo",
"providerTrackId": "id_8h2k4q",
"trackNumber": 0
},
"sources": [
{
"audioCodec": "string",
"container": "string",
"durationMs": 1800000,
"height": 0,
"id": "id_8h2k4q",
"videoCodec": "string",
"width": 0
}
],
"stillUrl": "https://example.com/…",
"title": "Fargo",
"watched": true,
"year": 0
}
],
"nextCursor": "eyJvIjoyMH0"
}itemsarray of objectrequired
- addedAtstring | any | nullrequired
audioFactsobject
- atmosboolean
- bitDepthinteger
- channelsinteger
- codecstringrequired
- layoutstring
- losslessboolean
- sampleRateinteger
- availablebooleanrequired
- backdropUrlstring
bookFileobject
- bookIdstringrequired
- bookTitlestringrequired
- discNumberinteger
localMetadataobject
- authorsarray of stringrequired
- descriptionstring
- editionstring
identifiersarray of objectrequired
- schemestringrequired
- valuestringrequired
- languagestring
- narratorsarray of stringrequired
- publishedYearinteger
- publisherstring
seriesarray of objectrequired
- namestringrequired
- positionstring
- sourcesobjectrequired
- localMetadataIssuestring
localPolicyobject
- localModestringrequired
- revisionintegerrequired
- partNumberinteger
- sourceBoundarystringrequired
- durationMsinteger≥ 0
- durationStatestringone of "unrepresentable"
episodeobject
- airDatestring
- localIdentityStatusstringrequired
- numberintegerrequired
- numberingstringrequired
- orderingBasisstringrequired
- providerMatchStatusstringrequired
- seasonIdstring
- seasonNumberinteger
- showIdstringrequired
- showTitlestringrequired
- sourceBoundarystringrequired
- fileInfoOpeningstring
- idstringrequired
- kindstringrequired
- libraryIdstringrequired
- missingbooleanrequired
- overviewstring
- posterUrlstring
- progressMsintegerrequired≥ 0
songobject
- albumArtiststringrequired
- albumIdstringrequired
- albumTitlestringrequired
- artiststringrequired
- discNumberinteger
- localMetadataIssuestring
- providerArtiststring
- providerMatchStatusstringrequired
- providerObservedAtstring
- providerRecordingIdstring
- providerReleaseGroupIdstring
- providerReleaseIdstring
- providerReleaseStatusstringrequired
- providerSourceUrlstring
- providerTitlestring
- providerTrackIdstring
- trackNumberinteger
sourcesarray of object
- audioCodecstringrequired
- containerstringrequired
- durationMsintegerrequired≥ 0
- heightintegerrequired
- idstringrequired
- videoCodecstringrequired
- widthintegerrequired
- stillUrlstring
- titlestringrequired
- watchedboolean
- yearinteger
- nextCursorstringrequired
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/libraries/{id}/browse" \
-H "Authorization: Bearer $PORTICO_API_KEY"POST/v1/libraries/{id}/browseRead a window of a library pivotread
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the read scope, or a signed-in session
- OpenAPI operation ID
browse_library- Max body
- 64 KiB
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string |
Request body application/json · required
{
"cursor": "eyJvIjoyMH0",
"homeRowDisplay": "string",
"limit": 0,
"pivot": "string",
"query": null,
"range": {
"anchorId": "id_8h2k4q",
"revision": "r12",
"start": 0
},
"seek": {
"prefix": "string"
},
"selectionBasis": "string",
"sort": [
{
"direction": "string",
"field": "string",
"seed": 0
}
]
}- cursorstringrequired
- homeRowDisplaystring
- limitintegerrequired
- pivotstringrequired
- queryanyrequired
rangeobject | any | nullrequired
- anchorIdstring
- revisionstring
- startintegerrequired
seekobject | any | nullrequired
- prefixstringrequired
- selectionBasisstringpattern ^[a-f0-9]{64}$
sortarray of objectrequired
- directionstringrequired
- fieldstringrequired
- seedinteger
Responses
200Successapplication/json
{
"applied": {
"query": {
"field": "releaseDate",
"operator": "within-last-days",
"value": 1,
"variant": "relative"
},
"seek": {
"prefix": "string"
},
"sort": [
{
"direction": "string",
"field": "string",
"seed": 0
}
]
},
"displayTargets": [
{
"entryId": "id_8h2k4q",
"membershipId": "id_8h2k4q"
}
],
"entries": [
{
"absoluteNumber": 0,
"activeBeginYear": 0,
"activeEndYear": 0,
"addedAt": "2026-10-18T19:30:00Z",
"airDate": "string",
"album": {
"id": "id_8h2k4q",
"name": "Fargo"
},
"albumCount": 0,
"albumType": "string",
"artist": {
"id": "id_8h2k4q",
"name": "Fargo"
},
"artistType": "string",
"artworkPaths": [
"string"
],
"audioFacts": {
"atmos": true,
"bitDepth": 0,
"channels": 0,
"codec": "string",
"layout": "string",
"lossless": true,
"sampleRate": 0
},
"author": "string",
"available": true,
"backdropUrl": "https://example.com/…",
"badges": [
{
"bitDepth": 17,
"codec": "string",
"sampleRate": 1,
"variant": "lossless"
}
],
"bookProgress": {
"bookId": "id_8h2k4q",
"chapter": {
"endMs": 1800000,
"index": 0,
"startMs": 1800000,
"title": "Fargo"
},
"durationMs": 1800000,
"itemId": "id_8h2k4q",
"partPositionMs": 1800000,
"positionMs": 1800000,
"remainingMs": 1800000
},
"contentRating": "string",
"count": 0,
"country": "string",
"dateBased": true,
"discNumber": 0,
"displayTitle": "Fargo",
"durationMs": 1800000,
"edition": "string",
"episodeNumber": 0,
"favorite": true,
"genres": [
"string"
],
"hidden": true,
"homeActions": {
"collection": true,
"delete": true,
"details": true,
"download": true,
"editMetadata": true,
"favorite": true,
"myList": true,
"notInterested": true,
"play": true,
"played": true,
"playlist": true,
"queue": true,
"rating": true,
"refreshMetadata": true,
"removeFromContinue": true,
"selection": {
"collection": true,
"delete": true,
"download": true,
"edit": true,
"favorite": true,
"myList": true,
"play": true,
"playlist": true,
"queue": true,
"refresh": true,
"watched": true
},
"state": {
"containerRevision": 0,
"favorite": true,
"personalRevision": 0,
"rating": 0,
"watched": true,
"watchlisted": true
},
"watched": true
},
"homeTitleContext": {
"genres": [
"string"
],
"kind": "string",
"seasonCount": 0,
"year": 0
},
"id": "id_8h2k4q",
"kind": "string",
"label": "string",
"language": "en",
"lastChanged": "string",
"latestEpisode": {
"airDate": "string",
"count": 0,
"episodeNumber": 0,
"seasonNumber": 0,
"title": "Fargo"
},
"libraryId": "id_8h2k4q",
"media": {
"absoluteNumber": 0,
"activeBeginYear": 0,
"activeEndYear": 0,
"addedAt": "2026-10-18T19:30:00Z",
"airDate": "string",
"album": {
"id": "id_8h2k4q",
"name": "Fargo"
},
"albumCount": 0,
"albumType": "string",
"artist": {
"id": "id_8h2k4q",
"name": "Fargo"
},
"artistType": "string",
"artworkPaths": [
"string"
],
"audioFacts": {
"atmos": true,
"bitDepth": 0,
"channels": 0,
"codec": "string",
"layout": "string",
"lossless": true,
"sampleRate": 0
},
"author": "string",
"available": true,
"backdropUrl": "https://example.com/…",
"badges": [
{}
],
"bookProgress": {
"bookId": "id_8h2k4q",
"chapter": {},
"durationMs": 1800000,
"itemId": "id_8h2k4q",
"partPositionMs": 1800000,
"positionMs": 1800000,
"remainingMs": 1800000
},
"contentRating": "string",
"count": 0,
"country": "string",
"dateBased": true,
"discNumber": 0,
"displayTitle": "Fargo",
"durationMs": 1800000,
"edition": "string",
"episodeNumber": 0,
"favorite": true,
"genres": [
"string"
],
"homeActions": {
"collection": true,
"delete": true,
"details": true,
"download": true,
"editMetadata": true,
"favorite": true,
"myList": true,
"notInterested": true,
"play": true,
"played": true,
"playlist": true,
"queue": true,
"rating": true,
"refreshMetadata": true,
"removeFromContinue": true,
"selection": {},
"state": {},
"watched": true
},
"homeTitleContext": {
"genres": [],
"kind": "string",
"seasonCount": 0,
"year": 0
},
"id": "id_8h2k4q",
"kind": "string",
"label": "string",
"language": "en",
"lastChanged": "string",
"latestEpisode": {
"airDate": "string",
"count": 0,
"episodeNumber": 0,
"seasonNumber": 0,
"title": "Fargo"
},
"libraryId": "id_8h2k4q",
"missing": true,
"narrators": [
"string"
],
"navigation": {
"browse": {},
"category": "string",
"channelId": "id_8h2k4q",
"entityId": "id_8h2k4q",
"provenance": "string",
"sourceId": "id_8h2k4q",
"view": "string"
},
"new": true,
"origin": "string",
"overview": "string",
"overviewSource": "string",
"overviewSourceUrl": "https://example.com/…",
"pageCount": 0,
"pinned": true,
"playback": {
"itemId": "id_8h2k4q",
"startMs": 1800000
},
"plays": 0,
"posterUrl": "https://example.com/…",
"progressMs": 1800000,
"publicationType": "book",
"publishedYear": 0,
"publisher": "string",
"radioSeed": {
"id": "id_8h2k4q",
"kind": "string"
},
"rating": 0,
"readingMark": {
"itemId": "id_8h2k4q",
"read": true,
"revision": 0
},
"releaseDate": "string",
"removed": true,
"resolution": "string",
"role": "string",
"seasonCount": 0,
"seasonNumber": 0,
"series": [
{}
],
"show": {
"id": "id_8h2k4q",
"name": "Fargo"
},
"sortLetter": "string",
"special": true,
"stillUrl": "https://example.com/…",
"subtitle": "Fargo",
"title": "Fargo",
"totalAtLeast": 0,
"trackNumber": 0,
"unwatchedCount": 0,
"userRating": 0,
"watched": true,
"watchedCount": 0,
"watchlisted": true,
"year": 0,
"yearMax": 0,
"yearMin": 0
},
"missing": true,
"narrators": [
"string"
],
"navigation": {
"browse": {
"pivot": "string",
"query": {},
"sort": []
},
"category": "string",
"channelId": "id_8h2k4q",
"entityId": "id_8h2k4q",
"provenance": "string",
"sourceId": "id_8h2k4q",
"view": "string"
},
"new": true,
"origin": "string",
"overview": "string",
"overviewSource": "string",
"overviewSourceUrl": "https://example.com/…",
"pageCount": 0,
"pinned": true,
"playback": {
"itemId": "id_8h2k4q",
"startMs": 1800000
},
"plays": 0,
"posterUrl": "https://example.com/…",
"progressMs": 1800000,
"publicationType": "book",
"publishedYear": 0,
"publisher": "string",
"radioSeed": {
"id": "id_8h2k4q",
"kind": "string"
},
"rating": 0,
"readingMark": {
"itemId": "id_8h2k4q",
"read": true,
"revision": 0
},
"releaseDate": "string",
"removed": true,
"resolution": "string",
"role": "string",
"seasonCount": 0,
"seasonNumber": 0,
"series": [
{
"name": "Fargo",
"position": "string"
}
],
"show": {
"id": "id_8h2k4q",
"name": "Fargo"
},
"sortLetter": "string",
"special": true,
"stillUrl": "https://example.com/…",
"subtitle": "Fargo",
"title": "Fargo",
"totalAtLeast": 0,
"trackNumber": 0,
"unwatchedCount": 0,
"userRating": 0,
"watched": true,
"watchedCount": 0,
"watchlisted": true,
"year": 0,
"yearMax": 0,
"yearMin": 0
}
],
"pageInfo": {
"durationIsLowerBound": true,
"durationMs": 1800000,
"hasMore": true,
"nextCursor": "eyJvIjoyMH0",
"revision": "r12",
"start": 0,
"total": 0,
"totalIsLowerBound": true
},
"pivot": "string",
"positionIndex": [
{
"index": 0,
"key": "string"
}
],
"variant": "ready",
"wholeSelection": {
"catalogRevision": "r12",
"selector": {
"query": {
"filter": null,
"libraryId": "id_8h2k4q",
"pivot": "string",
"selectionBasis": "string",
"sort": [
{}
]
}
},
"total": 0,
"types": [
{
"capabilityCounts": {
"collection": 0,
"delete": 0,
"download": 0,
"edit": 0,
"favorite": 0,
"myList": 0,
"play": 0,
"playlist": 0,
"queue": 0,
"refresh": 0,
"watched": 0
},
"count": 0,
"kind": "string",
"libraries": [
{}
]
}
],
"unavailableActions": {
"delete": "unsupported-sort",
"metadataPreview": "preview-limit",
"play": "unsupported-sort",
"playlist": "unsupported-sort",
"queue": "unsupported-sort"
}
},
"wholeSelectionPreparing": {
"kind": "browse-selection-preparing",
"queryId": "id_8h2k4q",
"retryAfterMs": 1800000,
"state": "preparing",
"variant": "preparing"
},
"wholeSelectionUnavailable": {
"reason": "search_not_bounded"
}
}appliedobjectrequired
queryobject | any | nullrequired
- fieldstringrequiredone of "releaseDate", "dateAdded", "lastPlayedAt"
- operatorstringrequiredone of "within-last-days"
- valueintegerrequired1–36500
- variant"relative"required
seekobject
- prefixstringrequired
sortarray of objectrequired
- directionstringrequired
- fieldstringrequired
- seedinteger
displayTargetsarray of object
- entryIdstringrequired
- membershipIdstringrequired
entriesarray of objectrequired
- absoluteNumberinteger
- activeBeginYearinteger
- activeEndYearinteger
- addedAtstring | any | null
- airDatestring
albumobject
- idstringrequired
- namestringrequired
- albumCountinteger
- albumTypestring
artistobject
- idstringrequired
- namestringrequired
- artistTypestring
- artworkPathsarray of string
audioFactsobject
- atmosboolean
- bitDepthinteger
- channelsinteger
- codecstringrequired
- layoutstring
- losslessboolean
- sampleRateinteger
- authorstring
- availableboolean
- backdropUrlstring
badgesarray of object0–2 items
- bitDepthintegerrequired≥ 17
- codecstringrequiredpattern ^[A-Za-z0-9_.+-]{1,64}$
- sampleRateintegerrequired≥ 1
- variant"lossless"required
bookProgressobject
- bookIdstringrequired
chapterobject
- endMsintegerrequired
- indexintegerrequired
- startMsintegerrequired
- titlestringrequired
- durationMsinteger
- itemIdstringrequired
- partPositionMsintegerrequired
- positionMsinteger
- remainingMsinteger
- contentRatingstring
- countinteger
- countrystring
- dateBasedboolean
- discNumberinteger
- displayTitlestring
- durationMsinteger≥ 0
- editionstring
- episodeNumberinteger
- favoriteboolean
- genresarray of string
- hiddenboolean | any | null
homeActionsobject
- collectionbooleanrequired
- deletebooleanrequired
- detailsbooleanrequired
- downloadbooleanrequired
- editMetadatabooleanrequired
- favoritebooleanrequired
- myListbooleanrequired
- notInterestedboolean
- playbooleanrequired
- playedbooleanrequired
- playlistbooleanrequired
- queuebooleanrequired
- ratingbooleanrequired
- refreshMetadatabooleanrequired
- removeFromContinueboolean
selectionobjectrequired
- collectionbooleanrequired
- deletebooleanrequired
- downloadbooleanrequired
- editbooleanrequired
- favoritebooleanrequired
- myListbooleanrequired
- playbooleanrequired
- playlistbooleanrequired
- queuebooleanrequired
- refreshbooleanrequired
- watchedbooleanrequired
stateobjectrequired
- containerRevisionintegerrequired
- favoritebooleanrequired
- personalRevisionintegerrequired
- ratingnumber | any | nullrequired
- watchedbooleanrequired
- watchlistedbooleanrequired
- watchedbooleanrequired
homeTitleContextobject
- genresarray of stringrequired
- kindstringrequired
- seasonCountinteger
- yearinteger
- idstringrequired
- kindstringrequired
- labelstring
- languagestring
- lastChangedstring
latestEpisodeobject
- airDatestringrequired
- countintegerrequired
- episodeNumberintegerrequired
- seasonNumberinteger
- titlestring
- libraryIdstring
mediaobject
- absoluteNumberinteger
- activeBeginYearinteger
- activeEndYearinteger
- addedAtstring | any | nullrequired
- airDatestring
albumobject
- idstringrequired
- namestringrequired
- albumCountinteger
- albumTypestring
artistobject
- idstringrequired
- namestringrequired
- artistTypestring
- artworkPathsarray of string
audioFactsobject
- atmosboolean
- bitDepthinteger
- channelsinteger
- codecstringrequired
- layoutstring
- losslessboolean
- sampleRateinteger
- authorstring
- availableboolean
- backdropUrlstring
badgesarray of object0–2 items
- bitDepthintegerrequired≥ 17
- codecstringrequiredpattern ^[A-Za-z0-9_.+-]{1,64}$
- sampleRateintegerrequired≥ 1
- variant"lossless"required
bookProgressobject
- bookIdstringrequired
chapterobject
- endMsintegerrequired
- indexintegerrequired
- startMsintegerrequired
- titlestringrequired
- durationMsinteger
- itemIdstringrequired
- partPositionMsintegerrequired
- positionMsinteger
- remainingMsinteger
- contentRatingstring
- countinteger
- countrystring
- dateBasedboolean
- discNumberinteger
- displayTitlestring
- durationMsinteger≥ 0
- editionstring
- episodeNumberinteger
- favoriteboolean
- genresarray of string
homeActionsobject
- collectionbooleanrequired
- deletebooleanrequired
- detailsbooleanrequired
- downloadbooleanrequired
- editMetadatabooleanrequired
- favoritebooleanrequired
- myListbooleanrequired
- notInterestedboolean
- playbooleanrequired
- playedbooleanrequired
- playlistbooleanrequired
- queuebooleanrequired
- ratingbooleanrequired
- refreshMetadatabooleanrequired
- removeFromContinueboolean
selectionobjectrequired
- collectionbooleanrequired
- deletebooleanrequired
- downloadbooleanrequired
- editbooleanrequired
- favoritebooleanrequired
- myListbooleanrequired
- playbooleanrequired
- playlistbooleanrequired
- queuebooleanrequired
- refreshbooleanrequired
- watchedbooleanrequired
stateobjectrequired
- containerRevisionintegerrequired
- favoritebooleanrequired
- personalRevisionintegerrequired
- ratingnumber | any | nullrequired
- watchedbooleanrequired
- watchlistedbooleanrequired
- watchedbooleanrequired
homeTitleContextobject
- genresarray of stringrequired
- kindstringrequired
- seasonCountinteger
- yearinteger
- idstringrequired
- kindstringrequired
- labelstring
- languagestring
- lastChangedstring
latestEpisodeobject
- airDatestringrequired
- countintegerrequired
- episodeNumberintegerrequired
- seasonNumberinteger
- titlestring
- libraryIdstring
- missingbooleanrequired
- narratorsarray of string
navigationobject
browseobject
- pivotstringrequiredlength 1–256
- queryobject
sortarray of objectrequired0–1 items
- directionstringrequiredone of "asc", "desc"
- fieldstringrequired
- categorystring
- channelIdstring
- entityIdstring
- provenancestring
- sourceIdstring
- viewstringrequired
- newboolean
- originstring
- overviewstring
- overviewSourcestring
- overviewSourceUrlstring
- pageCountinteger
- pinnedboolean
playbackobject
- itemIdstringrequired
- startMsinteger≥ 0
- playsinteger
- posterUrlstring
- progressMsinteger≥ 0
- publicationTypestringone of "book", "magazine", "newspaper"
- publishedYearinteger
- publisherstring
radioSeedobject
- idstringrequired
- kindstringrequired
- ratingnumber
readingMarkobject
- itemIdstringrequired
- readbooleanrequired
- revisionintegerrequired
- releaseDatestring
- removedboolean
- resolutionstring
- rolestring
- seasonCountinteger
- seasonNumberinteger
seriesarray of object
- namestringrequired
- positionstring
showobject
- idstringrequired
- namestringrequired
- sortLetterstring
- specialboolean
- stillUrlstring
- subtitlestring
- titlestringrequired
- totalAtLeastinteger
- trackNumberinteger
- unwatchedCountinteger
- userRatinginteger | any | null
- watchedboolean
- watchedCountinteger
- watchlistedboolean
- yearinteger
- yearMaxinteger
- yearMininteger
- missingboolean
- narratorsarray of string
navigationobject
browseobject
- pivotstringrequiredlength 1–256
- queryobject
sortarray of objectrequired0–1 items
- directionstringrequiredone of "asc", "desc"
- fieldstringrequired
- categorystring
- channelIdstring
- entityIdstring
- provenancestring
- sourceIdstring
- viewstringrequired
- newboolean
- originstring
- overviewstring
- overviewSourcestring
- overviewSourceUrlstring
- pageCountinteger
- pinnedboolean
playbackobject
- itemIdstringrequired
- startMsinteger≥ 0
- playsinteger
- posterUrlstring
- progressMsinteger≥ 0
- publicationTypestringone of "book", "magazine", "newspaper"
- publishedYearinteger
- publisherstring
radioSeedobject
- idstringrequired
- kindstringrequired
- ratingnumber
readingMarkobject
- itemIdstringrequired
- readbooleanrequired
- revisionintegerrequired
- releaseDatestring
- removedboolean
- resolutionstring
- rolestring
- seasonCountinteger
- seasonNumberinteger
seriesarray of object
- namestringrequired
- positionstring
showobject
- idstringrequired
- namestringrequired
- sortLetterstring
- specialboolean
- stillUrlstring
- subtitlestring
- titlestring
- totalAtLeastinteger
- trackNumberinteger
- unwatchedCountinteger
- userRatinginteger | any | null
- watchedboolean
- watchedCountinteger
- watchlistedboolean
- yearinteger
- yearMaxinteger
- yearMininteger
pageInfoobjectrequired
- durationIsLowerBoundbooleanrequired
- durationMsintegerrequired
- hasMorebooleanrequired
- nextCursorstringrequired
- revisionstringrequired
- startintegerrequired
- totalintegerrequired
- totalIsLowerBoundbooleanrequired
- pivotstringrequired
positionIndexarray of objectrequired
- indexintegerrequired
- keystringrequired
- variant"ready"required
wholeSelectionobject
- catalogRevisionstringrequired
selectorobjectrequired
queryobjectrequired
- filterany
- libraryIdstringrequired
- pivotstringrequired
- selectionBasisstringpattern ^[a-f0-9]{64}$
sortarray of object
- directionstringrequired
- fieldstringrequired
- seedinteger
- totalintegerrequired
typesarray of objectrequired
capabilityCountsobjectrequired
- collectionintegerrequired
- deleteintegerrequired
- downloadintegerrequired
- editintegerrequired
- favoriteintegerrequired
- myListintegerrequired
- playintegerrequired
- playlistintegerrequired
- queueintegerrequired
- refreshintegerrequired
- watchedintegerrequired
- countintegerrequired
- kindstringrequired
librariesarray of objectrequired
- countintegerrequired
- libraryIdstringrequired
unavailableActionsobject
- deletestringone of "unsupported-sort"
- metadataPreviewstringone of "preview-limit"
- playstringone of "unsupported-sort"
- playliststringone of "unsupported-sort"
- queuestringone of "unsupported-sort"
wholeSelectionPreparingobject
- kindstringrequiredone of "browse-selection-preparing"
- queryIdstringrequiredlength 1–128
- retryAfterMsintegerrequired≥ 1
- statestringrequiredone of "preparing"
- variant"preparing"required
wholeSelectionUnavailableobject
- reasonstringrequiredone of "search_not_bounded"
202Successapplication/json
{
"kind": "reading-browse-preparing",
"queryId": "id_8h2k4q",
"retryAfterMs": 1800000,
"state": "preparing",
"variant": "preparing"
}- kind"reading-browse-preparing"required
- queryIdstringrequiredlength 1–256pattern ^[A-Za-z0-9_-]+$
- retryAfterMsintegerrequired≥ 1
- state"preparing"required
- variant"preparing"required
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesinvalid_requestunauthorizednot_permittednot_foundinternalrevision_mismatchstale_continuationrate_limitedsearch_busydatabase_busywriter_capacity
Example request
curl -X POST "http://127.0.0.1:32500/v1/libraries/{id}/browse" \
-H "Authorization: Bearer $PORTICO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"cursor": "eyJvIjoyMH0",
"homeRowDisplay": "string",
"limit": 0,
"pivot": "string",
"query": null,
"range": {
"anchorId": "id_8h2k4q",
"revision": "r12",
"start": 0
},
"seek": {
"prefix": "string"
},
"selectionBasis": "string",
"sort": [
{
"direction": "string",
"field": "string",
"seed": 0
}
]
}'GET/v1/libraries/{id}/browse-capabilitiesRead library browse capabilitiesread
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the read scope, or a signed-in session
- OpenAPI operation ID
get_libraries_id_browse_capabilities
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string | |
pivot | query | string |
Responses
200Successapplication/json
{
"fields": [
{
"allowedValues": [
"string"
],
"applicableKinds": [
"string"
],
"complexity": "string",
"controlHint": "string",
"cost": "string",
"facetSource": {
"endpoint": "string",
"field": "string"
},
"id": "id_8h2k4q",
"labelKey": "string",
"operators": [
"string"
],
"type": "string"
}
],
"library": {
"defaultView": "string",
"id": "id_8h2k4q",
"kind": "string",
"name": "Fargo",
"pinned": true,
"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"
}
]
}
},
"pivots": [
{
"aggregate": "string",
"browsable": true,
"defaultSort": [
{
"direction": "string",
"field": "string",
"seed": 0
}
],
"entityKinds": [
"string"
],
"facetSource": {
"endpoint": "string",
"field": "string"
},
"filters": [
"string"
],
"id": "id_8h2k4q",
"labelKey": "string",
"members": true,
"paging": "string",
"sorts": [
"string"
],
"supportedViews": [
"string"
]
}
],
"queryLimits": {
"cursorTtlMs": 1800000,
"defaultLimit": 0,
"maximumBytes": 0,
"maximumClauses": 0,
"maximumDepth": 0,
"maximumLimit": 0,
"maximumSorts": 0
},
"quickFilters": [
{
"id": "id_8h2k4q",
"labelKey": "string",
"query": {
"field": "releaseDate",
"operator": "within-last-days",
"value": 1,
"variant": "relative"
}
}
],
"resolvedPivot": {
"aggregate": "string",
"browsable": true,
"defaultSort": [
{
"direction": "string",
"field": "string",
"seed": 0
}
],
"entityKinds": [
"string"
],
"facetSource": {
"endpoint": "string",
"field": "string"
},
"filters": [
"string"
],
"id": "id_8h2k4q",
"labelKey": "string",
"members": true,
"paging": "string",
"sorts": [
"string"
],
"supportedViews": [
"string"
]
},
"sorts": [
{
"applicableKinds": [
"string"
],
"defaultDirection": "string",
"directions": [
"string"
],
"expensive": true,
"id": "id_8h2k4q",
"labelKey": "string",
"ownerOnly": true,
"requiresGroup": true,
"seeded": true
}
],
"surfaces": [
{
"endpoint": "string",
"filters": [
"string"
],
"id": "id_8h2k4q",
"membershipField": "string",
"paging": "string",
"sorts": [
"string"
]
}
]
}fieldsarray of objectrequired
- allowedValuesarray of string
- applicableKindsarray of stringrequired
- complexitystringrequired
- controlHintstringrequired
- coststringrequired
facetSourceobject
- endpointstringrequired
- fieldstringrequired
- idstringrequired
- labelKeystringrequired
- operatorsarray of stringrequired
- typestringrequired
libraryobjectrequired
- defaultViewstringrequired
- idstringrequired
- kindstringrequired
- namestringrequired
- pinnedbooleanrequired
summaryobject
countsarray of objectrequired
- atLeastbooleanrequired
- countintegerrequired
- kindstringrequired
- coverUrlsarray of stringrequired
- emptybooleanrequired
- emptyKnownbooleanrequired
- firstScanbooleanrequired
- latestArtworkstringrequired
publicationCountsarray of object
- atLeastbooleanrequired
- countintegerrequired
- kindstringrequired
pivotsarray of objectrequired
- aggregatestring
- browsablebooleanrequired
defaultSortarray of objectrequired
- directionstringrequired
- fieldstringrequired
- seedinteger
- entityKindsarray of stringrequired
facetSourceobject
- endpointstringrequired
- fieldstringrequired
- filtersarray of stringrequired
- idstringrequired
- labelKeystringrequired
- membersboolean
- pagingstringrequired
- sortsarray of stringrequired
- supportedViewsarray of stringrequired
queryLimitsobjectrequired
- cursorTtlMsintegerrequired
- defaultLimitintegerrequired
- maximumBytesintegerrequired
- maximumClausesintegerrequired
- maximumDepthintegerrequired
- maximumLimitintegerrequired
- maximumSortsintegerrequired
quickFiltersarray of objectrequired
- idstringrequired
- labelKeystringrequired
queryobject | any | nullrequired
- fieldstringrequiredone of "releaseDate", "dateAdded", "lastPlayedAt"
- operatorstringrequiredone of "within-last-days"
- valueintegerrequired1–36500
- variant"relative"required
resolvedPivotobject
- aggregatestring
- browsablebooleanrequired
defaultSortarray of objectrequired
- directionstringrequired
- fieldstringrequired
- seedinteger
- entityKindsarray of stringrequired
facetSourceobject
- endpointstringrequired
- fieldstringrequired
- filtersarray of stringrequired
- idstringrequired
- labelKeystringrequired
- membersboolean
- pagingstringrequired
- sortsarray of stringrequired
- supportedViewsarray of stringrequired
sortsarray of objectrequired
- applicableKindsarray of stringrequired
- defaultDirectionstringrequired
- directionsarray of stringrequired
- expensivebooleanrequired
- idstringrequired
- labelKeystringrequired
- ownerOnlybooleanrequired
- requiresGroupbooleanrequired
- seededbooleanrequired
surfacesarray of objectrequired
- endpointstringrequired
- filtersarray of stringrequired
- idstringrequired
- membershipFieldstring
- pagingstringrequired
- sortsarray of stringrequired
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesinvalid_requestunauthorizednot_permittednot_foundrevision_mismatchinternaldatabase_busy
Example request
curl -X GET "http://127.0.0.1:32500/v1/libraries/{id}/browse-capabilities" \
-H "Authorization: Bearer $PORTICO_API_KEY"DELETE/v1/libraries/{id}/browse-selection-queries/{queryId}Release this caller's whole-view selection demandread
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the read scope, or a signed-in session
- OpenAPI operation ID
delete_library_browse_selection_query
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string | |
queryIdrequired | path | string |
Responses
204Success
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesinvalid_requestunauthorizednot_permittednot_foundstale_continuationrate_limitedinternaldatabase_busywriter_capacity
Example request
curl -X DELETE "http://127.0.0.1:32500/v1/libraries/{id}/browse-selection-queries/{queryId}" \
-H "Authorization: Bearer $PORTICO_API_KEY"GET/v1/libraries/{id}/browse-selection-queries/{queryId}Read an exact whole-view selection preparationread
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the read scope, or a signed-in session
- OpenAPI operation ID
get_library_browse_selection_query
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string | |
queryIdrequired | path | string |
Responses
200Successapplication/json
{
"catalogRevision": "r12",
"selector": {
"query": {
"filter": null,
"libraryId": "id_8h2k4q",
"pivot": "string",
"selectionBasis": "string",
"sort": [
{
"direction": "string",
"field": "string",
"seed": 0
}
]
}
},
"total": 0,
"types": [
{
"capabilityCounts": {
"collection": 0,
"delete": 0,
"download": 0,
"edit": 0,
"favorite": 0,
"myList": 0,
"play": 0,
"playlist": 0,
"queue": 0,
"refresh": 0,
"watched": 0
},
"count": 0,
"kind": "string",
"libraries": [
{
"count": 0,
"libraryId": "id_8h2k4q"
}
]
}
],
"unavailableActions": {
"delete": "unsupported-sort",
"metadataPreview": "preview-limit",
"play": "unsupported-sort",
"playlist": "unsupported-sort",
"queue": "unsupported-sort"
},
"variant": "ready"
}- catalogRevisionstringrequired
selectorobjectrequired
queryobjectrequired
- filterany
- libraryIdstringrequired
- pivotstringrequired
- selectionBasisstringrequiredpattern ^[a-f0-9]{64}$
sortarray of object
- directionstringrequired
- fieldstringrequired
- seedinteger
- totalintegerrequired
typesarray of objectrequired
capabilityCountsobjectrequired
- collectionintegerrequired
- deleteintegerrequired
- downloadintegerrequired
- editintegerrequired
- favoriteintegerrequired
- myListintegerrequired
- playintegerrequired
- playlistintegerrequired
- queueintegerrequired
- refreshintegerrequired
- watchedintegerrequired
- countintegerrequired
- kindstringrequired
librariesarray of objectrequired
- countintegerrequired
- libraryIdstringrequired
unavailableActionsobject
- deletestringone of "unsupported-sort"
- metadataPreviewstringone of "preview-limit"
- playstringone of "unsupported-sort"
- playliststringone of "unsupported-sort"
- queuestringone of "unsupported-sort"
- variant"ready"required
202Successapplication/json
{
"kind": "browse-selection-preparing",
"queryId": "id_8h2k4q",
"retryAfterMs": 1800000,
"state": "preparing",
"variant": "preparing"
}- kindstringrequiredone of "browse-selection-preparing"
- queryIdstringrequiredlength 1–128
- retryAfterMsintegerrequired≥ 1
- statestringrequiredone of "preparing"
- variant"preparing"required
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesinvalid_requestunauthorizednot_permittednot_foundstale_continuationrate_limitedinternaldatabase_busy
Example request
curl -X GET "http://127.0.0.1:32500/v1/libraries/{id}/browse-selection-queries/{queryId}" \
-H "Authorization: Bearer $PORTICO_API_KEY"POST/v1/libraries/{id}/browse/countsRead bounded counts for filter relax suggestionsread
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the read scope, or a signed-in session
- OpenAPI operation ID
browse_library_counts- Max body
- 64 KiB
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string |
Request body application/json · required
{
"pivot": "string",
"queries": [
{
"id": "id_8h2k4q",
"query": {
"field": "releaseDate",
"operator": "within-last-days",
"value": 1,
"variant": "relative"
}
}
]
}- pivotstringrequired
queriesarray of objectrequired
- idstringrequired
queryobject | any | nullrequired
- fieldstringrequiredone of "releaseDate", "dateAdded", "lastPlayedAt"
- operatorstringrequiredone of "within-last-days"
- valueintegerrequired1–36500
- variant"relative"required
Responses
200Successapplication/json
{
"counts": [
{
"id": "id_8h2k4q",
"revision": "r12",
"total": 0,
"totalIsLowerBound": true
}
]
}countsarray of objectrequired
- idstringrequired
- revisionstringrequired
- totalintegerrequired
- totalIsLowerBoundbooleanrequired
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesinvalid_requestinvalid_queryunauthorizednot_permittednot_foundstale_continuationinternalrevision_mismatchdatabase_busywriter_capacity
Example request
curl -X POST "http://127.0.0.1:32500/v1/libraries/{id}/browse/counts" \
-H "Authorization: Bearer $PORTICO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"pivot":"string","queries":[{"id":"id_8h2k4q","query":{"field":"releaseDate","operator":"within-last-days","value":1,"variant":"relative"}}]}'GET/v1/libraries/{id}/categoriesRead library categoriesread
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the read scope, or a signed-in session
- OpenAPI operation ID
get_libraries_id_categories
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string |
Responses
200Successapplication/json
{
"categories": [
{
"artworkPaths": [
"string"
],
"count": 0,
"id": "id_8h2k4q",
"name": "Fargo"
}
]
}categoriesarray of objectrequired
- artworkPathsarray of string
- countintegerrequired
- idstringrequired
- namestringrequired
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/libraries/{id}/categories" \
-H "Authorization: Bearer $PORTICO_API_KEY"GET/v1/libraries/{id}/collectionsRead library collectionsread
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the read scope, or a signed-in session
- OpenAPI operation ID
get_libraries_id_collections
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string | |
cursor | query | string | |
limit | query | integer |
Responses
200Successapplication/json
{
"collections": [
{
"id": "id_8h2k4q",
"itemCount": 0,
"libraryId": "id_8h2k4q",
"name": "Fargo",
"origin": "string",
"revision": 0
}
],
"nextCursor": "eyJvIjoyMH0"
}collectionsarray of objectrequired
- idstringrequired
- itemCountintegerrequired
- libraryIdstringrequired
- namestringrequired
- originstringrequired
- revisionintegerrequired
- nextCursorstringrequired
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/libraries/{id}/collections" \
-H "Authorization: Bearer $PORTICO_API_KEY"POST/v1/libraries/{id}/collectionsRun library collectionslibrary
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the library scope, or a signed-in session
- OpenAPI operation ID
post_libraries_id_collections- Max body
- 64 KiB
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string |
Request body application/json · required
{
"name": "Fargo"
}- namestringrequired
Responses
201Successapplication/json
{
"id": "id_8h2k4q",
"itemCount": 0,
"libraryId": "id_8h2k4q",
"name": "Fargo",
"origin": "string",
"revision": 0
}- idstringrequired
- itemCountintegerrequired
- libraryIdstringrequired
- namestringrequired
- originstringrequired
- revisionintegerrequired
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/libraries/{id}/collections" \
-H "Authorization: Bearer $PORTICO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Fargo"}'GET/v1/libraries/{id}/contentRead or update the selected projectionread
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the read scope, or a signed-in session
- OpenAPI operation ID
get_libraries_id_content
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string | |
view | query | string | |
entityId | query | string | |
sort | query | string | |
direction | query | string | |
category | query | string | |
q | query | string | |
cursor | query | string | |
limit | query | integer | |
start | query | string | |
section | query | string |
Responses
200Successapplication/json
{
"actions": [
"string"
],
"empty": {
"fallback": "string",
"key": "string",
"params": {
"key": "string"
}
},
"entity": {
"absoluteNumber": 0,
"activeBeginYear": 0,
"activeEndYear": 0,
"addedAt": "2026-10-18T19:30:00Z",
"airDate": "string",
"album": {
"id": "id_8h2k4q",
"name": "Fargo"
},
"albumCount": 0,
"albumType": "string",
"artist": {
"id": "id_8h2k4q",
"name": "Fargo"
},
"artistType": "string",
"artworkPaths": [
"string"
],
"audioFacts": {
"atmos": true,
"bitDepth": 0,
"channels": 0,
"codec": "string",
"layout": "string",
"lossless": true,
"sampleRate": 0
},
"author": "string",
"available": true,
"backdropUrl": "https://example.com/…",
"badges": [
{
"bitDepth": 17,
"codec": "string",
"sampleRate": 1,
"variant": "lossless"
}
],
"bookProgress": {
"bookId": "id_8h2k4q",
"chapter": {
"endMs": 1800000,
"index": 0,
"startMs": 1800000,
"title": "Fargo"
},
"durationMs": 1800000,
"itemId": "id_8h2k4q",
"partPositionMs": 1800000,
"positionMs": 1800000,
"remainingMs": 1800000
},
"contentRating": "string",
"count": 0,
"country": "string",
"dateBased": true,
"discNumber": 0,
"displayTitle": "Fargo",
"durationMs": 1800000,
"edition": "string",
"episodeNumber": 0,
"favorite": true,
"genres": [
"string"
],
"hidden": true,
"homeActions": {
"collection": true,
"delete": true,
"details": true,
"download": true,
"editMetadata": true,
"favorite": true,
"myList": true,
"notInterested": true,
"play": true,
"played": true,
"playlist": true,
"queue": true,
"rating": true,
"refreshMetadata": true,
"removeFromContinue": true,
"selection": {
"collection": true,
"delete": true,
"download": true,
"edit": true,
"favorite": true,
"myList": true,
"play": true,
"playlist": true,
"queue": true,
"refresh": true,
"watched": true
},
"state": {
"containerRevision": 0,
"favorite": true,
"personalRevision": 0,
"rating": 0,
"watched": true,
"watchlisted": true
},
"watched": true
},
"homeTitleContext": {
"genres": [
"string"
],
"kind": "string",
"seasonCount": 0,
"year": 0
},
"id": "id_8h2k4q",
"kind": "string",
"label": "string",
"language": "en",
"lastChanged": "string",
"latestEpisode": {
"airDate": "string",
"count": 0,
"episodeNumber": 0,
"seasonNumber": 0,
"title": "Fargo"
},
"libraryId": "id_8h2k4q",
"media": {
"absoluteNumber": 0,
"activeBeginYear": 0,
"activeEndYear": 0,
"addedAt": "2026-10-18T19:30:00Z",
"airDate": "string",
"album": {
"id": "id_8h2k4q",
"name": "Fargo"
},
"albumCount": 0,
"albumType": "string",
"artist": {
"id": "id_8h2k4q",
"name": "Fargo"
},
"artistType": "string",
"artworkPaths": [
"string"
],
"audioFacts": {
"atmos": true,
"bitDepth": 0,
"channels": 0,
"codec": "string",
"layout": "string",
"lossless": true,
"sampleRate": 0
},
"author": "string",
"available": true,
"backdropUrl": "https://example.com/…",
"badges": [
{
"bitDepth": 17,
"codec": "string",
"sampleRate": 1,
"variant": "lossless"
}
],
"bookProgress": {
"bookId": "id_8h2k4q",
"chapter": {
"endMs": 1800000,
"index": 0,
"startMs": 1800000,
"title": "Fargo"
},
"durationMs": 1800000,
"itemId": "id_8h2k4q",
"partPositionMs": 1800000,
"positionMs": 1800000,
"remainingMs": 1800000
},
"contentRating": "string",
"count": 0,
"country": "string",
"dateBased": true,
"discNumber": 0,
"displayTitle": "Fargo",
"durationMs": 1800000,
"edition": "string",
"episodeNumber": 0,
"favorite": true,
"genres": [
"string"
],
"homeActions": {
"collection": true,
"delete": true,
"details": true,
"download": true,
"editMetadata": true,
"favorite": true,
"myList": true,
"notInterested": true,
"play": true,
"played": true,
"playlist": true,
"queue": true,
"rating": true,
"refreshMetadata": true,
"removeFromContinue": true,
"selection": {
"collection": true,
"delete": true,
"download": true,
"edit": true,
"favorite": true,
"myList": true,
"play": true,
"playlist": true,
"queue": true,
"refresh": true,
"watched": true
},
"state": {
"containerRevision": 0,
"favorite": true,
"personalRevision": 0,
"rating": 0,
"watched": true,
"watchlisted": true
},
"watched": true
},
"homeTitleContext": {
"genres": [
"string"
],
"kind": "string",
"seasonCount": 0,
"year": 0
},
"id": "id_8h2k4q",
"kind": "string",
"label": "string",
"language": "en",
"lastChanged": "string",
"latestEpisode": {
"airDate": "string",
"count": 0,
"episodeNumber": 0,
"seasonNumber": 0,
"title": "Fargo"
},
"libraryId": "id_8h2k4q",
"missing": true,
"narrators": [
"string"
],
"navigation": {
"browse": {
"pivot": "string",
"query": {},
"sort": []
},
"category": "string",
"channelId": "id_8h2k4q",
"entityId": "id_8h2k4q",
"provenance": "string",
"sourceId": "id_8h2k4q",
"view": "string"
},
"new": true,
"origin": "string",
"overview": "string",
"overviewSource": "string",
"overviewSourceUrl": "https://example.com/…",
"pageCount": 0,
"pinned": true,
"playback": {
"itemId": "id_8h2k4q",
"startMs": 1800000
},
"plays": 0,
"posterUrl": "https://example.com/…",
"progressMs": 1800000,
"publicationType": "book",
"publishedYear": 0,
"publisher": "string",
"radioSeed": {
"id": "id_8h2k4q",
"kind": "string"
},
"rating": 0,
"readingMark": {
"itemId": "id_8h2k4q",
"read": true,
"revision": 0
},
"releaseDate": "string",
"removed": true,
"resolution": "string",
"role": "string",
"seasonCount": 0,
"seasonNumber": 0,
"series": [
{
"name": "Fargo",
"position": "string"
}
],
"show": {
"id": "id_8h2k4q",
"name": "Fargo"
},
"sortLetter": "string",
"special": true,
"stillUrl": "https://example.com/…",
"subtitle": "Fargo",
"title": "Fargo",
"totalAtLeast": 0,
"trackNumber": 0,
"unwatchedCount": 0,
"userRating": 0,
"watched": true,
"watchedCount": 0,
"watchlisted": true,
"year": 0,
"yearMax": 0,
"yearMin": 0
},
"missing": true,
"narrators": [
"string"
],
"navigation": {
"browse": {
"pivot": "string",
"query": {
"key": null
},
"sort": [
{}
]
},
"category": "string",
"channelId": "id_8h2k4q",
"entityId": "id_8h2k4q",
"provenance": "string",
"sourceId": "id_8h2k4q",
"view": "string"
},
"new": true,
"origin": "string",
"overview": "string",
"overviewSource": "string",
"overviewSourceUrl": "https://example.com/…",
"pageCount": 0,
"pinned": true,
"playback": {
"itemId": "id_8h2k4q",
"startMs": 1800000
},
"plays": 0,
"posterUrl": "https://example.com/…",
"progressMs": 1800000,
"publicationType": "book",
"publishedYear": 0,
"publisher": "string",
"radioSeed": {
"id": "id_8h2k4q",
"kind": "string"
},
"rating": 0,
"readingMark": {
"itemId": "id_8h2k4q",
"read": true,
"revision": 0
},
"releaseDate": "string",
"removed": true,
"resolution": "string",
"role": "string",
"seasonCount": 0,
"seasonNumber": 0,
"series": [
{
"name": "Fargo",
"position": "string"
}
],
"show": {
"id": "id_8h2k4q",
"name": "Fargo"
},
"sortLetter": "string",
"special": true,
"stillUrl": "https://example.com/…",
"subtitle": "Fargo",
"title": "Fargo",
"totalAtLeast": 0,
"trackNumber": 0,
"unwatchedCount": 0,
"userRating": 0,
"watched": true,
"watchedCount": 0,
"watchlisted": true,
"year": 0,
"yearMax": 0,
"yearMin": 0
},
"filters": [
{
"id": "id_8h2k4q",
"labelKey": "string",
"options": [
{
"count": 0,
"id": "id_8h2k4q",
"label": "string"
}
]
}
],
"heading": {
"fallback": "string",
"key": "string",
"params": {
"key": "string"
}
},
"listening": {
"actions": [
"string"
],
"resume": {
"itemId": "id_8h2k4q",
"positionMs": 1800000
},
"resumeUnavailable": true,
"target": {
"id": "id_8h2k4q",
"kind": "string",
"libraryId": "id_8h2k4q"
}
},
"navigation": [
{
"id": "id_8h2k4q",
"labelKey": "string",
"view": "string"
}
],
"playlistRevision": 0,
"query": {
"category": "string",
"direction": "string",
"limit": 0,
"q": "string",
"searchMode": "string",
"sort": "string"
},
"revision": {
"catalog": 0,
"viewer": 0
},
"scope": {
"entityId": "id_8h2k4q",
"libraryId": "id_8h2k4q",
"libraryKind": "string",
"serverId": "id_8h2k4q",
"view": "string",
"viewerFence": "string"
},
"sections": [
{
"entries": [
{
"absoluteNumber": 0,
"activeBeginYear": 0,
"activeEndYear": 0,
"addedAt": "2026-10-18T19:30:00Z",
"airDate": "string",
"album": {},
"albumCount": 0,
"albumType": "string",
"artist": {},
"artistType": "string",
"artworkPaths": [],
"audioFacts": {},
"author": "string",
"available": true,
"backdropUrl": "https://example.com/…",
"badges": [],
"bookProgress": {},
"contentRating": "string",
"count": 0,
"country": "string",
"dateBased": true,
"discNumber": 0,
"displayTitle": "Fargo",
"durationMs": 1800000,
"edition": "string",
"episodeNumber": 0,
"favorite": true,
"genres": [],
"hidden": true,
"homeActions": {},
"homeTitleContext": {},
"id": "id_8h2k4q",
"kind": "string",
"label": "string",
"language": "en",
"lastChanged": "string",
"latestEpisode": {},
"libraryId": "id_8h2k4q",
"media": {},
"missing": true,
"narrators": [],
"navigation": {},
"new": true,
"origin": "string",
"overview": "string",
"overviewSource": "string",
"overviewSourceUrl": "https://example.com/…",
"pageCount": 0,
"pinned": true,
"playback": {},
"plays": 0,
"posterUrl": "https://example.com/…",
"progressMs": 1800000,
"publicationType": "book",
"publishedYear": 0,
"publisher": "string",
"radioSeed": {},
"rating": 0,
"readingMark": {},
"releaseDate": "string",
"removed": true,
"resolution": "string",
"role": "string",
"seasonCount": 0,
"seasonNumber": 0,
"series": [],
"show": {},
"sortLetter": "string",
"special": true,
"stillUrl": "https://example.com/…",
"subtitle": "Fargo",
"title": "Fargo",
"totalAtLeast": 0,
"trackNumber": 0,
"unwatchedCount": 0,
"userRating": 0,
"watched": true,
"watchedCount": 0,
"watchlisted": true,
"year": 0,
"yearMax": 0,
"yearMin": 0
}
],
"heading": {
"fallback": "string",
"key": "string",
"params": {
"key": "string"
}
},
"id": "id_8h2k4q",
"nextCursor": "eyJvIjoyMH0",
"order": {
"last": "string",
"next": "string",
"previous": "string"
},
"seeAll": {
"pivot": "string",
"query": {
"key": null
},
"sort": [
{}
]
},
"start": 0,
"totalCount": 0,
"type": "string",
"why": {
"code": "string",
"fallback": "string",
"params": {
"key": "string"
}
},
"whyTitles": [
{
"id": "id_8h2k4q",
"name": "Fargo"
}
]
}
],
"shapeCounts": {
"posters": 0,
"squares": 0
},
"sorts": [
{
"directions": [
"string"
],
"id": "id_8h2k4q",
"labelKey": "string"
}
]
}- actionsarray of string
emptyobject
- fallbackstringrequired
- keystringrequired
- paramsobject
entityobject
- absoluteNumberinteger
- activeBeginYearinteger
- activeEndYearinteger
- addedAtstring | any | null
- airDatestring
albumobject
- idstringrequired
- namestringrequired
- albumCountinteger
- albumTypestring
artistobject
- idstringrequired
- namestringrequired
- artistTypestring
- artworkPathsarray of string
audioFactsobject
- atmosboolean
- bitDepthinteger
- channelsinteger
- codecstringrequired
- layoutstring
- losslessboolean
- sampleRateinteger
- authorstring
- availableboolean
- backdropUrlstring
badgesarray of object0–2 items
- bitDepthintegerrequired≥ 17
- codecstringrequiredpattern ^[A-Za-z0-9_.+-]{1,64}$
- sampleRateintegerrequired≥ 1
- variant"lossless"required
bookProgressobject
- bookIdstringrequired
chapterobject
- endMsintegerrequired
- indexintegerrequired
- startMsintegerrequired
- titlestringrequired
- durationMsinteger
- itemIdstringrequired
- partPositionMsintegerrequired
- positionMsinteger
- remainingMsinteger
- contentRatingstring
- countinteger
- countrystring
- dateBasedboolean
- discNumberinteger
- displayTitlestring
- durationMsinteger≥ 0
- editionstring
- episodeNumberinteger
- favoriteboolean
- genresarray of string
- hiddenboolean | any | null
homeActionsobject
- collectionbooleanrequired
- deletebooleanrequired
- detailsbooleanrequired
- downloadbooleanrequired
- editMetadatabooleanrequired
- favoritebooleanrequired
- myListbooleanrequired
- notInterestedboolean
- playbooleanrequired
- playedbooleanrequired
- playlistbooleanrequired
- queuebooleanrequired
- ratingbooleanrequired
- refreshMetadatabooleanrequired
- removeFromContinueboolean
selectionobjectrequired
- collectionbooleanrequired
- deletebooleanrequired
- downloadbooleanrequired
- editbooleanrequired
- favoritebooleanrequired
- myListbooleanrequired
- playbooleanrequired
- playlistbooleanrequired
- queuebooleanrequired
- refreshbooleanrequired
- watchedbooleanrequired
stateobjectrequired
- containerRevisionintegerrequired
- favoritebooleanrequired
- personalRevisionintegerrequired
- ratingnumber | any | nullrequired
- watchedbooleanrequired
- watchlistedbooleanrequired
- watchedbooleanrequired
homeTitleContextobject
- genresarray of stringrequired
- kindstringrequired
- seasonCountinteger
- yearinteger
- idstringrequired
- kindstringrequired
- labelstring
- languagestring
- lastChangedstring
latestEpisodeobject
- airDatestringrequired
- countintegerrequired
- episodeNumberintegerrequired
- seasonNumberinteger
- titlestring
- libraryIdstring
mediaobject
- absoluteNumberinteger
- activeBeginYearinteger
- activeEndYearinteger
- addedAtstring | any | nullrequired
- airDatestring
albumobject
- idstringrequired
- namestringrequired
- albumCountinteger
- albumTypestring
artistobject
- idstringrequired
- namestringrequired
- artistTypestring
- artworkPathsarray of string
audioFactsobject
- atmosboolean
- bitDepthinteger
- channelsinteger
- codecstringrequired
- layoutstring
- losslessboolean
- sampleRateinteger
- authorstring
- availableboolean
- backdropUrlstring
badgesarray of object0–2 items
- bitDepthintegerrequired≥ 17
- codecstringrequiredpattern ^[A-Za-z0-9_.+-]{1,64}$
- sampleRateintegerrequired≥ 1
- variant"lossless"required
bookProgressobject
- bookIdstringrequired
chapterobject
- endMsintegerrequired
- indexintegerrequired
- startMsintegerrequired
- titlestringrequired
- durationMsinteger
- itemIdstringrequired
- partPositionMsintegerrequired
- positionMsinteger
- remainingMsinteger
- contentRatingstring
- countinteger
- countrystring
- dateBasedboolean
- discNumberinteger
- displayTitlestring
- durationMsinteger≥ 0
- editionstring
- episodeNumberinteger
- favoriteboolean
- genresarray of string
homeActionsobject
- collectionbooleanrequired
- deletebooleanrequired
- detailsbooleanrequired
- downloadbooleanrequired
- editMetadatabooleanrequired
- favoritebooleanrequired
- myListbooleanrequired
- notInterestedboolean
- playbooleanrequired
- playedbooleanrequired
- playlistbooleanrequired
- queuebooleanrequired
- ratingbooleanrequired
- refreshMetadatabooleanrequired
- removeFromContinueboolean
selectionobjectrequired
- collectionbooleanrequired
- deletebooleanrequired
- downloadbooleanrequired
- editbooleanrequired
- favoritebooleanrequired
- myListbooleanrequired
- playbooleanrequired
- playlistbooleanrequired
- queuebooleanrequired
- refreshbooleanrequired
- watchedbooleanrequired
stateobjectrequired
- containerRevisionintegerrequired
- favoritebooleanrequired
- personalRevisionintegerrequired
- ratingnumber | any | nullrequired
- watchedbooleanrequired
- watchlistedbooleanrequired
- watchedbooleanrequired
homeTitleContextobject
- genresarray of stringrequired
- kindstringrequired
- seasonCountinteger
- yearinteger
- idstringrequired
- kindstringrequired
- labelstring
- languagestring
- lastChangedstring
latestEpisodeobject
- airDatestringrequired
- countintegerrequired
- episodeNumberintegerrequired
- seasonNumberinteger
- titlestring
- libraryIdstring
- missingbooleanrequired
- narratorsarray of string
navigationobject
browseobject
- pivotstringrequiredlength 1–256
- queryobject
sortarray of objectrequired0–1 items
- directionstringrequiredone of "asc", "desc"
- fieldstringrequired
- categorystring
- channelIdstring
- entityIdstring
- provenancestring
- sourceIdstring
- viewstringrequired
- newboolean
- originstring
- overviewstring
- overviewSourcestring
- overviewSourceUrlstring
- pageCountinteger
- pinnedboolean
playbackobject
- itemIdstringrequired
- startMsinteger≥ 0
- playsinteger
- posterUrlstring
- progressMsinteger≥ 0
- publicationTypestringone of "book", "magazine", "newspaper"
- publishedYearinteger
- publisherstring
radioSeedobject
- idstringrequired
- kindstringrequired
- ratingnumber
readingMarkobject
- itemIdstringrequired
- readbooleanrequired
- revisionintegerrequired
- releaseDatestring
- removedboolean
- resolutionstring
- rolestring
- seasonCountinteger
- seasonNumberinteger
seriesarray of object
- namestringrequired
- positionstring
showobject
- idstringrequired
- namestringrequired
- sortLetterstring
- specialboolean
- stillUrlstring
- subtitlestring
- titlestringrequired
- totalAtLeastinteger
- trackNumberinteger
- unwatchedCountinteger
- userRatinginteger | any | null
- watchedboolean
- watchedCountinteger
- watchlistedboolean
- yearinteger
- yearMaxinteger
- yearMininteger
- missingboolean
- narratorsarray of string
navigationobject
browseobject
- pivotstringrequiredlength 1–256
- queryobject
sortarray of objectrequired0–1 items
- directionstringrequiredone of "asc", "desc"
- fieldstringrequired
- categorystring
- channelIdstring
- entityIdstring
- provenancestring
- sourceIdstring
- viewstringrequired
- newboolean
- originstring
- overviewstring
- overviewSourcestring
- overviewSourceUrlstring
- pageCountinteger
- pinnedboolean
playbackobject
- itemIdstringrequired
- startMsinteger≥ 0
- playsinteger
- posterUrlstring
- progressMsinteger≥ 0
- publicationTypestringone of "book", "magazine", "newspaper"
- publishedYearinteger
- publisherstring
radioSeedobject
- idstringrequired
- kindstringrequired
- ratingnumber
readingMarkobject
- itemIdstringrequired
- readbooleanrequired
- revisionintegerrequired
- releaseDatestring
- removedboolean
- resolutionstring
- rolestring
- seasonCountinteger
- seasonNumberinteger
seriesarray of object
- namestringrequired
- positionstring
showobject
- idstringrequired
- namestringrequired
- sortLetterstring
- specialboolean
- stillUrlstring
- subtitlestring
- titlestring
- totalAtLeastinteger
- trackNumberinteger
- unwatchedCountinteger
- userRatinginteger | any | null
- watchedboolean
- watchedCountinteger
- watchlistedboolean
- yearinteger
- yearMaxinteger
- yearMininteger
filtersarray of objectrequired
- idstringrequired
- labelKeystringrequired
optionsarray of objectrequired
- countintegerrequired
- idstringrequired
- labelstringrequired
headingobjectrequired
- fallbackstringrequired
- keystringrequired
- paramsobject
listeningobject
- actionsarray of stringrequired
resumeobject
- itemIdstringrequired
- positionMsintegerrequired≥ 0
- resumeUnavailablebooleanrequired
targetobjectrequired
- idstringrequired
- kindstringrequired
- libraryIdstringrequired
navigationarray of objectrequired
- idstringrequired
- labelKeystringrequired
- viewstringrequired
- playlistRevisioninteger
queryobjectrequired
- categorystringrequired
- directionstringrequired
- limitintegerrequired
- qstringrequired
- searchModestringrequired
- sortstringrequired
revisionobjectrequired
- catalogintegerrequired
- viewerintegerrequired
scopeobjectrequired
- entityIdstringrequired
- libraryIdstringrequired
- libraryKindstringrequired
- serverIdstringrequired
- viewstringrequired
- viewerFencestringrequired
sectionsarray of objectrequired
entriesarray of objectrequired
- absoluteNumberinteger
- activeBeginYearinteger
- activeEndYearinteger
- addedAtstring | any | null
- airDatestring
albumobject
- idstringrequired
- namestringrequired
- albumCountinteger
- albumTypestring
artistobject
- idstringrequired
- namestringrequired
- artistTypestring
- artworkPathsarray of string
audioFactsobject
- atmosboolean
- bitDepthinteger
- channelsinteger
- codecstringrequired
- layoutstring
- losslessboolean
- sampleRateinteger
- authorstring
- availableboolean
- backdropUrlstring
badgesarray of object0–2 items
- bitDepthintegerrequired≥ 17
- codecstringrequiredpattern ^[A-Za-z0-9_.+-]{1,64}$
- sampleRateintegerrequired≥ 1
- variant"lossless"required
bookProgressobject
- bookIdstringrequired
chapterobject
- endMsintegerrequired
- indexintegerrequired
- startMsintegerrequired
- titlestringrequired
- durationMsinteger
- itemIdstringrequired
- partPositionMsintegerrequired
- positionMsinteger
- remainingMsinteger
- contentRatingstring
- countinteger
- countrystring
- dateBasedboolean
- discNumberinteger
- displayTitlestring
- durationMsinteger≥ 0
- editionstring
- episodeNumberinteger
- favoriteboolean
- genresarray of string
- hiddenboolean | any | null
homeActionsobject
- collectionbooleanrequired
- deletebooleanrequired
- detailsbooleanrequired
- downloadbooleanrequired
- editMetadatabooleanrequired
- favoritebooleanrequired
- myListbooleanrequired
- notInterestedboolean
- playbooleanrequired
- playedbooleanrequired
- playlistbooleanrequired
- queuebooleanrequired
- ratingbooleanrequired
- refreshMetadatabooleanrequired
- removeFromContinueboolean
selectionobjectrequired
- collectionbooleanrequired
- deletebooleanrequired
- downloadbooleanrequired
- editbooleanrequired
- favoritebooleanrequired
- myListbooleanrequired
- playbooleanrequired
- playlistbooleanrequired
- queuebooleanrequired
- refreshbooleanrequired
- watchedbooleanrequired
stateobjectrequired
- containerRevisionintegerrequired
- favoritebooleanrequired
- personalRevisionintegerrequired
- ratingnumber | any | nullrequired
- watchedbooleanrequired
- watchlistedbooleanrequired
- watchedbooleanrequired
homeTitleContextobject
- genresarray of stringrequired
- kindstringrequired
- seasonCountinteger
- yearinteger
- idstringrequired
- kindstringrequired
- labelstring
- languagestring
- lastChangedstring
latestEpisodeobject
- airDatestringrequired
- countintegerrequired
- episodeNumberintegerrequired
- seasonNumberinteger
- titlestring
- libraryIdstring
mediaobject
- absoluteNumberinteger
- activeBeginYearinteger
- activeEndYearinteger
- addedAtstring | any | nullrequired
- airDatestring
albumobject
- idstringrequired
- namestringrequired
- albumCountinteger
- albumTypestring
artistobject
- idstringrequired
- namestringrequired
- artistTypestring
- artworkPathsarray of string
audioFactsobject
- atmosboolean
- bitDepthinteger
- channelsinteger
- codecstringrequired
- layoutstring
- losslessboolean
- sampleRateinteger
- authorstring
- availableboolean
- backdropUrlstring
badgesarray of object0–2 items
- bitDepthintegerrequired≥ 17
- codecstringrequiredpattern ^[A-Za-z0-9_.+-]{1,64}$
- sampleRateintegerrequired≥ 1
- variant"lossless"required
bookProgressobject
- bookIdstringrequired
chapterobject
- endMsintegerrequired
- indexintegerrequired
- startMsintegerrequired
- titlestringrequired
- durationMsinteger
- itemIdstringrequired
- partPositionMsintegerrequired
- positionMsinteger
- remainingMsinteger
- contentRatingstring
- countinteger
- countrystring
- dateBasedboolean
- discNumberinteger
- displayTitlestring
- durationMsinteger≥ 0
- editionstring
- episodeNumberinteger
- favoriteboolean
- genresarray of string
homeActionsobject
- collectionbooleanrequired
- deletebooleanrequired
- detailsbooleanrequired
- downloadbooleanrequired
- editMetadatabooleanrequired
- favoritebooleanrequired
- myListbooleanrequired
- notInterestedboolean
- playbooleanrequired
- playedbooleanrequired
- playlistbooleanrequired
- queuebooleanrequired
- ratingbooleanrequired
- refreshMetadatabooleanrequired
- removeFromContinueboolean
selectionobjectrequired
- collectionbooleanrequired
- deletebooleanrequired
- downloadbooleanrequired
- editbooleanrequired
- favoritebooleanrequired
- myListbooleanrequired
- playbooleanrequired
- playlistbooleanrequired
- queuebooleanrequired
- refreshbooleanrequired
- watchedbooleanrequired
stateobjectrequired
- containerRevisionintegerrequired
- favoritebooleanrequired
- personalRevisionintegerrequired
- ratingnumber | any | nullrequired
- watchedbooleanrequired
- watchlistedbooleanrequired
- watchedbooleanrequired
homeTitleContextobject
- genresarray of stringrequired
- kindstringrequired
- seasonCountinteger
- yearinteger
- idstringrequired
- kindstringrequired
- labelstring
- languagestring
- lastChangedstring
latestEpisodeobject
- airDatestringrequired
- countintegerrequired
- episodeNumberintegerrequired
- seasonNumberinteger
- titlestring
- libraryIdstring
- missingbooleanrequired
- narratorsarray of string
navigationobject
browseobject
- pivotstringrequiredlength 1–256
- queryobject
sortarray of objectrequired0–1 items
- directionstringrequiredone of "asc", "desc"
- fieldstringrequired
- categorystring
- channelIdstring
- entityIdstring
- provenancestring
- sourceIdstring
- viewstringrequired
- newboolean
- originstring
- overviewstring
- overviewSourcestring
- overviewSourceUrlstring
- pageCountinteger
- pinnedboolean
playbackobject
- itemIdstringrequired
- startMsinteger≥ 0
- playsinteger
- posterUrlstring
- progressMsinteger≥ 0
- publicationTypestringone of "book", "magazine", "newspaper"
- publishedYearinteger
- publisherstring
radioSeedobject
- idstringrequired
- kindstringrequired
- ratingnumber
readingMarkobject
- itemIdstringrequired
- readbooleanrequired
- revisionintegerrequired
- releaseDatestring
- removedboolean
- resolutionstring
- rolestring
- seasonCountinteger
- seasonNumberinteger
seriesarray of object
- namestringrequired
- positionstring
showobject
- idstringrequired
- namestringrequired
- sortLetterstring
- specialboolean
- stillUrlstring
- subtitlestring
- titlestringrequired
- totalAtLeastinteger
- trackNumberinteger
- unwatchedCountinteger
- userRatinginteger | any | null
- watchedboolean
- watchedCountinteger
- watchlistedboolean
- yearinteger
- yearMaxinteger
- yearMininteger
- missingboolean
- narratorsarray of string
navigationobject
browseobject
- pivotstringrequiredlength 1–256
- queryobject
sortarray of objectrequired0–1 items
- directionstringrequiredone of "asc", "desc"
- fieldstringrequired
- categorystring
- channelIdstring
- entityIdstring
- provenancestring
- sourceIdstring
- viewstringrequired
- newboolean
- originstring
- overviewstring
- overviewSourcestring
- overviewSourceUrlstring
- pageCountinteger
- pinnedboolean
playbackobject
- itemIdstringrequired
- startMsinteger≥ 0
- playsinteger
- posterUrlstring
- progressMsinteger≥ 0
- publicationTypestringone of "book", "magazine", "newspaper"
- publishedYearinteger
- publisherstring
radioSeedobject
- idstringrequired
- kindstringrequired
- ratingnumber
readingMarkobject
- itemIdstringrequired
- readbooleanrequired
- revisionintegerrequired
- releaseDatestring
- removedboolean
- resolutionstring
- rolestring
- seasonCountinteger
- seasonNumberinteger
seriesarray of object
- namestringrequired
- positionstring
showobject
- idstringrequired
- namestringrequired
- sortLetterstring
- specialboolean
- stillUrlstring
- subtitlestring
- titlestring
- totalAtLeastinteger
- trackNumberinteger
- unwatchedCountinteger
- userRatinginteger | any | null
- watchedboolean
- watchedCountinteger
- watchlistedboolean
- yearinteger
- yearMaxinteger
- yearMininteger
headingobjectrequired
- fallbackstringrequired
- keystringrequired
- paramsobject
- idstringrequired
- nextCursorstringrequired
orderobject
- laststring
- nextstring
- previousstring
seeAllobject
- pivotstringrequiredlength 1–256
- queryobject
sortarray of objectrequired0–1 items
- directionstringrequiredone of "asc", "desc"
- fieldstringrequired
- startintegerrequired
- totalCountintegerrequired
- typestringrequired
whyobject
- codestringrequired
- fallbackstringrequired
- paramsobject
whyTitlesarray of object
- idstringrequired
- namestringrequired
shapeCountsobject
- postersintegerrequired
- squaresintegerrequired
sortsarray of objectrequired
- directionsarray of stringrequired
- idstringrequired
- labelKeystringrequired
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/libraries/{id}/content" \
-H "Authorization: Bearer $PORTICO_API_KEY"GET/v1/libraries/{id}/discoverRead or update the selected projectionread
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the read scope, or a signed-in session
- OpenAPI operation ID
get_libraries_id_discover
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string |
Responses
200Successapplication/json
{
"library": {
"defaultView": "string",
"id": "id_8h2k4q",
"kind": "string",
"name": "Fargo",
"pinned": true,
"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"
}
]
}
},
"sections": [
{
"id": "id_8h2k4q",
"items": [
{
"absoluteNumber": 0,
"activeBeginYear": 0,
"activeEndYear": 0,
"addedAt": "2026-10-18T19:30:00Z",
"airDate": "string",
"album": {},
"albumCount": 0,
"albumType": "string",
"artist": {},
"artistType": "string",
"artworkPaths": [],
"audioFacts": {},
"author": "string",
"available": true,
"backdropUrl": "https://example.com/…",
"badges": [],
"bookProgress": {},
"contentRating": "string",
"count": 0,
"country": "string",
"dateBased": true,
"discNumber": 0,
"displayTitle": "Fargo",
"durationMs": 1800000,
"edition": "string",
"episodeNumber": 0,
"favorite": true,
"genres": [],
"hidden": true,
"homeActions": {},
"homeTitleContext": {},
"id": "id_8h2k4q",
"kind": "string",
"label": "string",
"language": "en",
"lastChanged": "string",
"latestEpisode": {},
"libraryId": "id_8h2k4q",
"media": {},
"missing": true,
"narrators": [],
"navigation": {},
"new": true,
"origin": "string",
"overview": "string",
"overviewSource": "string",
"overviewSourceUrl": "https://example.com/…",
"pageCount": 0,
"pinned": true,
"playback": {},
"plays": 0,
"posterUrl": "https://example.com/…",
"progressMs": 1800000,
"publicationType": "book",
"publishedYear": 0,
"publisher": "string",
"radioSeed": {},
"rating": 0,
"readingMark": {},
"releaseDate": "string",
"removed": true,
"resolution": "string",
"role": "string",
"seasonCount": 0,
"seasonNumber": 0,
"series": [],
"show": {},
"sortLetter": "string",
"special": true,
"stillUrl": "https://example.com/…",
"subtitle": "Fargo",
"title": "Fargo",
"totalAtLeast": 0,
"trackNumber": 0,
"unwatchedCount": 0,
"userRating": 0,
"watched": true,
"watchedCount": 0,
"watchlisted": true,
"year": 0,
"yearMax": 0,
"yearMin": 0
}
],
"seeAll": {
"pivot": "string",
"query": {
"key": null
},
"sort": [
{}
]
},
"title": "Fargo",
"titleText": {
"code": "string",
"fallback": "string",
"params": {
"key": "string"
}
},
"total": 0,
"why": {
"code": "string",
"fallback": "string",
"params": {
"key": "string"
}
},
"whyTitles": [
{
"id": "id_8h2k4q",
"name": "Fargo"
}
]
}
]
}libraryobjectrequired
- defaultViewstringrequired
- idstringrequired
- kindstringrequired
- namestringrequired
- pinnedbooleanrequired
summaryobject
countsarray of objectrequired
- atLeastbooleanrequired
- countintegerrequired
- kindstringrequired
- coverUrlsarray of stringrequired
- emptybooleanrequired
- emptyKnownbooleanrequired
- firstScanbooleanrequired
- latestArtworkstringrequired
publicationCountsarray of object
- atLeastbooleanrequired
- countintegerrequired
- kindstringrequired
sectionsarray of objectrequired
- idstringrequired
itemsarray of objectrequired
- absoluteNumberinteger
- activeBeginYearinteger
- activeEndYearinteger
- addedAtstring | any | null
- airDatestring
albumobject
- idstringrequired
- namestringrequired
- albumCountinteger
- albumTypestring
artistobject
- idstringrequired
- namestringrequired
- artistTypestring
- artworkPathsarray of string
audioFactsobject
- atmosboolean
- bitDepthinteger
- channelsinteger
- codecstringrequired
- layoutstring
- losslessboolean
- sampleRateinteger
- authorstring
- availableboolean
- backdropUrlstring
badgesarray of object0–2 items
- bitDepthintegerrequired≥ 17
- codecstringrequiredpattern ^[A-Za-z0-9_.+-]{1,64}$
- sampleRateintegerrequired≥ 1
- variant"lossless"required
bookProgressobject
- bookIdstringrequired
chapterobject
- endMsintegerrequired
- indexintegerrequired
- startMsintegerrequired
- titlestringrequired
- durationMsinteger
- itemIdstringrequired
- partPositionMsintegerrequired
- positionMsinteger
- remainingMsinteger
- contentRatingstring
- countinteger
- countrystring
- dateBasedboolean
- discNumberinteger
- displayTitlestring
- durationMsinteger≥ 0
- editionstring
- episodeNumberinteger
- favoriteboolean
- genresarray of string
- hiddenboolean | any | null
homeActionsobject
- collectionbooleanrequired
- deletebooleanrequired
- detailsbooleanrequired
- downloadbooleanrequired
- editMetadatabooleanrequired
- favoritebooleanrequired
- myListbooleanrequired
- notInterestedboolean
- playbooleanrequired
- playedbooleanrequired
- playlistbooleanrequired
- queuebooleanrequired
- ratingbooleanrequired
- refreshMetadatabooleanrequired
- removeFromContinueboolean
selectionobjectrequired
- collectionbooleanrequired
- deletebooleanrequired
- downloadbooleanrequired
- editbooleanrequired
- favoritebooleanrequired
- myListbooleanrequired
- playbooleanrequired
- playlistbooleanrequired
- queuebooleanrequired
- refreshbooleanrequired
- watchedbooleanrequired
stateobjectrequired
- containerRevisionintegerrequired
- favoritebooleanrequired
- personalRevisionintegerrequired
- ratingnumber | any | nullrequired
- watchedbooleanrequired
- watchlistedbooleanrequired
- watchedbooleanrequired
homeTitleContextobject
- genresarray of stringrequired
- kindstringrequired
- seasonCountinteger
- yearinteger
- idstringrequired
- kindstringrequired
- labelstring
- languagestring
- lastChangedstring
latestEpisodeobject
- airDatestringrequired
- countintegerrequired
- episodeNumberintegerrequired
- seasonNumberinteger
- titlestring
- libraryIdstring
mediaobject
- absoluteNumberinteger
- activeBeginYearinteger
- activeEndYearinteger
- addedAtstring | any | nullrequired
- airDatestring
albumobject
- idstringrequired
- namestringrequired
- albumCountinteger
- albumTypestring
artistobject
- idstringrequired
- namestringrequired
- artistTypestring
- artworkPathsarray of string
audioFactsobject
- atmosboolean
- bitDepthinteger
- channelsinteger
- codecstringrequired
- layoutstring
- losslessboolean
- sampleRateinteger
- authorstring
- availableboolean
- backdropUrlstring
badgesarray of object0–2 items
- bitDepthintegerrequired≥ 17
- codecstringrequiredpattern ^[A-Za-z0-9_.+-]{1,64}$
- sampleRateintegerrequired≥ 1
- variant"lossless"required
bookProgressobject
- bookIdstringrequired
chapterobject
- endMsintegerrequired
- indexintegerrequired
- startMsintegerrequired
- titlestringrequired
- durationMsinteger
- itemIdstringrequired
- partPositionMsintegerrequired
- positionMsinteger
- remainingMsinteger
- contentRatingstring
- countinteger
- countrystring
- dateBasedboolean
- discNumberinteger
- displayTitlestring
- durationMsinteger≥ 0
- editionstring
- episodeNumberinteger
- favoriteboolean
- genresarray of string
homeActionsobject
- collectionbooleanrequired
- deletebooleanrequired
- detailsbooleanrequired
- downloadbooleanrequired
- editMetadatabooleanrequired
- favoritebooleanrequired
- myListbooleanrequired
- notInterestedboolean
- playbooleanrequired
- playedbooleanrequired
- playlistbooleanrequired
- queuebooleanrequired
- ratingbooleanrequired
- refreshMetadatabooleanrequired
- removeFromContinueboolean
selectionobjectrequired
- collectionbooleanrequired
- deletebooleanrequired
- downloadbooleanrequired
- editbooleanrequired
- favoritebooleanrequired
- myListbooleanrequired
- playbooleanrequired
- playlistbooleanrequired
- queuebooleanrequired
- refreshbooleanrequired
- watchedbooleanrequired
stateobjectrequired
- containerRevisionintegerrequired
- favoritebooleanrequired
- personalRevisionintegerrequired
- ratingnumber | any | nullrequired
- watchedbooleanrequired
- watchlistedbooleanrequired
- watchedbooleanrequired
homeTitleContextobject
- genresarray of stringrequired
- kindstringrequired
- seasonCountinteger
- yearinteger
- idstringrequired
- kindstringrequired
- labelstring
- languagestring
- lastChangedstring
latestEpisodeobject
- airDatestringrequired
- countintegerrequired
- episodeNumberintegerrequired
- seasonNumberinteger
- titlestring
- libraryIdstring
- missingbooleanrequired
- narratorsarray of string
navigationobject
browseobject
- pivotstringrequiredlength 1–256
- queryobject
sortarray of objectrequired0–1 items
- directionstringrequiredone of "asc", "desc"
- fieldstringrequired
- categorystring
- channelIdstring
- entityIdstring
- provenancestring
- sourceIdstring
- viewstringrequired
- newboolean
- originstring
- overviewstring
- overviewSourcestring
- overviewSourceUrlstring
- pageCountinteger
- pinnedboolean
playbackobject
- itemIdstringrequired
- startMsinteger≥ 0
- playsinteger
- posterUrlstring
- progressMsinteger≥ 0
- publicationTypestringone of "book", "magazine", "newspaper"
- publishedYearinteger
- publisherstring
radioSeedobject
- idstringrequired
- kindstringrequired
- ratingnumber
readingMarkobject
- itemIdstringrequired
- readbooleanrequired
- revisionintegerrequired
- releaseDatestring
- removedboolean
- resolutionstring
- rolestring
- seasonCountinteger
- seasonNumberinteger
seriesarray of object
- namestringrequired
- positionstring
showobject
- idstringrequired
- namestringrequired
- sortLetterstring
- specialboolean
- stillUrlstring
- subtitlestring
- titlestringrequired
- totalAtLeastinteger
- trackNumberinteger
- unwatchedCountinteger
- userRatinginteger | any | null
- watchedboolean
- watchedCountinteger
- watchlistedboolean
- yearinteger
- yearMaxinteger
- yearMininteger
- missingboolean
- narratorsarray of string
navigationobject
browseobject
- pivotstringrequiredlength 1–256
- queryobject
sortarray of objectrequired0–1 items
- directionstringrequiredone of "asc", "desc"
- fieldstringrequired
- categorystring
- channelIdstring
- entityIdstring
- provenancestring
- sourceIdstring
- viewstringrequired
- newboolean
- originstring
- overviewstring
- overviewSourcestring
- overviewSourceUrlstring
- pageCountinteger
- pinnedboolean
playbackobject
- itemIdstringrequired
- startMsinteger≥ 0
- playsinteger
- posterUrlstring
- progressMsinteger≥ 0
- publicationTypestringone of "book", "magazine", "newspaper"
- publishedYearinteger
- publisherstring
radioSeedobject
- idstringrequired
- kindstringrequired
- ratingnumber
readingMarkobject
- itemIdstringrequired
- readbooleanrequired
- revisionintegerrequired
- releaseDatestring
- removedboolean
- resolutionstring
- rolestring
- seasonCountinteger
- seasonNumberinteger
seriesarray of object
- namestringrequired
- positionstring
showobject
- idstringrequired
- namestringrequired
- sortLetterstring
- specialboolean
- stillUrlstring
- subtitlestring
- titlestring
- totalAtLeastinteger
- trackNumberinteger
- unwatchedCountinteger
- userRatinginteger | any | null
- watchedboolean
- watchedCountinteger
- watchlistedboolean
- yearinteger
- yearMaxinteger
- yearMininteger
seeAllobject
- pivotstringrequiredlength 1–256
- queryobject
sortarray of objectrequired0–1 items
- directionstringrequiredone of "asc", "desc"
- fieldstringrequired
- titlestringrequired
titleTextobjectrequired
- codestringrequired
- fallbackstringrequired
- paramsobject
- totalintegerrequired
whyobject
- codestringrequired
- fallbackstringrequired
- paramsobject
whyTitlesarray of object
- idstringrequired
- namestringrequired
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/libraries/{id}/discover" \
-H "Authorization: Bearer $PORTICO_API_KEY"POST/v1/libraries/{id}/episode-assignmentsRun library episode assignmentslibrary
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the library scope, or a signed-in session
- OpenAPI operation ID
post_libraries_id_episode_assignments- Max body
- 64 KiB
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string |
Request body application/json · required
{
"airDate": "string",
"assetId": "id_8h2k4q",
"episodeNumbers": [
0
],
"numbering": "string",
"seasonNumber": 0,
"showTitle": "Fargo",
"year": 0
}- airDatestring
- assetIdstringrequired
- episodeNumbersarray of integerrequired
- numberingstringrequired
- seasonNumberinteger | any | nullrequired
- showTitlestringrequired
- yearintegerrequired
Responses
200Successapplication/json
{
"status": "string"
}- statusstringrequired
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/libraries/{id}/episode-assignments" \
-H "Authorization: Bearer $PORTICO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"airDate":"string","assetId":"id_8h2k4q","episodeNumbers":[0],"numbering":"string","seasonNumber":0,"showTitle":"Fargo","year":0}'GET/v1/libraries/{id}/episode-issuesRead library episode issueslibrary
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the library scope, or a signed-in session
- OpenAPI operation ID
get_libraries_id_episode_issues
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string | |
cursor | query | string | |
limit | query | integer |
Responses
200Successapplication/json
{
"issues": [
{
"assetId": "id_8h2k4q",
"code": "string",
"sourceName": "Fargo"
}
],
"nextCursor": "eyJvIjoyMH0"
}issuesarray of objectrequired
- assetIdstringrequired
- codestringrequired
- sourceNamestringrequired
- nextCursorstringrequired
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/libraries/{id}/episode-issues" \
-H "Authorization: Bearer $PORTICO_API_KEY"GET/v1/libraries/{id}/facetsRead counted facet choicesread
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the read scope, or a signed-in session
- OpenAPI operation ID
get_library_facets
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string | |
field | query | string | |
q | query | string | |
limit | query | integer≥ 1 | |
offset | query | string | |
query | query | string | |
pivot | query | string | |
after | query | string | |
before | query | string | |
at | query | string |
Responses
200Successapplication/json
{
"field": "string",
"revision": "r12",
"total": 0,
"totalIsLowerBound": true,
"values": [
{
"count": 0,
"countIsLowerBound": true,
"label": "string",
"seriesId": "id_8h2k4q",
"value": "string"
}
],
"variant": "page"
}- fieldstringrequired
- revisionstring
- totalintegerrequired
- totalIsLowerBoundbooleanrequired
valuesarray of objectrequired
- countintegerrequired
- countIsLowerBoundbooleanrequired
- labelstringrequired
- seriesIdstringpattern ^[A-Za-z0-9_-]{43}$
- valuestringrequired
- variant"page"required
202Successapplication/json
{
"kind": "facet-preparing",
"queryId": "id_8h2k4q",
"retryAfterMs": 1800000,
"state": "preparing",
"variant": "preparing"
}- kind"facet-preparing"required
- queryIdstringrequiredlength 1–512pattern ^[A-Za-z0-9_-]+$
- retryAfterMsintegerrequired≥ 1
- state"preparing"required
- variant"preparing"required
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesinvalid_requestunauthorizednot_permittednot_foundinternalrevision_mismatchstale_continuationsearch_busymetadata_unavailabledatabase_busy
Example request
curl -X GET "http://127.0.0.1:32500/v1/libraries/{id}/facets" \
-H "Authorization: Bearer $PORTICO_API_KEY"GET/v1/libraries/{id}/inventory-statusRead library inventory statusread
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the read scope, or a signed-in session
- OpenAPI operation ID
get_libraries_id_inventory_status
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string |
Responses
200Successapplication/json
{
"inventory": {
"libraryId": "id_8h2k4q",
"revision": 0,
"sources": [
{
"analyzed": 0,
"deferredChanges": true,
"deferredScanScope": "string",
"discovered": 0,
"health": "string",
"id": "id_8h2k4q",
"jobId": "id_8h2k4q",
"lastCompleteAt": "2026-10-18T19:30:00Z",
"pauseReason": "string",
"phase": "string",
"status": "string",
"warnings": 0
}
]
},
"serverId": "id_8h2k4q"
}inventoryobjectrequired
- libraryIdstringrequired
- revisionintegerrequired
sourcesarray of objectrequired
- analyzedintegerrequired
- deferredChangesboolean
- deferredScanScopestring
- discoveredintegerrequired
- healthstringrequired
- idstringrequired
- jobIdstringrequired
- lastCompleteAtstringrequired
- pauseReasonstringrequired
- phasestringrequired
- statusstringrequired
- warningsintegerrequired
- serverIdstringrequired
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/libraries/{id}/inventory-status" \
-H "Authorization: Bearer $PORTICO_API_KEY"GET/v1/libraries/{id}/listening/selectionRead or update the selected projectionread
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the read scope, or a signed-in session
- OpenAPI operation ID
get_libraries_id_listening_selection
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string | |
kind | query | string | |
entityId | query | string | |
cursor | query | string | |
limit | query | integer | |
mode | query | string | |
seed | query | string | |
resume | query | string | |
startItem | query | string |
Responses
200Successapplication/json
{
"data": {
"entries": [
{
"editionId": "id_8h2k4q",
"itemId": "id_8h2k4q",
"partId": "id_8h2k4q",
"sourceContext": {
"entryId": "id_8h2k4q",
"id": "id_8h2k4q",
"kind": "string",
"revision": "r12"
}
}
],
"nextCursor": "eyJvIjoyMH0",
"resume": {
"itemId": "id_8h2k4q",
"positionMs": 1800000
},
"seed": "string",
"target": {
"id": "id_8h2k4q",
"kind": "string",
"libraryId": "id_8h2k4q"
},
"totalCount": 0,
"unavailableCount": 0
},
"scope": {
"accountId": "id_8h2k4q",
"authority": "string",
"profileId": "id_8h2k4q",
"serverId": "id_8h2k4q"
}
}dataobjectrequired
entriesarray of objectrequired
- editionIdstring | any | nullrequired
- itemIdstringrequired
- partIdstring | any | nullrequired
sourceContextobjectrequired
- entryIdstring | any | nullrequired
- idstringrequired
- kindstringrequired
- revisionstring | any | nullrequired
- nextCursorstringrequired
resumeobject
- itemIdstringrequired
- positionMsintegerrequired≥ 0
- seedstringrequired
targetobjectrequired
- idstringrequired
- kindstringrequired
- libraryIdstringrequired
- totalCountintegerrequired
- unavailableCountintegerrequired
scopeobjectrequired
- accountIdstringrequired
- authoritystringrequired
- profileIdstringrequired
- serverIdstringrequired
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/libraries/{id}/listening/selection" \
-H "Authorization: Bearer $PORTICO_API_KEY"POST/v1/libraries/{id}/lyrics/fetchRun library lyrics fetchlibrary
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the library scope, or a signed-in session
- OpenAPI operation ID
post_libraries_id_lyrics_fetch- Max body
- 2 MiB
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string |
Request body application/json · required
{
"idempotencyKey": "string"
}- idempotencyKeystringrequired
Responses
202Successapplication/json
{
"actions": [
"string"
],
"attempt": 0,
"createdAt": "2026-10-18T19:30:00Z",
"domainId": "id_8h2k4q",
"errorCode": "string",
"id": "id_8h2k4q",
"kind": "string",
"lane": "string",
"nextAt": "2026-10-18T19:30:00Z",
"phase": "string",
"predecessor": "string",
"processed": 0,
"resource": "string",
"revision": 0,
"settingsRevision": 0,
"state": "string",
"total": 0,
"trigger": "string",
"updatedAt": "2026-10-18T19:30:00Z"
}- actionsarray of stringrequired
- attemptintegerrequired
- createdAtstringrequired
RFC 3339 UTC instant; empty when absent.
- domainIdstring
- errorCodestring
- idstringrequired
- kindstringrequired
- lanestringrequired
- nextAtstringrequired
RFC 3339 UTC instant; empty when absent.
- phasestringrequired
- predecessorstring
- processedinteger
- resourcestringrequired
- revisionintegerrequired
- settingsRevisionintegerrequired
- statestringrequired
- totalinteger
- triggerstringrequired
- updatedAtstringrequired
RFC 3339 UTC instant; empty when absent.
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/libraries/{id}/lyrics/fetch" \
-H "Authorization: Bearer $PORTICO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"idempotencyKey":"string"}'GET/v1/libraries/{id}/metadata/agentRead library metadata agentlibrary
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the library scope, or a signed-in session
- OpenAPI operation ID
get_libraries_id_metadata_agent
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string |
Responses
200Successapplication/json
{
"agent": "string",
"agents": [
{
"defaultLanguage": "en",
"description": "string",
"id": "id_8h2k4q",
"languages": [
"en"
],
"name": "Fargo",
"providers": [
"string"
]
}
],
"language": "en",
"libraryId": "id_8h2k4q",
"libraryKind": "string",
"revision": 0
}- agentstringrequired
agentsarray of objectrequired
- defaultLanguagestring
- descriptionstringrequired
- idstringrequired
- languagesarray of stringrequired
- namestringrequired
- providersarray of stringrequired
- languagestring
- libraryIdstringrequired
- libraryKindstringrequired
- revisionintegerrequired
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/libraries/{id}/metadata/agent" \
-H "Authorization: Bearer $PORTICO_API_KEY"PUT/v1/libraries/{id}/metadata/agentSave library metadata agentlibrary
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the library scope, or a signed-in session
- OpenAPI operation ID
put_libraries_id_metadata_agent- 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
{
"agent": "string",
"expectedRevision": 0
}- agentstringrequired
- expectedRevisionintegerrequired
Responses
200Successapplication/json
{
"agent": "string",
"agents": [
{
"defaultLanguage": "en",
"description": "string",
"id": "id_8h2k4q",
"languages": [
"en"
],
"name": "Fargo",
"providers": [
"string"
]
}
],
"language": "en",
"libraryId": "id_8h2k4q",
"libraryKind": "string",
"revision": 0
}- agentstringrequired
agentsarray of objectrequired
- defaultLanguagestring
- descriptionstringrequired
- idstringrequired
- languagesarray of stringrequired
- namestringrequired
- providersarray of stringrequired
- languagestring
- libraryIdstringrequired
- libraryKindstringrequired
- 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/libraries/{id}/metadata/agent" \
-H "Authorization: Bearer $PORTICO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"agent":"string","expectedRevision":0}'GET/v1/libraries/{id}/metadata/attentionList unmatched and uncertain titles with their best candidateslibrary
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the library scope, or a signed-in session
- OpenAPI operation ID
get_metadata_attention
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string | |
cursor | query | string | |
limit | query | integer | ""1–50 | |
includeInProgress | query | string |
Responses
200Successapplication/json
{
"entries": [
{
"actions": [
"string"
],
"artworkUrl": "https://example.com/…",
"candidates": [
{
"confidence": 0,
"identity": {},
"key": "string",
"orders": [],
"posterUrl": "https://example.com/…",
"reasons": [],
"title": "Fargo",
"year": 0
}
],
"confidence": 0,
"entityId": "id_8h2k4q",
"itemKind": "string",
"kind": "string",
"libraryId": "id_8h2k4q",
"parentArtist": "string",
"parentId": "id_8h2k4q",
"parentTitle": "Fargo",
"reason": "string",
"revision": 0,
"title": "Fargo"
}
],
"libraryId": "id_8h2k4q",
"nextCursor": "eyJvIjoyMH0",
"total": 0
}entriesarray of objectrequired
- actionsarray of stringrequired
- artworkUrlstring
candidatesarray of objectrequired
- confidencenumberrequired
identityobjectrequired
- idstringrequired
- providerstringrequired
- typestringrequired
- keystringrequired
ordersarray of objectrequired
- idstringrequired
- namestringrequired
- posterUrlstring
- reasonsarray of stringrequired
- titlestringrequired
- yearintegerrequired
- confidencenumberrequired
- entityIdstringrequired
- itemKindstringrequired
- kindstringrequired
- libraryIdstringrequired
- parentArtiststring
- parentIdstringrequired
- parentTitlestring
- reasonstringrequired
- revisionintegerrequired
- titlestringrequired
- libraryIdstringrequired
- nextCursorstringrequired
- totalintegerrequired
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesunauthorizednot_permittednot_foundinvalid_requestrevision_mismatchrate_limitedinternaltimeoutdatabase_busy
Example request
curl -X GET "http://127.0.0.1:32500/v1/libraries/{id}/metadata/attention" \
-H "Authorization: Bearer $PORTICO_API_KEY"POST/v1/libraries/{id}/metadata/attentionAccept a candidate, search, enter a provider ID or dismiss a titlelibrary
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the library scope, or a signed-in session
- OpenAPI operation ID
post_metadata_attention- Max body
- 4 KiB
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string |
Request body application/json · required
{
"action": "string",
"candidateKey": "string",
"entityId": "id_8h2k4q",
"expectedRevision": 0,
"kind": "string",
"order": "string",
"provider": "string",
"providerId": "id_8h2k4q",
"query": "string"
}- actionstringrequired
- candidateKeystring
- entityIdstringrequired
- expectedRevisionintegerrequired
- kindstringrequired
- orderstring
- providerstring
- providerIdstring
- querystring
Responses
202Successapplication/json
{
"status": "string"
}- statusstringrequired
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesunauthorizednot_permittednot_foundinvalid_requestrevision_mismatchrate_limitedinternaltimeoutdatabase_busywriter_capacity
Example request
curl -X POST "http://127.0.0.1:32500/v1/libraries/{id}/metadata/attention" \
-H "Authorization: Bearer $PORTICO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"action": "string",
"candidateKey": "string",
"entityId": "id_8h2k4q",
"expectedRevision": 0,
"kind": "string",
"order": "string",
"provider": "string",
"providerId": "id_8h2k4q",
"query": "string"
}'GET/v1/libraries/{id}/metadata/screenRead library metadata screenlibrary
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the library scope, or a signed-in session
- OpenAPI operation ID
get_libraries_id_metadata_screen
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string |
Responses
200Successapplication/json
{
"agent": "string",
"availableProviders": [
"string"
],
"confirmed": true,
"consentRevision": 0,
"disclosure": "string",
"disclosureVersion": "string",
"enabled": true,
"language": "en",
"libraryId": "id_8h2k4q",
"libraryKind": "string",
"providers": [
"string"
],
"refreshMode": "string",
"region": "string",
"revision": 0,
"status": "string"
}- agentstringrequired
- availableProvidersarray of stringrequired
- confirmedbooleanrequired
- consentRevisionintegerrequired
- disclosurestringrequired
- disclosureVersionstringrequired
- enabledbooleanrequired
- languagestringrequired
- libraryIdstringrequired
- libraryKindstringrequired
- providersarray of stringrequired
- refreshModestringrequired
- regionstringrequired
- revisionintegerrequired
- statusstringrequired
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/libraries/{id}/metadata/screen" \
-H "Authorization: Bearer $PORTICO_API_KEY"PUT/v1/libraries/{id}/metadata/screenSave library metadata screenlibrary
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the library scope, or a signed-in session
- OpenAPI operation ID
put_libraries_id_metadata_screen- 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
{
"confirmRemote": true,
"disclosureVersion": "string",
"enabled": true,
"expectedConsentRevision": 0,
"expectedRevision": 0,
"language": "en",
"providers": [
"string"
],
"refreshMode": "string",
"region": "string"
}- confirmRemoteboolean
- disclosureVersionstringrequired
- enabledbooleanrequired
- expectedConsentRevisionintegerrequired
- expectedRevisionintegerrequired
- languagestringrequired
- providersarray of stringrequired
- refreshModestringrequired
- regionstringrequired
Responses
202Successapplication/json
{
"libraryId": "id_8h2k4q",
"status": "string"
}- libraryIdstringrequired
- statusstringrequired
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/libraries/{id}/metadata/screen" \
-H "Authorization: Bearer $PORTICO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"confirmRemote": true,
"disclosureVersion": "string",
"enabled": true,
"expectedConsentRevision": 0,
"expectedRevision": 0,
"language": "en",
"providers": [
"string"
],
"refreshMode": "string",
"region": "string"
}'GET/v1/libraries/{id}/network-rootsRead library network rootslibrary
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the library scope, or a signed-in session
- OpenAPI operation ID
get_libraries_id_network_roots
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string |
Responses
200Successapplication/json
{
"policy": {
"key": null
},
"scope": {
"serverId": "id_8h2k4q",
"viewerFence": "string"
}
}- policyobjectrequired
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/libraries/{id}/network-roots" \
-H "Authorization: Bearer $PORTICO_API_KEY"POST/v1/libraries/{id}/network-rootsRun library network rootslibrary
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the library scope, or a signed-in session
- OpenAPI operation ID
post_libraries_id_network_roots- Max body
- 64 KiB
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string |
Request body application/json · required
{
"expectedRevision": 0,
"roots": [
"string"
]
}- expectedRevisioninteger
- rootsarray of stringrequired
Responses
200Successapplication/json
{
"approvals": [
{
"addresses": [
"string"
],
"root": "string"
}
]
}approvalsarray of objectrequired
- addressesarray of stringrequired
- rootstringrequired
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/libraries/{id}/network-roots" \
-H "Authorization: Bearer $PORTICO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"expectedRevision":0,"roots":["string"]}'DELETE/v1/libraries/{id}/reading-browse-queries/{queryId}Cancel this caller's Reading browse preparationread
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the read scope, or a signed-in session
- OpenAPI operation ID
delete_library_reading_browse_query
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string | |
queryIdrequired | path | string |
Responses
204Success
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesinvalid_requestunauthorizednot_permittednot_foundrevision_mismatchstale_continuationsearch_busyinternaldatabase_busywriter_capacity
Example request
curl -X DELETE "http://127.0.0.1:32500/v1/libraries/{id}/reading-browse-queries/{queryId}" \
-H "Authorization: Bearer $PORTICO_API_KEY"GET/v1/libraries/{id}/reading-browse-queries/{queryId}Read an exact prepared Reading browse pageread
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the read scope, or a signed-in session
- OpenAPI operation ID
get_library_reading_browse_query
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string | |
queryIdrequired | path | string |
Responses
200Successapplication/json
{
"applied": {
"query": {
"field": "releaseDate",
"operator": "within-last-days",
"value": 1,
"variant": "relative"
},
"seek": {
"prefix": "string"
},
"sort": [
{
"direction": "string",
"field": "string",
"seed": 0
}
]
},
"displayTargets": [
{
"entryId": "id_8h2k4q",
"membershipId": "id_8h2k4q"
}
],
"entries": [
{
"absoluteNumber": 0,
"activeBeginYear": 0,
"activeEndYear": 0,
"addedAt": "2026-10-18T19:30:00Z",
"airDate": "string",
"album": {
"id": "id_8h2k4q",
"name": "Fargo"
},
"albumCount": 0,
"albumType": "string",
"artist": {
"id": "id_8h2k4q",
"name": "Fargo"
},
"artistType": "string",
"artworkPaths": [
"string"
],
"audioFacts": {
"atmos": true,
"bitDepth": 0,
"channels": 0,
"codec": "string",
"layout": "string",
"lossless": true,
"sampleRate": 0
},
"author": "string",
"available": true,
"backdropUrl": "https://example.com/…",
"badges": [
{
"bitDepth": 17,
"codec": "string",
"sampleRate": 1,
"variant": "lossless"
}
],
"bookProgress": {
"bookId": "id_8h2k4q",
"chapter": {
"endMs": 1800000,
"index": 0,
"startMs": 1800000,
"title": "Fargo"
},
"durationMs": 1800000,
"itemId": "id_8h2k4q",
"partPositionMs": 1800000,
"positionMs": 1800000,
"remainingMs": 1800000
},
"contentRating": "string",
"count": 0,
"country": "string",
"dateBased": true,
"discNumber": 0,
"displayTitle": "Fargo",
"durationMs": 1800000,
"edition": "string",
"episodeNumber": 0,
"favorite": true,
"genres": [
"string"
],
"hidden": true,
"homeActions": {
"collection": true,
"delete": true,
"details": true,
"download": true,
"editMetadata": true,
"favorite": true,
"myList": true,
"notInterested": true,
"play": true,
"played": true,
"playlist": true,
"queue": true,
"rating": true,
"refreshMetadata": true,
"removeFromContinue": true,
"selection": {
"collection": true,
"delete": true,
"download": true,
"edit": true,
"favorite": true,
"myList": true,
"play": true,
"playlist": true,
"queue": true,
"refresh": true,
"watched": true
},
"state": {
"containerRevision": 0,
"favorite": true,
"personalRevision": 0,
"rating": 0,
"watched": true,
"watchlisted": true
},
"watched": true
},
"homeTitleContext": {
"genres": [
"string"
],
"kind": "string",
"seasonCount": 0,
"year": 0
},
"id": "id_8h2k4q",
"kind": "string",
"label": "string",
"language": "en",
"lastChanged": "string",
"latestEpisode": {
"airDate": "string",
"count": 0,
"episodeNumber": 0,
"seasonNumber": 0,
"title": "Fargo"
},
"libraryId": "id_8h2k4q",
"media": {
"absoluteNumber": 0,
"activeBeginYear": 0,
"activeEndYear": 0,
"addedAt": "2026-10-18T19:30:00Z",
"airDate": "string",
"album": {
"id": "id_8h2k4q",
"name": "Fargo"
},
"albumCount": 0,
"albumType": "string",
"artist": {
"id": "id_8h2k4q",
"name": "Fargo"
},
"artistType": "string",
"artworkPaths": [
"string"
],
"audioFacts": {
"atmos": true,
"bitDepth": 0,
"channels": 0,
"codec": "string",
"layout": "string",
"lossless": true,
"sampleRate": 0
},
"author": "string",
"available": true,
"backdropUrl": "https://example.com/…",
"badges": [
{}
],
"bookProgress": {
"bookId": "id_8h2k4q",
"chapter": {},
"durationMs": 1800000,
"itemId": "id_8h2k4q",
"partPositionMs": 1800000,
"positionMs": 1800000,
"remainingMs": 1800000
},
"contentRating": "string",
"count": 0,
"country": "string",
"dateBased": true,
"discNumber": 0,
"displayTitle": "Fargo",
"durationMs": 1800000,
"edition": "string",
"episodeNumber": 0,
"favorite": true,
"genres": [
"string"
],
"homeActions": {
"collection": true,
"delete": true,
"details": true,
"download": true,
"editMetadata": true,
"favorite": true,
"myList": true,
"notInterested": true,
"play": true,
"played": true,
"playlist": true,
"queue": true,
"rating": true,
"refreshMetadata": true,
"removeFromContinue": true,
"selection": {},
"state": {},
"watched": true
},
"homeTitleContext": {
"genres": [],
"kind": "string",
"seasonCount": 0,
"year": 0
},
"id": "id_8h2k4q",
"kind": "string",
"label": "string",
"language": "en",
"lastChanged": "string",
"latestEpisode": {
"airDate": "string",
"count": 0,
"episodeNumber": 0,
"seasonNumber": 0,
"title": "Fargo"
},
"libraryId": "id_8h2k4q",
"missing": true,
"narrators": [
"string"
],
"navigation": {
"browse": {},
"category": "string",
"channelId": "id_8h2k4q",
"entityId": "id_8h2k4q",
"provenance": "string",
"sourceId": "id_8h2k4q",
"view": "string"
},
"new": true,
"origin": "string",
"overview": "string",
"overviewSource": "string",
"overviewSourceUrl": "https://example.com/…",
"pageCount": 0,
"pinned": true,
"playback": {
"itemId": "id_8h2k4q",
"startMs": 1800000
},
"plays": 0,
"posterUrl": "https://example.com/…",
"progressMs": 1800000,
"publicationType": "book",
"publishedYear": 0,
"publisher": "string",
"radioSeed": {
"id": "id_8h2k4q",
"kind": "string"
},
"rating": 0,
"readingMark": {
"itemId": "id_8h2k4q",
"read": true,
"revision": 0
},
"releaseDate": "string",
"removed": true,
"resolution": "string",
"role": "string",
"seasonCount": 0,
"seasonNumber": 0,
"series": [
{}
],
"show": {
"id": "id_8h2k4q",
"name": "Fargo"
},
"sortLetter": "string",
"special": true,
"stillUrl": "https://example.com/…",
"subtitle": "Fargo",
"title": "Fargo",
"totalAtLeast": 0,
"trackNumber": 0,
"unwatchedCount": 0,
"userRating": 0,
"watched": true,
"watchedCount": 0,
"watchlisted": true,
"year": 0,
"yearMax": 0,
"yearMin": 0
},
"missing": true,
"narrators": [
"string"
],
"navigation": {
"browse": {
"pivot": "string",
"query": {},
"sort": []
},
"category": "string",
"channelId": "id_8h2k4q",
"entityId": "id_8h2k4q",
"provenance": "string",
"sourceId": "id_8h2k4q",
"view": "string"
},
"new": true,
"origin": "string",
"overview": "string",
"overviewSource": "string",
"overviewSourceUrl": "https://example.com/…",
"pageCount": 0,
"pinned": true,
"playback": {
"itemId": "id_8h2k4q",
"startMs": 1800000
},
"plays": 0,
"posterUrl": "https://example.com/…",
"progressMs": 1800000,
"publicationType": "book",
"publishedYear": 0,
"publisher": "string",
"radioSeed": {
"id": "id_8h2k4q",
"kind": "string"
},
"rating": 0,
"readingMark": {
"itemId": "id_8h2k4q",
"read": true,
"revision": 0
},
"releaseDate": "string",
"removed": true,
"resolution": "string",
"role": "string",
"seasonCount": 0,
"seasonNumber": 0,
"series": [
{
"name": "Fargo",
"position": "string"
}
],
"show": {
"id": "id_8h2k4q",
"name": "Fargo"
},
"sortLetter": "string",
"special": true,
"stillUrl": "https://example.com/…",
"subtitle": "Fargo",
"title": "Fargo",
"totalAtLeast": 0,
"trackNumber": 0,
"unwatchedCount": 0,
"userRating": 0,
"watched": true,
"watchedCount": 0,
"watchlisted": true,
"year": 0,
"yearMax": 0,
"yearMin": 0
}
],
"pageInfo": {
"durationIsLowerBound": true,
"durationMs": 1800000,
"hasMore": true,
"nextCursor": "eyJvIjoyMH0",
"revision": "r12",
"start": 0,
"total": 0,
"totalIsLowerBound": true
},
"pivot": "string",
"positionIndex": [
{
"index": 0,
"key": "string"
}
],
"variant": "ready",
"wholeSelection": {
"catalogRevision": "r12",
"selector": {
"query": {
"filter": null,
"libraryId": "id_8h2k4q",
"pivot": "string",
"selectionBasis": "string",
"sort": [
{}
]
}
},
"total": 0,
"types": [
{
"capabilityCounts": {
"collection": 0,
"delete": 0,
"download": 0,
"edit": 0,
"favorite": 0,
"myList": 0,
"play": 0,
"playlist": 0,
"queue": 0,
"refresh": 0,
"watched": 0
},
"count": 0,
"kind": "string",
"libraries": [
{}
]
}
],
"unavailableActions": {
"delete": "unsupported-sort",
"metadataPreview": "preview-limit",
"play": "unsupported-sort",
"playlist": "unsupported-sort",
"queue": "unsupported-sort"
}
},
"wholeSelectionPreparing": {
"kind": "browse-selection-preparing",
"queryId": "id_8h2k4q",
"retryAfterMs": 1800000,
"state": "preparing",
"variant": "preparing"
},
"wholeSelectionUnavailable": {
"reason": "search_not_bounded"
}
}appliedobjectrequired
queryobject | any | nullrequired
- fieldstringrequiredone of "releaseDate", "dateAdded", "lastPlayedAt"
- operatorstringrequiredone of "within-last-days"
- valueintegerrequired1–36500
- variant"relative"required
seekobject
- prefixstringrequired
sortarray of objectrequired
- directionstringrequired
- fieldstringrequired
- seedinteger
displayTargetsarray of object
- entryIdstringrequired
- membershipIdstringrequired
entriesarray of objectrequired
- absoluteNumberinteger
- activeBeginYearinteger
- activeEndYearinteger
- addedAtstring | any | null
- airDatestring
albumobject
- idstringrequired
- namestringrequired
- albumCountinteger
- albumTypestring
artistobject
- idstringrequired
- namestringrequired
- artistTypestring
- artworkPathsarray of string
audioFactsobject
- atmosboolean
- bitDepthinteger
- channelsinteger
- codecstringrequired
- layoutstring
- losslessboolean
- sampleRateinteger
- authorstring
- availableboolean
- backdropUrlstring
badgesarray of object0–2 items
- bitDepthintegerrequired≥ 17
- codecstringrequiredpattern ^[A-Za-z0-9_.+-]{1,64}$
- sampleRateintegerrequired≥ 1
- variant"lossless"required
bookProgressobject
- bookIdstringrequired
chapterobject
- endMsintegerrequired
- indexintegerrequired
- startMsintegerrequired
- titlestringrequired
- durationMsinteger
- itemIdstringrequired
- partPositionMsintegerrequired
- positionMsinteger
- remainingMsinteger
- contentRatingstring
- countinteger
- countrystring
- dateBasedboolean
- discNumberinteger
- displayTitlestring
- durationMsinteger≥ 0
- editionstring
- episodeNumberinteger
- favoriteboolean
- genresarray of string
- hiddenboolean | any | null
homeActionsobject
- collectionbooleanrequired
- deletebooleanrequired
- detailsbooleanrequired
- downloadbooleanrequired
- editMetadatabooleanrequired
- favoritebooleanrequired
- myListbooleanrequired
- notInterestedboolean
- playbooleanrequired
- playedbooleanrequired
- playlistbooleanrequired
- queuebooleanrequired
- ratingbooleanrequired
- refreshMetadatabooleanrequired
- removeFromContinueboolean
selectionobjectrequired
- collectionbooleanrequired
- deletebooleanrequired
- downloadbooleanrequired
- editbooleanrequired
- favoritebooleanrequired
- myListbooleanrequired
- playbooleanrequired
- playlistbooleanrequired
- queuebooleanrequired
- refreshbooleanrequired
- watchedbooleanrequired
stateobjectrequired
- containerRevisionintegerrequired
- favoritebooleanrequired
- personalRevisionintegerrequired
- ratingnumber | any | nullrequired
- watchedbooleanrequired
- watchlistedbooleanrequired
- watchedbooleanrequired
homeTitleContextobject
- genresarray of stringrequired
- kindstringrequired
- seasonCountinteger
- yearinteger
- idstringrequired
- kindstringrequired
- labelstring
- languagestring
- lastChangedstring
latestEpisodeobject
- airDatestringrequired
- countintegerrequired
- episodeNumberintegerrequired
- seasonNumberinteger
- titlestring
- libraryIdstring
mediaobject
- absoluteNumberinteger
- activeBeginYearinteger
- activeEndYearinteger
- addedAtstring | any | nullrequired
- airDatestring
albumobject
- idstringrequired
- namestringrequired
- albumCountinteger
- albumTypestring
artistobject
- idstringrequired
- namestringrequired
- artistTypestring
- artworkPathsarray of string
audioFactsobject
- atmosboolean
- bitDepthinteger
- channelsinteger
- codecstringrequired
- layoutstring
- losslessboolean
- sampleRateinteger
- authorstring
- availableboolean
- backdropUrlstring
badgesarray of object0–2 items
- bitDepthintegerrequired≥ 17
- codecstringrequiredpattern ^[A-Za-z0-9_.+-]{1,64}$
- sampleRateintegerrequired≥ 1
- variant"lossless"required
bookProgressobject
- bookIdstringrequired
chapterobject
- endMsintegerrequired
- indexintegerrequired
- startMsintegerrequired
- titlestringrequired
- durationMsinteger
- itemIdstringrequired
- partPositionMsintegerrequired
- positionMsinteger
- remainingMsinteger
- contentRatingstring
- countinteger
- countrystring
- dateBasedboolean
- discNumberinteger
- displayTitlestring
- durationMsinteger≥ 0
- editionstring
- episodeNumberinteger
- favoriteboolean
- genresarray of string
homeActionsobject
- collectionbooleanrequired
- deletebooleanrequired
- detailsbooleanrequired
- downloadbooleanrequired
- editMetadatabooleanrequired
- favoritebooleanrequired
- myListbooleanrequired
- notInterestedboolean
- playbooleanrequired
- playedbooleanrequired
- playlistbooleanrequired
- queuebooleanrequired
- ratingbooleanrequired
- refreshMetadatabooleanrequired
- removeFromContinueboolean
selectionobjectrequired
- collectionbooleanrequired
- deletebooleanrequired
- downloadbooleanrequired
- editbooleanrequired
- favoritebooleanrequired
- myListbooleanrequired
- playbooleanrequired
- playlistbooleanrequired
- queuebooleanrequired
- refreshbooleanrequired
- watchedbooleanrequired
stateobjectrequired
- containerRevisionintegerrequired
- favoritebooleanrequired
- personalRevisionintegerrequired
- ratingnumber | any | nullrequired
- watchedbooleanrequired
- watchlistedbooleanrequired
- watchedbooleanrequired
homeTitleContextobject
- genresarray of stringrequired
- kindstringrequired
- seasonCountinteger
- yearinteger
- idstringrequired
- kindstringrequired
- labelstring
- languagestring
- lastChangedstring
latestEpisodeobject
- airDatestringrequired
- countintegerrequired
- episodeNumberintegerrequired
- seasonNumberinteger
- titlestring
- libraryIdstring
- missingbooleanrequired
- narratorsarray of string
navigationobject
browseobject
- pivotstringrequiredlength 1–256
- queryobject
sortarray of objectrequired0–1 items
- directionstringrequiredone of "asc", "desc"
- fieldstringrequired
- categorystring
- channelIdstring
- entityIdstring
- provenancestring
- sourceIdstring
- viewstringrequired
- newboolean
- originstring
- overviewstring
- overviewSourcestring
- overviewSourceUrlstring
- pageCountinteger
- pinnedboolean
playbackobject
- itemIdstringrequired
- startMsinteger≥ 0
- playsinteger
- posterUrlstring
- progressMsinteger≥ 0
- publicationTypestringone of "book", "magazine", "newspaper"
- publishedYearinteger
- publisherstring
radioSeedobject
- idstringrequired
- kindstringrequired
- ratingnumber
readingMarkobject
- itemIdstringrequired
- readbooleanrequired
- revisionintegerrequired
- releaseDatestring
- removedboolean
- resolutionstring
- rolestring
- seasonCountinteger
- seasonNumberinteger
seriesarray of object
- namestringrequired
- positionstring
showobject
- idstringrequired
- namestringrequired
- sortLetterstring
- specialboolean
- stillUrlstring
- subtitlestring
- titlestringrequired
- totalAtLeastinteger
- trackNumberinteger
- unwatchedCountinteger
- userRatinginteger | any | null
- watchedboolean
- watchedCountinteger
- watchlistedboolean
- yearinteger
- yearMaxinteger
- yearMininteger
- missingboolean
- narratorsarray of string
navigationobject
browseobject
- pivotstringrequiredlength 1–256
- queryobject
sortarray of objectrequired0–1 items
- directionstringrequiredone of "asc", "desc"
- fieldstringrequired
- categorystring
- channelIdstring
- entityIdstring
- provenancestring
- sourceIdstring
- viewstringrequired
- newboolean
- originstring
- overviewstring
- overviewSourcestring
- overviewSourceUrlstring
- pageCountinteger
- pinnedboolean
playbackobject
- itemIdstringrequired
- startMsinteger≥ 0
- playsinteger
- posterUrlstring
- progressMsinteger≥ 0
- publicationTypestringone of "book", "magazine", "newspaper"
- publishedYearinteger
- publisherstring
radioSeedobject
- idstringrequired
- kindstringrequired
- ratingnumber
readingMarkobject
- itemIdstringrequired
- readbooleanrequired
- revisionintegerrequired
- releaseDatestring
- removedboolean
- resolutionstring
- rolestring
- seasonCountinteger
- seasonNumberinteger
seriesarray of object
- namestringrequired
- positionstring
showobject
- idstringrequired
- namestringrequired
- sortLetterstring
- specialboolean
- stillUrlstring
- subtitlestring
- titlestring
- totalAtLeastinteger
- trackNumberinteger
- unwatchedCountinteger
- userRatinginteger | any | null
- watchedboolean
- watchedCountinteger
- watchlistedboolean
- yearinteger
- yearMaxinteger
- yearMininteger
pageInfoobjectrequired
- durationIsLowerBoundbooleanrequired
- durationMsintegerrequired
- hasMorebooleanrequired
- nextCursorstringrequired
- revisionstringrequired
- startintegerrequired
- totalintegerrequired
- totalIsLowerBoundbooleanrequired
- pivotstringrequired
positionIndexarray of objectrequired
- indexintegerrequired
- keystringrequired
- variant"ready"required
wholeSelectionobject
- catalogRevisionstringrequired
selectorobjectrequired
queryobjectrequired
- filterany
- libraryIdstringrequired
- pivotstringrequired
- selectionBasisstringpattern ^[a-f0-9]{64}$
sortarray of object
- directionstringrequired
- fieldstringrequired
- seedinteger
- totalintegerrequired
typesarray of objectrequired
capabilityCountsobjectrequired
- collectionintegerrequired
- deleteintegerrequired
- downloadintegerrequired
- editintegerrequired
- favoriteintegerrequired
- myListintegerrequired
- playintegerrequired
- playlistintegerrequired
- queueintegerrequired
- refreshintegerrequired
- watchedintegerrequired
- countintegerrequired
- kindstringrequired
librariesarray of objectrequired
- countintegerrequired
- libraryIdstringrequired
unavailableActionsobject
- deletestringone of "unsupported-sort"
- metadataPreviewstringone of "preview-limit"
- playstringone of "unsupported-sort"
- playliststringone of "unsupported-sort"
- queuestringone of "unsupported-sort"
wholeSelectionPreparingobject
- kindstringrequiredone of "browse-selection-preparing"
- queryIdstringrequiredlength 1–128
- retryAfterMsintegerrequired≥ 1
- statestringrequiredone of "preparing"
- variant"preparing"required
wholeSelectionUnavailableobject
- reasonstringrequiredone of "search_not_bounded"
202Successapplication/json
{
"kind": "reading-browse-preparing",
"queryId": "id_8h2k4q",
"retryAfterMs": 1800000,
"state": "preparing",
"variant": "preparing"
}- kind"reading-browse-preparing"required
- queryIdstringrequiredlength 1–256pattern ^[A-Za-z0-9_-]+$
- retryAfterMsintegerrequired≥ 1
- state"preparing"required
- variant"preparing"required
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesinvalid_requestunauthorizednot_permittednot_foundrevision_mismatchstale_continuationsearch_busyinternaldatabase_busy
Example request
curl -X GET "http://127.0.0.1:32500/v1/libraries/{id}/reading-browse-queries/{queryId}" \
-H "Authorization: Bearer $PORTICO_API_KEY"DELETE/v1/libraries/{id}/reading-facet-queries/{queryId}Release this caller's Reading facet interestread
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the read scope, or a signed-in session
- OpenAPI operation ID
delete_library_reading_facet_query
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string | |
queryIdrequired | path | string |
Responses
204Success
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesinvalid_requestinvalid_cursorunauthorizednot_permittednot_foundstale_continuationsearch_busyinternaldatabase_busywriter_capacity
Example request
curl -X DELETE "http://127.0.0.1:32500/v1/libraries/{id}/reading-facet-queries/{queryId}" \
-H "Authorization: Bearer $PORTICO_API_KEY"GET/v1/libraries/{id}/reading-facet-queries/{queryId}Read a prepared Reading facet pageread
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the read scope, or a signed-in session
- OpenAPI operation ID
get_library_reading_facet_query
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string | |
queryIdrequired | path | string |
Responses
200Successapplication/json
{
"field": "string",
"revision": "r12",
"total": 0,
"totalIsLowerBound": true,
"values": [
{
"count": 0,
"countIsLowerBound": true,
"label": "string",
"seriesId": "id_8h2k4q",
"value": "string"
}
],
"variant": "page"
}- fieldstringrequired
- revisionstring
- totalintegerrequired
- totalIsLowerBoundbooleanrequired
valuesarray of objectrequired
- countintegerrequired
- countIsLowerBoundbooleanrequired
- labelstringrequired
- seriesIdstringpattern ^[A-Za-z0-9_-]{43}$
- valuestringrequired
- variant"page"required
202Successapplication/json
{
"kind": "reading-facet-preparing",
"queryId": "id_8h2k4q",
"retryAfterMs": 1800000,
"state": "preparing",
"variant": "reading-preparing"
}- kindstringrequiredone of "reading-facet-preparing"
- queryIdstringrequiredlength 1–∞
- retryAfterMsintegerrequired≥ 250
- statestringrequiredone of "preparing"
- variant"reading-preparing"required
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesinvalid_requestinvalid_cursorunauthorizednot_permittednot_foundstale_continuationsearch_busyinternaldatabase_busy
Example request
curl -X GET "http://127.0.0.1:32500/v1/libraries/{id}/reading-facet-queries/{queryId}" \
-H "Authorization: Bearer $PORTICO_API_KEY"POST/v1/libraries/{id}/scansRun library scanslibrary
- Audience
- Integrations · Native API
- Authorization
- API key or personal access token with the library scope, or a signed-in session
- OpenAPI operation ID
post_libraries_id_scans
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | 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/libraries/{id}/scans" \
-H "Authorization: Bearer $PORTICO_API_KEY"POST/v1/libraries/{id}/selection-actionsConfirm the exact preview and admit durable immutable target commandsread
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the read scope, or a signed-in session
- OpenAPI operation ID
create_selection_action- Max body
- 128 KiB
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string |
Request body application/json · required
{
"confirmation": "string",
"operationId": "id_8h2k4q",
"preparationId": "id_8h2k4q"
}- confirmationstringrequired
- operationIdstringrequiredlength 1–160pattern ^[A-Za-z0-9_-]+$
- preparationIdstringrequiredlength 1–128pattern ^[A-Za-z0-9_-]+$
Responses
202Successapplication/json
{
"action": "delete",
"admitted": 0,
"bytesDeleted": 0,
"done": 0,
"errorCode": "string",
"failed": 0,
"filesDeleted": 0,
"operationId": "id_8h2k4q",
"retryAfterMs": 1800000,
"state": "capturing",
"total": 1
}- actionstringrequiredone of "delete", "download"
- admittedintegerrequired≥ 0
- bytesDeletedintegerrequired≥ 0
- doneintegerrequired≥ 0
- errorCodestring
- failedintegerrequired≥ 0
- filesDeletedintegerrequired≥ 0
- operationIdstringrequiredlength 1–160pattern ^[A-Za-z0-9_-]+$
- retryAfterMsintegerrequired0–60000
- statestringrequiredone of "capturing", "sealed", "running", "cancelling", "complete", "partial", "failed", "cancelled"
- totalintegerrequired≥ 1
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesinvalid_requestunauthorizednot_permittednot_foundstale_continuationrate_limitedidempotency_key_reusedinternaltimeoutdatabase_busywriter_capacity
Example request
curl -X POST "http://127.0.0.1:32500/v1/libraries/{id}/selection-actions" \
-H "Authorization: Bearer $PORTICO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"confirmation":"string","operationId":"id_8h2k4q","preparationId":"id_8h2k4q"}'POST/v1/libraries/{id}/selection-actions/preparationsPrepare an exact whole-view delete or download confirmationread
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the read scope, or a signed-in session
- OpenAPI operation ID
create_selection_action_preparation- Max body
- 128 KiB
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string |
Request body application/json · required
{
"action": "delete",
"expected": {
"catalogRevision": "r12"
},
"options": {
"deleteFiles": true
},
"selector": {
"query": {
"filter": null,
"libraryId": "id_8h2k4q",
"pivot": "string",
"selectionBasis": "string",
"sort": [
{
"direction": "string",
"field": "string",
"seed": 0
}
]
}
}
}- actionstringrequiredone of "delete"
expectedobjectrequired
- catalogRevisionstringrequiredpattern ^browse_[a-f0-9]{64}$
optionsobjectrequired
- deleteFilesbooleanrequired
selectorobjectrequired
queryobjectrequired
- filterany
- libraryIdstringrequired
- pivotstringrequired
- selectionBasisstringrequiredpattern ^[a-f0-9]{64}$
sortarray of object
- directionstringrequired
- fieldstringrequired
- seedinteger
Responses
202Successapplication/json
{
"kind": "selection-action-preparing",
"preparationId": "id_8h2k4q",
"retryAfterMs": 1800000
}- kindstringrequiredone of "selection-action-preparing"
- preparationIdstringrequiredlength 1–128pattern ^[A-Za-z0-9_-]+$
- retryAfterMsintegerrequired1–60000
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesinvalid_requestunauthorizednot_permittednot_foundstale_continuationrate_limitedidempotency_key_reusedinternaldatabase_busywriter_capacity
Example request
curl -X POST "http://127.0.0.1:32500/v1/libraries/{id}/selection-actions/preparations" \
-H "Authorization: Bearer $PORTICO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"action": "delete",
"expected": {
"catalogRevision": "r12"
},
"options": {
"deleteFiles": true
},
"selector": {
"query": {
"filter": null,
"libraryId": "id_8h2k4q",
"pivot": "string",
"selectionBasis": "string",
"sort": [
{
"direction": "string",
"field": "string",
"seed": 0
}
]
}
}
}'DELETE/v1/libraries/{id}/selection-actions/preparations/{preparationId}Release this caller's unconfirmed action preparationread
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the read scope, or a signed-in session
- OpenAPI operation ID
delete_selection_action_preparation
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string | |
preparationIdrequired | path | string |
Responses
204Success
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesinvalid_requestunauthorizednot_permittednot_foundstale_continuationrate_limitedidempotency_key_reusedinternaldatabase_busywriter_capacity
Example request
curl -X DELETE "http://127.0.0.1:32500/v1/libraries/{id}/selection-actions/preparations/{preparationId}" \
-H "Authorization: Bearer $PORTICO_API_KEY"GET/v1/libraries/{id}/selection-actions/preparations/{preparationId}Read an exact volatile action previewread
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the read scope, or a signed-in session
- OpenAPI operation ID
get_selection_action_preparation
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string | |
preparationIdrequired | path | string |
Responses
200Successapplication/json
{
"action": "delete",
"basis": "string",
"bytes": 0,
"bytesKnown": true,
"confirmation": "string",
"confirmationKind": "title",
"expiresAt": "2026-10-18T19:30:00Z",
"files": 0,
"kind": "selection-action-preview",
"preparationId": "id_8h2k4q",
"sample": [
{
"itemId": "id_8h2k4q",
"kind": "string",
"title": "Fargo"
}
],
"total": 1
}- actionstringrequiredone of "delete", "download"
- basisstringrequiredpattern ^[a-f0-9]{64}$
- bytesintegerrequired≥ 0
- bytesKnownbooleanrequired
- confirmationstringrequired
- confirmationKindstringrequiredone of "title", "count"
- expiresAtstring (date-time)required
- filesintegerrequired≥ 0
- kindstringrequiredone of "selection-action-preview"
- preparationIdstringrequiredlength 1–128pattern ^[A-Za-z0-9_-]+$
samplearray of objectrequired0–20 items
- itemIdstringrequired
- kindstringrequired
- titlestringrequired
- totalintegerrequired≥ 1
202Successapplication/json
{
"kind": "selection-action-preparing",
"preparationId": "id_8h2k4q",
"retryAfterMs": 1800000
}- kindstringrequiredone of "selection-action-preparing"
- preparationIdstringrequiredlength 1–128pattern ^[A-Za-z0-9_-]+$
- retryAfterMsintegerrequired1–60000
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesinvalid_requestunauthorizednot_permittednot_foundstale_continuationrate_limitedidempotency_key_reusedinternaldatabase_busy
Example request
curl -X GET "http://127.0.0.1:32500/v1/libraries/{id}/selection-actions/preparations/{preparationId}" \
-H "Authorization: Bearer $PORTICO_API_KEY"GET/v1/libraries/{id}/show-workspaceRead library show workspaceread
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the read scope, or a signed-in session
- OpenAPI operation ID
get_libraries_id_show_workspace
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string | |
episodeDirection | query | string | |
playState | query | string | |
cursor | query | string | |
episodeId | query | string | |
group | query | string | |
seasonCursor | query | string | |
seasonId | query | string | |
selectedSeasonId | query | string | |
showId | query | string |
Responses
200Successapplication/json
{
"episodeCredits": [
{
"department": "string",
"id": "id_8h2k4q",
"name": "Fargo",
"ordinal": 0,
"portraitUrl": "https://example.com/…",
"role": "string"
}
],
"episodes": {
"actions": [
"string"
],
"empty": {
"fallback": "string",
"key": "string",
"params": {
"key": "string"
}
},
"entity": {
"absoluteNumber": 0,
"activeBeginYear": 0,
"activeEndYear": 0,
"addedAt": "2026-10-18T19:30:00Z",
"airDate": "string",
"album": {
"id": "id_8h2k4q",
"name": "Fargo"
},
"albumCount": 0,
"albumType": "string",
"artist": {
"id": "id_8h2k4q",
"name": "Fargo"
},
"artistType": "string",
"artworkPaths": [
"string"
],
"audioFacts": {
"atmos": true,
"bitDepth": 0,
"channels": 0,
"codec": "string",
"layout": "string",
"lossless": true,
"sampleRate": 0
},
"author": "string",
"available": true,
"backdropUrl": "https://example.com/…",
"badges": [
{
"bitDepth": 17,
"codec": "string",
"sampleRate": 1,
"variant": "lossless"
}
],
"bookProgress": {
"bookId": "id_8h2k4q",
"chapter": {
"endMs": 1800000,
"index": 0,
"startMs": 1800000,
"title": "Fargo"
},
"durationMs": 1800000,
"itemId": "id_8h2k4q",
"partPositionMs": 1800000,
"positionMs": 1800000,
"remainingMs": 1800000
},
"contentRating": "string",
"count": 0,
"country": "string",
"dateBased": true,
"discNumber": 0,
"displayTitle": "Fargo",
"durationMs": 1800000,
"edition": "string",
"episodeNumber": 0,
"favorite": true,
"genres": [
"string"
],
"hidden": true,
"homeActions": {
"collection": true,
"delete": true,
"details": true,
"download": true,
"editMetadata": true,
"favorite": true,
"myList": true,
"notInterested": true,
"play": true,
"played": true,
"playlist": true,
"queue": true,
"rating": true,
"refreshMetadata": true,
"removeFromContinue": true,
"selection": {
"collection": true,
"delete": true,
"download": true,
"edit": true,
"favorite": true,
"myList": true,
"play": true,
"playlist": true,
"queue": true,
"refresh": true,
"watched": true
},
"state": {
"containerRevision": 0,
"favorite": true,
"personalRevision": 0,
"rating": 0,
"watched": true,
"watchlisted": true
},
"watched": true
},
"homeTitleContext": {
"genres": [
"string"
],
"kind": "string",
"seasonCount": 0,
"year": 0
},
"id": "id_8h2k4q",
"kind": "string",
"label": "string",
"language": "en",
"lastChanged": "string",
"latestEpisode": {
"airDate": "string",
"count": 0,
"episodeNumber": 0,
"seasonNumber": 0,
"title": "Fargo"
},
"libraryId": "id_8h2k4q",
"media": {
"absoluteNumber": 0,
"activeBeginYear": 0,
"activeEndYear": 0,
"addedAt": "2026-10-18T19:30:00Z",
"airDate": "string",
"album": {
"id": "id_8h2k4q",
"name": "Fargo"
},
"albumCount": 0,
"albumType": "string",
"artist": {
"id": "id_8h2k4q",
"name": "Fargo"
},
"artistType": "string",
"artworkPaths": [
"string"
],
"audioFacts": {
"atmos": true,
"bitDepth": 0,
"channels": 0,
"codec": "string",
"layout": "string",
"lossless": true,
"sampleRate": 0
},
"author": "string",
"available": true,
"backdropUrl": "https://example.com/…",
"badges": [
{}
],
"bookProgress": {
"bookId": "id_8h2k4q",
"chapter": {},
"durationMs": 1800000,
"itemId": "id_8h2k4q",
"partPositionMs": 1800000,
"positionMs": 1800000,
"remainingMs": 1800000
},
"contentRating": "string",
"count": 0,
"country": "string",
"dateBased": true,
"discNumber": 0,
"displayTitle": "Fargo",
"durationMs": 1800000,
"edition": "string",
"episodeNumber": 0,
"favorite": true,
"genres": [
"string"
],
"homeActions": {
"collection": true,
"delete": true,
"details": true,
"download": true,
"editMetadata": true,
"favorite": true,
"myList": true,
"notInterested": true,
"play": true,
"played": true,
"playlist": true,
"queue": true,
"rating": true,
"refreshMetadata": true,
"removeFromContinue": true,
"selection": {},
"state": {},
"watched": true
},
"homeTitleContext": {
"genres": [],
"kind": "string",
"seasonCount": 0,
"year": 0
},
"id": "id_8h2k4q",
"kind": "string",
"label": "string",
"language": "en",
"lastChanged": "string",
"latestEpisode": {
"airDate": "string",
"count": 0,
"episodeNumber": 0,
"seasonNumber": 0,
"title": "Fargo"
},
"libraryId": "id_8h2k4q",
"missing": true,
"narrators": [
"string"
],
"navigation": {
"browse": {},
"category": "string",
"channelId": "id_8h2k4q",
"entityId": "id_8h2k4q",
"provenance": "string",
"sourceId": "id_8h2k4q",
"view": "string"
},
"new": true,
"origin": "string",
"overview": "string",
"overviewSource": "string",
"overviewSourceUrl": "https://example.com/…",
"pageCount": 0,
"pinned": true,
"playback": {
"itemId": "id_8h2k4q",
"startMs": 1800000
},
"plays": 0,
"posterUrl": "https://example.com/…",
"progressMs": 1800000,
"publicationType": "book",
"publishedYear": 0,
"publisher": "string",
"radioSeed": {
"id": "id_8h2k4q",
"kind": "string"
},
"rating": 0,
"readingMark": {
"itemId": "id_8h2k4q",
"read": true,
"revision": 0
},
"releaseDate": "string",
"removed": true,
"resolution": "string",
"role": "string",
"seasonCount": 0,
"seasonNumber": 0,
"series": [
{}
],
"show": {
"id": "id_8h2k4q",
"name": "Fargo"
},
"sortLetter": "string",
"special": true,
"stillUrl": "https://example.com/…",
"subtitle": "Fargo",
"title": "Fargo",
"totalAtLeast": 0,
"trackNumber": 0,
"unwatchedCount": 0,
"userRating": 0,
"watched": true,
"watchedCount": 0,
"watchlisted": true,
"year": 0,
"yearMax": 0,
"yearMin": 0
},
"missing": true,
"narrators": [
"string"
],
"navigation": {
"browse": {
"pivot": "string",
"query": {},
"sort": []
},
"category": "string",
"channelId": "id_8h2k4q",
"entityId": "id_8h2k4q",
"provenance": "string",
"sourceId": "id_8h2k4q",
"view": "string"
},
"new": true,
"origin": "string",
"overview": "string",
"overviewSource": "string",
"overviewSourceUrl": "https://example.com/…",
"pageCount": 0,
"pinned": true,
"playback": {
"itemId": "id_8h2k4q",
"startMs": 1800000
},
"plays": 0,
"posterUrl": "https://example.com/…",
"progressMs": 1800000,
"publicationType": "book",
"publishedYear": 0,
"publisher": "string",
"radioSeed": {
"id": "id_8h2k4q",
"kind": "string"
},
"rating": 0,
"readingMark": {
"itemId": "id_8h2k4q",
"read": true,
"revision": 0
},
"releaseDate": "string",
"removed": true,
"resolution": "string",
"role": "string",
"seasonCount": 0,
"seasonNumber": 0,
"series": [
{
"name": "Fargo",
"position": "string"
}
],
"show": {
"id": "id_8h2k4q",
"name": "Fargo"
},
"sortLetter": "string",
"special": true,
"stillUrl": "https://example.com/…",
"subtitle": "Fargo",
"title": "Fargo",
"totalAtLeast": 0,
"trackNumber": 0,
"unwatchedCount": 0,
"userRating": 0,
"watched": true,
"watchedCount": 0,
"watchlisted": true,
"year": 0,
"yearMax": 0,
"yearMin": 0
},
"filters": [
{
"id": "id_8h2k4q",
"labelKey": "string",
"options": [
{}
]
}
],
"heading": {
"fallback": "string",
"key": "string",
"params": {
"key": "string"
}
},
"listening": {
"actions": [
"string"
],
"resume": {
"itemId": "id_8h2k4q",
"positionMs": 1800000
},
"resumeUnavailable": true,
"target": {
"id": "id_8h2k4q",
"kind": "string",
"libraryId": "id_8h2k4q"
}
},
"navigation": [
{
"id": "id_8h2k4q",
"labelKey": "string",
"view": "string"
}
],
"playlistRevision": 0,
"query": {
"category": "string",
"direction": "string",
"limit": 0,
"q": "string",
"searchMode": "string",
"sort": "string"
},
"revision": {
"catalog": 0,
"viewer": 0
},
"scope": {
"entityId": "id_8h2k4q",
"libraryId": "id_8h2k4q",
"libraryKind": "string",
"serverId": "id_8h2k4q",
"view": "string",
"viewerFence": "string"
},
"sections": [
{
"entries": [
{}
],
"heading": {
"fallback": "string",
"key": "string",
"params": {}
},
"id": "id_8h2k4q",
"nextCursor": "eyJvIjoyMH0",
"order": {
"last": "string",
"next": "string",
"previous": "string"
},
"seeAll": {
"pivot": "string",
"query": {},
"sort": []
},
"start": 0,
"totalCount": 0,
"type": "string",
"why": {
"code": "string",
"fallback": "string",
"params": {}
},
"whyTitles": [
{}
]
}
],
"shapeCounts": {
"posters": 0,
"squares": 0
},
"sorts": [
{
"directions": [
"string"
],
"id": "id_8h2k4q",
"labelKey": "string"
}
]
},
"groups": [
{
"count": 0,
"id": "id_8h2k4q",
"title": "Fargo"
}
],
"nextSeasonCursor": "eyJvIjoyMH0",
"nextUp": {
"absoluteNumber": 0,
"activeBeginYear": 0,
"activeEndYear": 0,
"addedAt": "2026-10-18T19:30:00Z",
"airDate": "string",
"album": {
"id": "id_8h2k4q",
"name": "Fargo"
},
"albumCount": 0,
"albumType": "string",
"artist": {
"id": "id_8h2k4q",
"name": "Fargo"
},
"artistType": "string",
"artworkPaths": [
"string"
],
"audioFacts": {
"atmos": true,
"bitDepth": 0,
"channels": 0,
"codec": "string",
"layout": "string",
"lossless": true,
"sampleRate": 0
},
"author": "string",
"available": true,
"backdropUrl": "https://example.com/…",
"badges": [
{
"bitDepth": 17,
"codec": "string",
"sampleRate": 1,
"variant": "lossless"
}
],
"bookProgress": {
"bookId": "id_8h2k4q",
"chapter": {
"endMs": 1800000,
"index": 0,
"startMs": 1800000,
"title": "Fargo"
},
"durationMs": 1800000,
"itemId": "id_8h2k4q",
"partPositionMs": 1800000,
"positionMs": 1800000,
"remainingMs": 1800000
},
"contentRating": "string",
"count": 0,
"country": "string",
"dateBased": true,
"discNumber": 0,
"displayTitle": "Fargo",
"durationMs": 1800000,
"edition": "string",
"episodeNumber": 0,
"favorite": true,
"genres": [
"string"
],
"hidden": true,
"homeActions": {
"collection": true,
"delete": true,
"details": true,
"download": true,
"editMetadata": true,
"favorite": true,
"myList": true,
"notInterested": true,
"play": true,
"played": true,
"playlist": true,
"queue": true,
"rating": true,
"refreshMetadata": true,
"removeFromContinue": true,
"selection": {
"collection": true,
"delete": true,
"download": true,
"edit": true,
"favorite": true,
"myList": true,
"play": true,
"playlist": true,
"queue": true,
"refresh": true,
"watched": true
},
"state": {
"containerRevision": 0,
"favorite": true,
"personalRevision": 0,
"rating": 0,
"watched": true,
"watchlisted": true
},
"watched": true
},
"homeTitleContext": {
"genres": [
"string"
],
"kind": "string",
"seasonCount": 0,
"year": 0
},
"id": "id_8h2k4q",
"kind": "string",
"label": "string",
"language": "en",
"lastChanged": "string",
"latestEpisode": {
"airDate": "string",
"count": 0,
"episodeNumber": 0,
"seasonNumber": 0,
"title": "Fargo"
},
"libraryId": "id_8h2k4q",
"media": {
"absoluteNumber": 0,
"activeBeginYear": 0,
"activeEndYear": 0,
"addedAt": "2026-10-18T19:30:00Z",
"airDate": "string",
"album": {
"id": "id_8h2k4q",
"name": "Fargo"
},
"albumCount": 0,
"albumType": "string",
"artist": {
"id": "id_8h2k4q",
"name": "Fargo"
},
"artistType": "string",
"artworkPaths": [
"string"
],
"audioFacts": {
"atmos": true,
"bitDepth": 0,
"channels": 0,
"codec": "string",
"layout": "string",
"lossless": true,
"sampleRate": 0
},
"author": "string",
"available": true,
"backdropUrl": "https://example.com/…",
"badges": [
{
"bitDepth": 17,
"codec": "string",
"sampleRate": 1,
"variant": "lossless"
}
],
"bookProgress": {
"bookId": "id_8h2k4q",
"chapter": {
"endMs": 1800000,
"index": 0,
"startMs": 1800000,
"title": "Fargo"
},
"durationMs": 1800000,
"itemId": "id_8h2k4q",
"partPositionMs": 1800000,
"positionMs": 1800000,
"remainingMs": 1800000
},
"contentRating": "string",
"count": 0,
"country": "string",
"dateBased": true,
"discNumber": 0,
"displayTitle": "Fargo",
"durationMs": 1800000,
"edition": "string",
"episodeNumber": 0,
"favorite": true,
"genres": [
"string"
],
"homeActions": {
"collection": true,
"delete": true,
"details": true,
"download": true,
"editMetadata": true,
"favorite": true,
"myList": true,
"notInterested": true,
"play": true,
"played": true,
"playlist": true,
"queue": true,
"rating": true,
"refreshMetadata": true,
"removeFromContinue": true,
"selection": {
"collection": true,
"delete": true,
"download": true,
"edit": true,
"favorite": true,
"myList": true,
"play": true,
"playlist": true,
"queue": true,
"refresh": true,
"watched": true
},
"state": {
"containerRevision": 0,
"favorite": true,
"personalRevision": 0,
"rating": 0,
"watched": true,
"watchlisted": true
},
"watched": true
},
"homeTitleContext": {
"genres": [
"string"
],
"kind": "string",
"seasonCount": 0,
"year": 0
},
"id": "id_8h2k4q",
"kind": "string",
"label": "string",
"language": "en",
"lastChanged": "string",
"latestEpisode": {
"airDate": "string",
"count": 0,
"episodeNumber": 0,
"seasonNumber": 0,
"title": "Fargo"
},
"libraryId": "id_8h2k4q",
"missing": true,
"narrators": [
"string"
],
"navigation": {
"browse": {
"pivot": "string",
"query": {},
"sort": []
},
"category": "string",
"channelId": "id_8h2k4q",
"entityId": "id_8h2k4q",
"provenance": "string",
"sourceId": "id_8h2k4q",
"view": "string"
},
"new": true,
"origin": "string",
"overview": "string",
"overviewSource": "string",
"overviewSourceUrl": "https://example.com/…",
"pageCount": 0,
"pinned": true,
"playback": {
"itemId": "id_8h2k4q",
"startMs": 1800000
},
"plays": 0,
"posterUrl": "https://example.com/…",
"progressMs": 1800000,
"publicationType": "book",
"publishedYear": 0,
"publisher": "string",
"radioSeed": {
"id": "id_8h2k4q",
"kind": "string"
},
"rating": 0,
"readingMark": {
"itemId": "id_8h2k4q",
"read": true,
"revision": 0
},
"releaseDate": "string",
"removed": true,
"resolution": "string",
"role": "string",
"seasonCount": 0,
"seasonNumber": 0,
"series": [
{
"name": "Fargo",
"position": "string"
}
],
"show": {
"id": "id_8h2k4q",
"name": "Fargo"
},
"sortLetter": "string",
"special": true,
"stillUrl": "https://example.com/…",
"subtitle": "Fargo",
"title": "Fargo",
"totalAtLeast": 0,
"trackNumber": 0,
"unwatchedCount": 0,
"userRating": 0,
"watched": true,
"watchedCount": 0,
"watchlisted": true,
"year": 0,
"yearMax": 0,
"yearMin": 0
},
"missing": true,
"narrators": [
"string"
],
"navigation": {
"browse": {
"pivot": "string",
"query": {
"key": null
},
"sort": [
{}
]
},
"category": "string",
"channelId": "id_8h2k4q",
"entityId": "id_8h2k4q",
"provenance": "string",
"sourceId": "id_8h2k4q",
"view": "string"
},
"new": true,
"origin": "string",
"overview": "string",
"overviewSource": "string",
"overviewSourceUrl": "https://example.com/…",
"pageCount": 0,
"pinned": true,
"playback": {
"itemId": "id_8h2k4q",
"startMs": 1800000
},
"plays": 0,
"posterUrl": "https://example.com/…",
"progressMs": 1800000,
"publicationType": "book",
"publishedYear": 0,
"publisher": "string",
"radioSeed": {
"id": "id_8h2k4q",
"kind": "string"
},
"rating": 0,
"readingMark": {
"itemId": "id_8h2k4q",
"read": true,
"revision": 0
},
"releaseDate": "string",
"removed": true,
"resolution": "string",
"role": "string",
"seasonCount": 0,
"seasonNumber": 0,
"series": [
{
"name": "Fargo",
"position": "string"
}
],
"show": {
"id": "id_8h2k4q",
"name": "Fargo"
},
"sortLetter": "string",
"special": true,
"stillUrl": "https://example.com/…",
"subtitle": "Fargo",
"title": "Fargo",
"totalAtLeast": 0,
"trackNumber": 0,
"unwatchedCount": 0,
"userRating": 0,
"watched": true,
"watchedCount": 0,
"watchlisted": true,
"year": 0,
"yearMax": 0,
"yearMin": 0
},
"revision": {
"catalog": 0,
"viewer": 0
},
"scope": {
"libraryId": "id_8h2k4q",
"serverId": "id_8h2k4q",
"viewerFence": "string"
},
"seasonTotalCount": 0,
"seasons": [
{
"episodeCount": 0,
"firstAired": "string",
"id": "id_8h2k4q",
"lastAired": "string",
"number": 0,
"overview": "string",
"posterUrl": "https://example.com/…",
"showId": "id_8h2k4q",
"title": "Fargo",
"unwatchedCount": 0,
"watchedCount": 0
}
],
"selected": {
"episodeId": "id_8h2k4q",
"group": "string",
"seasonId": "id_8h2k4q"
},
"settings": {
"absoluteNumbering": true,
"hideSeasons": true,
"newestFirst": true,
"ranges": true,
"revision": 0
},
"show": {
"addedAt": "2026-10-18T19:30:00Z",
"backdropUrl": "https://example.com/…",
"contentRating": "string",
"country": "string",
"episodeCount": 0,
"firstAired": "string",
"genres": [
"string"
],
"id": "id_8h2k4q",
"lastAired": "string",
"libraryId": "id_8h2k4q",
"libraryKind": "string",
"logoUrl": "https://example.com/…",
"network": "string",
"originalLanguage": "en",
"originalTitle": "Fargo",
"overview": "string",
"posterUrl": "https://example.com/…",
"providerMatchStatus": "string",
"providerObservedAt": "2026-10-18T19:30:00Z",
"providerSourceUrl": "https://example.com/…",
"rating": {
"scale": 0,
"value": 0,
"votes": 0
},
"status": "string",
"studio": "string",
"tagline": "string",
"title": "Fargo",
"unwatchedCount": 0,
"watchedCount": 0,
"year": 0
},
"showCredits": [
{
"department": "string",
"id": "id_8h2k4q",
"name": "Fargo",
"ordinal": 0,
"portraitUrl": "https://example.com/…",
"role": "string"
}
]
}episodeCreditsarray of object
- departmentstring
- idstring
- namestringrequired
- ordinalintegerrequired
- portraitUrlstring
- rolestring
episodesobjectrequired
- actionsarray of string
emptyobject
- fallbackstringrequired
- keystringrequired
- paramsobject
entityobject
- absoluteNumberinteger
- activeBeginYearinteger
- activeEndYearinteger
- addedAtstring | any | null
- airDatestring
albumobject
- idstringrequired
- namestringrequired
- albumCountinteger
- albumTypestring
artistobject
- idstringrequired
- namestringrequired
- artistTypestring
- artworkPathsarray of string
audioFactsobject
- atmosboolean
- bitDepthinteger
- channelsinteger
- codecstringrequired
- layoutstring
- losslessboolean
- sampleRateinteger
- authorstring
- availableboolean
- backdropUrlstring
badgesarray of object0–2 items
- bitDepthintegerrequired≥ 17
- codecstringrequiredpattern ^[A-Za-z0-9_.+-]{1,64}$
- sampleRateintegerrequired≥ 1
- variant"lossless"required
bookProgressobject
- bookIdstringrequired
chapterobject
- endMsintegerrequired
- indexintegerrequired
- startMsintegerrequired
- titlestringrequired
- durationMsinteger
- itemIdstringrequired
- partPositionMsintegerrequired
- positionMsinteger
- remainingMsinteger
- contentRatingstring
- countinteger
- countrystring
- dateBasedboolean
- discNumberinteger
- displayTitlestring
- durationMsinteger≥ 0
- editionstring
- episodeNumberinteger
- favoriteboolean
- genresarray of string
- hiddenboolean | any | null
homeActionsobject
- collectionbooleanrequired
- deletebooleanrequired
- detailsbooleanrequired
- downloadbooleanrequired
- editMetadatabooleanrequired
- favoritebooleanrequired
- myListbooleanrequired
- notInterestedboolean
- playbooleanrequired
- playedbooleanrequired
- playlistbooleanrequired
- queuebooleanrequired
- ratingbooleanrequired
- refreshMetadatabooleanrequired
- removeFromContinueboolean
selectionobjectrequired
- collectionbooleanrequired
- deletebooleanrequired
- downloadbooleanrequired
- editbooleanrequired
- favoritebooleanrequired
- myListbooleanrequired
- playbooleanrequired
- playlistbooleanrequired
- queuebooleanrequired
- refreshbooleanrequired
- watchedbooleanrequired
stateobjectrequired
- containerRevisionintegerrequired
- favoritebooleanrequired
- personalRevisionintegerrequired
- ratingnumber | any | nullrequired
- watchedbooleanrequired
- watchlistedbooleanrequired
- watchedbooleanrequired
homeTitleContextobject
- genresarray of stringrequired
- kindstringrequired
- seasonCountinteger
- yearinteger
- idstringrequired
- kindstringrequired
- labelstring
- languagestring
- lastChangedstring
latestEpisodeobject
- airDatestringrequired
- countintegerrequired
- episodeNumberintegerrequired
- seasonNumberinteger
- titlestring
- libraryIdstring
mediaobject
- absoluteNumberinteger
- activeBeginYearinteger
- activeEndYearinteger
- addedAtstring | any | nullrequired
- airDatestring
albumobject
- idstringrequired
- namestringrequired
- albumCountinteger
- albumTypestring
artistobject
- idstringrequired
- namestringrequired
- artistTypestring
- artworkPathsarray of string
audioFactsobject
- atmosboolean
- bitDepthinteger
- channelsinteger
- codecstringrequired
- layoutstring
- losslessboolean
- sampleRateinteger
- authorstring
- availableboolean
- backdropUrlstring
badgesarray of object0–2 items
- bitDepthintegerrequired≥ 17
- codecstringrequiredpattern ^[A-Za-z0-9_.+-]{1,64}$
- sampleRateintegerrequired≥ 1
- variant"lossless"required
bookProgressobject
- bookIdstringrequired
chapterobject
- endMsintegerrequired
- indexintegerrequired
- startMsintegerrequired
- titlestringrequired
- durationMsinteger
- itemIdstringrequired
- partPositionMsintegerrequired
- positionMsinteger
- remainingMsinteger
- contentRatingstring
- countinteger
- countrystring
- dateBasedboolean
- discNumberinteger
- displayTitlestring
- durationMsinteger≥ 0
- editionstring
- episodeNumberinteger
- favoriteboolean
- genresarray of string
homeActionsobject
- collectionbooleanrequired
- deletebooleanrequired
- detailsbooleanrequired
- downloadbooleanrequired
- editMetadatabooleanrequired
- favoritebooleanrequired
- myListbooleanrequired
- notInterestedboolean
- playbooleanrequired
- playedbooleanrequired
- playlistbooleanrequired
- queuebooleanrequired
- ratingbooleanrequired
- refreshMetadatabooleanrequired
- removeFromContinueboolean
selectionobjectrequired
- collectionbooleanrequired
- deletebooleanrequired
- downloadbooleanrequired
- editbooleanrequired
- favoritebooleanrequired
- myListbooleanrequired
- playbooleanrequired
- playlistbooleanrequired
- queuebooleanrequired
- refreshbooleanrequired
- watchedbooleanrequired
stateobjectrequired
- containerRevisionintegerrequired
- favoritebooleanrequired
- personalRevisionintegerrequired
- ratingnumber | any | nullrequired
- watchedbooleanrequired
- watchlistedbooleanrequired
- watchedbooleanrequired
homeTitleContextobject
- genresarray of stringrequired
- kindstringrequired
- seasonCountinteger
- yearinteger
- idstringrequired
- kindstringrequired
- labelstring
- languagestring
- lastChangedstring
latestEpisodeobject
- airDatestringrequired
- countintegerrequired
- episodeNumberintegerrequired
- seasonNumberinteger
- titlestring
- libraryIdstring
- missingbooleanrequired
- narratorsarray of string
navigationobject
browseobject
- pivotstringrequiredlength 1–256
- queryobject
sortarray of objectrequired0–1 items
- directionstringrequiredone of "asc", "desc"
- fieldstringrequired
- categorystring
- channelIdstring
- entityIdstring
- provenancestring
- sourceIdstring
- viewstringrequired
- newboolean
- originstring
- overviewstring
- overviewSourcestring
- overviewSourceUrlstring
- pageCountinteger
- pinnedboolean
playbackobject
- itemIdstringrequired
- startMsinteger≥ 0
- playsinteger
- posterUrlstring
- progressMsinteger≥ 0
- publicationTypestringone of "book", "magazine", "newspaper"
- publishedYearinteger
- publisherstring
radioSeedobject
- idstringrequired
- kindstringrequired
- ratingnumber
readingMarkobject
- itemIdstringrequired
- readbooleanrequired
- revisionintegerrequired
- releaseDatestring
- removedboolean
- resolutionstring
- rolestring
- seasonCountinteger
- seasonNumberinteger
seriesarray of object
- namestringrequired
- positionstring
showobject
- idstringrequired
- namestringrequired
- sortLetterstring
- specialboolean
- stillUrlstring
- subtitlestring
- titlestringrequired
- totalAtLeastinteger
- trackNumberinteger
- unwatchedCountinteger
- userRatinginteger | any | null
- watchedboolean
- watchedCountinteger
- watchlistedboolean
- yearinteger
- yearMaxinteger
- yearMininteger
- missingboolean
- narratorsarray of string
navigationobject
browseobject
- pivotstringrequiredlength 1–256
- queryobject
sortarray of objectrequired0–1 items
- directionstringrequiredone of "asc", "desc"
- fieldstringrequired
- categorystring
- channelIdstring
- entityIdstring
- provenancestring
- sourceIdstring
- viewstringrequired
- newboolean
- originstring
- overviewstring
- overviewSourcestring
- overviewSourceUrlstring
- pageCountinteger
- pinnedboolean
playbackobject
- itemIdstringrequired
- startMsinteger≥ 0
- playsinteger
- posterUrlstring
- progressMsinteger≥ 0
- publicationTypestringone of "book", "magazine", "newspaper"
- publishedYearinteger
- publisherstring
radioSeedobject
- idstringrequired
- kindstringrequired
- ratingnumber
readingMarkobject
- itemIdstringrequired
- readbooleanrequired
- revisionintegerrequired
- releaseDatestring
- removedboolean
- resolutionstring
- rolestring
- seasonCountinteger
- seasonNumberinteger
seriesarray of object
- namestringrequired
- positionstring
showobject
- idstringrequired
- namestringrequired
- sortLetterstring
- specialboolean
- stillUrlstring
- subtitlestring
- titlestring
- totalAtLeastinteger
- trackNumberinteger
- unwatchedCountinteger
- userRatinginteger | any | null
- watchedboolean
- watchedCountinteger
- watchlistedboolean
- yearinteger
- yearMaxinteger
- yearMininteger
filtersarray of objectrequired
- idstringrequired
- labelKeystringrequired
optionsarray of objectrequired
- countintegerrequired
- idstringrequired
- labelstringrequired
headingobjectrequired
- fallbackstringrequired
- keystringrequired
- paramsobject
listeningobject
- actionsarray of stringrequired
resumeobject
- itemIdstringrequired
- positionMsintegerrequired≥ 0
- resumeUnavailablebooleanrequired
targetobjectrequired
- idstringrequired
- kindstringrequired
- libraryIdstringrequired
navigationarray of objectrequired
- idstringrequired
- labelKeystringrequired
- viewstringrequired
- playlistRevisioninteger
queryobjectrequired
- categorystringrequired
- directionstringrequired
- limitintegerrequired
- qstringrequired
- searchModestringrequired
- sortstringrequired
revisionobjectrequired
- catalogintegerrequired
- viewerintegerrequired
scopeobjectrequired
- entityIdstringrequired
- libraryIdstringrequired
- libraryKindstringrequired
- serverIdstringrequired
- viewstringrequired
- viewerFencestringrequired
sectionsarray of objectrequired
entriesarray of objectrequired
- absoluteNumberinteger
- activeBeginYearinteger
- activeEndYearinteger
- addedAtstring | any | null
- airDatestring
albumobject
- idstringrequired
- namestringrequired
- albumCountinteger
- albumTypestring
artistobject
- idstringrequired
- namestringrequired
- artistTypestring
- artworkPathsarray of string
audioFactsobject
- atmosboolean
- bitDepthinteger
- channelsinteger
- codecstringrequired
- layoutstring
- losslessboolean
- sampleRateinteger
- authorstring
- availableboolean
- backdropUrlstring
badgesarray of object0–2 items
- bitDepthintegerrequired≥ 17
- codecstringrequiredpattern ^[A-Za-z0-9_.+-]{1,64}$
- sampleRateintegerrequired≥ 1
- variant"lossless"required
bookProgressobject
- bookIdstringrequired
chapterobject
- endMsintegerrequired
- indexintegerrequired
- startMsintegerrequired
- titlestringrequired
- durationMsinteger
- itemIdstringrequired
- partPositionMsintegerrequired
- positionMsinteger
- remainingMsinteger
- contentRatingstring
- countinteger
- countrystring
- dateBasedboolean
- discNumberinteger
- displayTitlestring
- durationMsinteger≥ 0
- editionstring
- episodeNumberinteger
- favoriteboolean
- genresarray of string
- hiddenboolean | any | null
homeActionsobject
- collectionbooleanrequired
- deletebooleanrequired
- detailsbooleanrequired
- downloadbooleanrequired
- editMetadatabooleanrequired
- favoritebooleanrequired
- myListbooleanrequired
- notInterestedboolean
- playbooleanrequired
- playedbooleanrequired
- playlistbooleanrequired
- queuebooleanrequired
- ratingbooleanrequired
- refreshMetadatabooleanrequired
- removeFromContinueboolean
selectionobjectrequired
- collectionbooleanrequired
- deletebooleanrequired
- downloadbooleanrequired
- editbooleanrequired
- favoritebooleanrequired
- myListbooleanrequired
- playbooleanrequired
- playlistbooleanrequired
- queuebooleanrequired
- refreshbooleanrequired
- watchedbooleanrequired
stateobjectrequired
- containerRevisionintegerrequired
- favoritebooleanrequired
- personalRevisionintegerrequired
- ratingnumber | any | nullrequired
- watchedbooleanrequired
- watchlistedbooleanrequired
- watchedbooleanrequired
homeTitleContextobject
- genresarray of stringrequired
- kindstringrequired
- seasonCountinteger
- yearinteger
- idstringrequired
- kindstringrequired
- labelstring
- languagestring
- lastChangedstring
latestEpisodeobject
- airDatestringrequired
- countintegerrequired
- episodeNumberintegerrequired
- seasonNumberinteger
- titlestring
- libraryIdstring
mediaobject
- absoluteNumberinteger
- activeBeginYearinteger
- activeEndYearinteger
- addedAtstring | any | nullrequired
- airDatestring
albumobject
- idstringrequired
- namestringrequired
- albumCountinteger
- albumTypestring
artistobject
- idstringrequired
- namestringrequired
- artistTypestring
- artworkPathsarray of string
audioFactsobject
- atmosboolean
- bitDepthinteger
- channelsinteger
- codecstringrequired
- layoutstring
- losslessboolean
- sampleRateinteger
- authorstring
- availableboolean
- backdropUrlstring
badgesarray of object0–2 items
- bitDepthintegerrequired≥ 17
- codecstringrequiredpattern ^[A-Za-z0-9_.+-]{1,64}$
- sampleRateintegerrequired≥ 1
- variant"lossless"required
bookProgressobject
- bookIdstringrequired
chapterobject
- endMsintegerrequired
- indexintegerrequired
- startMsintegerrequired
- titlestringrequired
- durationMsinteger
- itemIdstringrequired
- partPositionMsintegerrequired
- positionMsinteger
- remainingMsinteger
- contentRatingstring
- countinteger
- countrystring
- dateBasedboolean
- discNumberinteger
- displayTitlestring
- durationMsinteger≥ 0
- editionstring
- episodeNumberinteger
- favoriteboolean
- genresarray of string
homeActionsobject
- collectionbooleanrequired
- deletebooleanrequired
- detailsbooleanrequired
- downloadbooleanrequired
- editMetadatabooleanrequired
- favoritebooleanrequired
- myListbooleanrequired
- notInterestedboolean
- playbooleanrequired
- playedbooleanrequired
- playlistbooleanrequired
- queuebooleanrequired
- ratingbooleanrequired
- refreshMetadatabooleanrequired
- removeFromContinueboolean
selectionobjectrequired
- collectionbooleanrequired
- deletebooleanrequired
- downloadbooleanrequired
- editbooleanrequired
- favoritebooleanrequired
- myListbooleanrequired
- playbooleanrequired
- playlistbooleanrequired
- queuebooleanrequired
- refreshbooleanrequired
- watchedbooleanrequired
stateobjectrequired
- containerRevisionintegerrequired
- favoritebooleanrequired
- personalRevisionintegerrequired
- ratingnumber | any | nullrequired
- watchedbooleanrequired
- watchlistedbooleanrequired
- watchedbooleanrequired
homeTitleContextobject
- genresarray of stringrequired
- kindstringrequired
- seasonCountinteger
- yearinteger
- idstringrequired
- kindstringrequired
- labelstring
- languagestring
- lastChangedstring
latestEpisodeobject
- airDatestringrequired
- countintegerrequired
- episodeNumberintegerrequired
- seasonNumberinteger
- titlestring
- libraryIdstring
- missingbooleanrequired
- narratorsarray of string
navigationobject
browseobject
- pivotstringrequiredlength 1–256
- queryobject
- sortarray of objectrequired0–1 items
- categorystring
- channelIdstring
- entityIdstring
- provenancestring
- sourceIdstring
- viewstringrequired
- newboolean
- originstring
- overviewstring
- overviewSourcestring
- overviewSourceUrlstring
- pageCountinteger
- pinnedboolean
playbackobject
- itemIdstringrequired
- startMsinteger≥ 0
- playsinteger
- posterUrlstring
- progressMsinteger≥ 0
- publicationTypestringone of "book", "magazine", "newspaper"
- publishedYearinteger
- publisherstring
radioSeedobject
- idstringrequired
- kindstringrequired
- ratingnumber
readingMarkobject
- itemIdstringrequired
- readbooleanrequired
- revisionintegerrequired
- releaseDatestring
- removedboolean
- resolutionstring
- rolestring
- seasonCountinteger
- seasonNumberinteger
seriesarray of object
- namestringrequired
- positionstring
showobject
- idstringrequired
- namestringrequired
- sortLetterstring
- specialboolean
- stillUrlstring
- subtitlestring
- titlestringrequired
- totalAtLeastinteger
- trackNumberinteger
- unwatchedCountinteger
- userRatinginteger | any | null
- watchedboolean
- watchedCountinteger
- watchlistedboolean
- yearinteger
- yearMaxinteger
- yearMininteger
- missingboolean
- narratorsarray of string
navigationobject
browseobject
- pivotstringrequiredlength 1–256
- queryobject
sortarray of objectrequired0–1 items
- directionstringrequiredone of "asc", "desc"
- fieldstringrequired
- categorystring
- channelIdstring
- entityIdstring
- provenancestring
- sourceIdstring
- viewstringrequired
- newboolean
- originstring
- overviewstring
- overviewSourcestring
- overviewSourceUrlstring
- pageCountinteger
- pinnedboolean
playbackobject
- itemIdstringrequired
- startMsinteger≥ 0
- playsinteger
- posterUrlstring
- progressMsinteger≥ 0
- publicationTypestringone of "book", "magazine", "newspaper"
- publishedYearinteger
- publisherstring
radioSeedobject
- idstringrequired
- kindstringrequired
- ratingnumber
readingMarkobject
- itemIdstringrequired
- readbooleanrequired
- revisionintegerrequired
- releaseDatestring
- removedboolean
- resolutionstring
- rolestring
- seasonCountinteger
- seasonNumberinteger
seriesarray of object
- namestringrequired
- positionstring
showobject
- idstringrequired
- namestringrequired
- sortLetterstring
- specialboolean
- stillUrlstring
- subtitlestring
- titlestring
- totalAtLeastinteger
- trackNumberinteger
- unwatchedCountinteger
- userRatinginteger | any | null
- watchedboolean
- watchedCountinteger
- watchlistedboolean
- yearinteger
- yearMaxinteger
- yearMininteger
headingobjectrequired
- fallbackstringrequired
- keystringrequired
- paramsobject
- idstringrequired
- nextCursorstringrequired
orderobject
- laststring
- nextstring
- previousstring
seeAllobject
- pivotstringrequiredlength 1–256
- queryobject
sortarray of objectrequired0–1 items
- directionstringrequiredone of "asc", "desc"
- fieldstringrequired
- startintegerrequired
- totalCountintegerrequired
- typestringrequired
whyobject
- codestringrequired
- fallbackstringrequired
- paramsobject
whyTitlesarray of object
- idstringrequired
- namestringrequired
shapeCountsobject
- postersintegerrequired
- squaresintegerrequired
sortsarray of objectrequired
- directionsarray of stringrequired
- idstringrequired
- labelKeystringrequired
groupsarray of objectrequired
- countintegerrequired
- idstringrequired
- titlestringrequired
- nextSeasonCursorstringrequired
nextUpobject
- absoluteNumberinteger
- activeBeginYearinteger
- activeEndYearinteger
- addedAtstring | any | null
- airDatestring
albumobject
- idstringrequired
- namestringrequired
- albumCountinteger
- albumTypestring
artistobject
- idstringrequired
- namestringrequired
- artistTypestring
- artworkPathsarray of string
audioFactsobject
- atmosboolean
- bitDepthinteger
- channelsinteger
- codecstringrequired
- layoutstring
- losslessboolean
- sampleRateinteger
- authorstring
- availableboolean
- backdropUrlstring
badgesarray of object0–2 items
- bitDepthintegerrequired≥ 17
- codecstringrequiredpattern ^[A-Za-z0-9_.+-]{1,64}$
- sampleRateintegerrequired≥ 1
- variant"lossless"required
bookProgressobject
- bookIdstringrequired
chapterobject
- endMsintegerrequired
- indexintegerrequired
- startMsintegerrequired
- titlestringrequired
- durationMsinteger
- itemIdstringrequired
- partPositionMsintegerrequired
- positionMsinteger
- remainingMsinteger
- contentRatingstring
- countinteger
- countrystring
- dateBasedboolean
- discNumberinteger
- displayTitlestring
- durationMsinteger≥ 0
- editionstring
- episodeNumberinteger
- favoriteboolean
- genresarray of string
- hiddenboolean | any | null
homeActionsobject
- collectionbooleanrequired
- deletebooleanrequired
- detailsbooleanrequired
- downloadbooleanrequired
- editMetadatabooleanrequired
- favoritebooleanrequired
- myListbooleanrequired
- notInterestedboolean
- playbooleanrequired
- playedbooleanrequired
- playlistbooleanrequired
- queuebooleanrequired
- ratingbooleanrequired
- refreshMetadatabooleanrequired
- removeFromContinueboolean
selectionobjectrequired
- collectionbooleanrequired
- deletebooleanrequired
- downloadbooleanrequired
- editbooleanrequired
- favoritebooleanrequired
- myListbooleanrequired
- playbooleanrequired
- playlistbooleanrequired
- queuebooleanrequired
- refreshbooleanrequired
- watchedbooleanrequired
stateobjectrequired
- containerRevisionintegerrequired
- favoritebooleanrequired
- personalRevisionintegerrequired
- ratingnumber | any | nullrequired
- watchedbooleanrequired
- watchlistedbooleanrequired
- watchedbooleanrequired
homeTitleContextobject
- genresarray of stringrequired
- kindstringrequired
- seasonCountinteger
- yearinteger
- idstringrequired
- kindstringrequired
- labelstring
- languagestring
- lastChangedstring
latestEpisodeobject
- airDatestringrequired
- countintegerrequired
- episodeNumberintegerrequired
- seasonNumberinteger
- titlestring
- libraryIdstring
mediaobject
- absoluteNumberinteger
- activeBeginYearinteger
- activeEndYearinteger
- addedAtstring | any | nullrequired
- airDatestring
albumobject
- idstringrequired
- namestringrequired
- albumCountinteger
- albumTypestring
artistobject
- idstringrequired
- namestringrequired
- artistTypestring
- artworkPathsarray of string
audioFactsobject
- atmosboolean
- bitDepthinteger
- channelsinteger
- codecstringrequired
- layoutstring
- losslessboolean
- sampleRateinteger
- authorstring
- availableboolean
- backdropUrlstring
badgesarray of object0–2 items
- bitDepthintegerrequired≥ 17
- codecstringrequiredpattern ^[A-Za-z0-9_.+-]{1,64}$
- sampleRateintegerrequired≥ 1
- variant"lossless"required
bookProgressobject
- bookIdstringrequired
chapterobject
- endMsintegerrequired
- indexintegerrequired
- startMsintegerrequired
- titlestringrequired
- durationMsinteger
- itemIdstringrequired
- partPositionMsintegerrequired
- positionMsinteger
- remainingMsinteger
- contentRatingstring
- countinteger
- countrystring
- dateBasedboolean
- discNumberinteger
- displayTitlestring
- durationMsinteger≥ 0
- editionstring
- episodeNumberinteger
- favoriteboolean
- genresarray of string
homeActionsobject
- collectionbooleanrequired
- deletebooleanrequired
- detailsbooleanrequired
- downloadbooleanrequired
- editMetadatabooleanrequired
- favoritebooleanrequired
- myListbooleanrequired
- notInterestedboolean
- playbooleanrequired
- playedbooleanrequired
- playlistbooleanrequired
- queuebooleanrequired
- ratingbooleanrequired
- refreshMetadatabooleanrequired
- removeFromContinueboolean
selectionobjectrequired
- collectionbooleanrequired
- deletebooleanrequired
- downloadbooleanrequired
- editbooleanrequired
- favoritebooleanrequired
- myListbooleanrequired
- playbooleanrequired
- playlistbooleanrequired
- queuebooleanrequired
- refreshbooleanrequired
- watchedbooleanrequired
stateobjectrequired
- containerRevisionintegerrequired
- favoritebooleanrequired
- personalRevisionintegerrequired
- ratingnumber | any | nullrequired
- watchedbooleanrequired
- watchlistedbooleanrequired
- watchedbooleanrequired
homeTitleContextobject
- genresarray of stringrequired
- kindstringrequired
- seasonCountinteger
- yearinteger
- idstringrequired
- kindstringrequired
- labelstring
- languagestring
- lastChangedstring
latestEpisodeobject
- airDatestringrequired
- countintegerrequired
- episodeNumberintegerrequired
- seasonNumberinteger
- titlestring
- libraryIdstring
- missingbooleanrequired
- narratorsarray of string
navigationobject
browseobject
- pivotstringrequiredlength 1–256
- queryobject
sortarray of objectrequired0–1 items
- directionstringrequiredone of "asc", "desc"
- fieldstringrequired
- categorystring
- channelIdstring
- entityIdstring
- provenancestring
- sourceIdstring
- viewstringrequired
- newboolean
- originstring
- overviewstring
- overviewSourcestring
- overviewSourceUrlstring
- pageCountinteger
- pinnedboolean
playbackobject
- itemIdstringrequired
- startMsinteger≥ 0
- playsinteger
- posterUrlstring
- progressMsinteger≥ 0
- publicationTypestringone of "book", "magazine", "newspaper"
- publishedYearinteger
- publisherstring
radioSeedobject
- idstringrequired
- kindstringrequired
- ratingnumber
readingMarkobject
- itemIdstringrequired
- readbooleanrequired
- revisionintegerrequired
- releaseDatestring
- removedboolean
- resolutionstring
- rolestring
- seasonCountinteger
- seasonNumberinteger
seriesarray of object
- namestringrequired
- positionstring
showobject
- idstringrequired
- namestringrequired
- sortLetterstring
- specialboolean
- stillUrlstring
- subtitlestring
- titlestringrequired
- totalAtLeastinteger
- trackNumberinteger
- unwatchedCountinteger
- userRatinginteger | any | null
- watchedboolean
- watchedCountinteger
- watchlistedboolean
- yearinteger
- yearMaxinteger
- yearMininteger
- missingboolean
- narratorsarray of string
navigationobject
browseobject
- pivotstringrequiredlength 1–256
- queryobject
sortarray of objectrequired0–1 items
- directionstringrequiredone of "asc", "desc"
- fieldstringrequired
- categorystring
- channelIdstring
- entityIdstring
- provenancestring
- sourceIdstring
- viewstringrequired
- newboolean
- originstring
- overviewstring
- overviewSourcestring
- overviewSourceUrlstring
- pageCountinteger
- pinnedboolean
playbackobject
- itemIdstringrequired
- startMsinteger≥ 0
- playsinteger
- posterUrlstring
- progressMsinteger≥ 0
- publicationTypestringone of "book", "magazine", "newspaper"
- publishedYearinteger
- publisherstring
radioSeedobject
- idstringrequired
- kindstringrequired
- ratingnumber
readingMarkobject
- itemIdstringrequired
- readbooleanrequired
- revisionintegerrequired
- releaseDatestring
- removedboolean
- resolutionstring
- rolestring
- seasonCountinteger
- seasonNumberinteger
seriesarray of object
- namestringrequired
- positionstring
showobject
- idstringrequired
- namestringrequired
- sortLetterstring
- specialboolean
- stillUrlstring
- subtitlestring
- titlestring
- totalAtLeastinteger
- trackNumberinteger
- unwatchedCountinteger
- userRatinginteger | any | null
- watchedboolean
- watchedCountinteger
- watchlistedboolean
- yearinteger
- yearMaxinteger
- yearMininteger
revisionobjectrequired
- catalogintegerrequired
- viewerintegerrequired
scopeobjectrequired
- libraryIdstringrequired
- serverIdstringrequired
- viewerFencestringrequired
- seasonTotalCountintegerrequired
seasonsarray of objectrequired
- episodeCountinteger
- firstAiredstring
- idstringrequired
- lastAiredstring
- numberintegerrequired
- overviewstring
- posterUrlstring
- showIdstringrequired
- titlestringrequired
- unwatchedCountinteger
- watchedCountinteger
selectedobjectrequired
- episodeIdstring
- groupstring
- seasonIdstring | any | nullrequired
settingsobjectrequired
- absoluteNumberingbooleanrequired
- hideSeasonsbooleanrequired
- newestFirstbooleanrequired
- rangesbooleanrequired
- revisionintegerrequired
showobjectrequired
- addedAtstring
- backdropUrlstring
- contentRatingstring
- countrystring
- episodeCountintegerrequired
- firstAiredstring
- genresarray of string
- idstringrequired
- lastAiredstring
- libraryIdstringrequired
- libraryKindstringrequired
- logoUrlstring
- networkstring
- originalLanguagestring
- originalTitlestring
- overviewstring
- posterUrlstring
- providerMatchStatusstringrequired
- providerObservedAtstring
- providerSourceUrlstring
ratingobject
- scaleintegerrequired
- valuenumberrequired
- votesinteger
- statusstring
- studiostring
- taglinestring
- titlestringrequired
- unwatchedCountinteger
- watchedCountinteger
- yearinteger
showCreditsarray of object
- departmentstring
- idstring
- namestringrequired
- ordinalintegerrequired
- portraitUrlstring
- rolestring
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/libraries/{id}/show-workspace" \
-H "Authorization: Bearer $PORTICO_API_KEY"GET/v1/libraries/{id}/showsRead library showread
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the read scope, or a signed-in session
- OpenAPI operation ID
get_libraries_id_shows
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string | |
cursor | query | string | |
limit | query | integer |
Responses
200Successapplication/json
{
"nextCursor": "eyJvIjoyMH0",
"shows": [
{
"addedAt": "2026-10-18T19:30:00Z",
"backdropUrl": "https://example.com/…",
"contentRating": "string",
"country": "string",
"episodeCount": 0,
"firstAired": "string",
"genres": [
"string"
],
"id": "id_8h2k4q",
"lastAired": "string",
"libraryId": "id_8h2k4q",
"libraryKind": "string",
"logoUrl": "https://example.com/…",
"network": "string",
"originalLanguage": "en",
"originalTitle": "Fargo",
"overview": "string",
"posterUrl": "https://example.com/…",
"providerMatchStatus": "string",
"providerObservedAt": "2026-10-18T19:30:00Z",
"providerSourceUrl": "https://example.com/…",
"rating": {
"scale": 0,
"value": 0,
"votes": 0
},
"status": "string",
"studio": "string",
"tagline": "string",
"title": "Fargo",
"unwatchedCount": 0,
"watchedCount": 0,
"year": 0
}
]
}- nextCursorstringrequired
showsarray of objectrequired
- addedAtstring
- backdropUrlstring
- contentRatingstring
- countrystring
- episodeCountintegerrequired
- firstAiredstring
- genresarray of string
- idstringrequired
- lastAiredstring
- libraryIdstringrequired
- libraryKindstringrequired
- logoUrlstring
- networkstring
- originalLanguagestring
- originalTitlestring
- overviewstring
- posterUrlstring
- providerMatchStatusstringrequired
- providerObservedAtstring
- providerSourceUrlstring
ratingobject
- scaleintegerrequired
- valuenumberrequired
- votesinteger
- statusstring
- studiostring
- taglinestring
- titlestringrequired
- unwatchedCountinteger
- watchedCountinteger
- yearinteger
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/libraries/{id}/shows" \
-H "Authorization: Bearer $PORTICO_API_KEY"GET/v1/libraries/{id}/strm-analysis-policyRead library strm analysis policylibrary
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the library scope, or a signed-in session
- OpenAPI operation ID
get_libraries_id_strm_analysis_policy
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string |
Responses
200Successapplication/json
{
"policy": {
"effective": true,
"enabled": true,
"libraryId": "id_8h2k4q",
"revision": 0,
"scanTier": "string"
},
"scope": {
"serverId": "id_8h2k4q",
"viewerFence": "string"
}
}policyobjectrequired
- effectivebooleanrequired
- enabledbooleanrequired
- libraryIdstringrequired
- revisionintegerrequired
- scanTierstringrequired
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/libraries/{id}/strm-analysis-policy" \
-H "Authorization: Bearer $PORTICO_API_KEY"PUT/v1/libraries/{id}/strm-analysis-policySave library strm analysis 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_libraries_id_strm_analysis_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
{
"enabled": true,
"expectedRevision": 0
}- enabledbooleanrequired
- expectedRevisionintegerrequired
Responses
200Successapplication/json
{
"policy": {
"effective": true,
"enabled": true,
"libraryId": "id_8h2k4q",
"revision": 0,
"scanTier": "string"
},
"scope": {
"serverId": "id_8h2k4q",
"viewerFence": "string"
}
}policyobjectrequired
- effectivebooleanrequired
- enabledbooleanrequired
- libraryIdstringrequired
- revisionintegerrequired
- scanTierstringrequired
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 PUT "http://127.0.0.1:32500/v1/libraries/{id}/strm-analysis-policy" \
-H "Authorization: Bearer $PORTICO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"enabled":true,"expectedRevision":0}'GET/v1/libraries/{libraryId}/reading/groups/{groupKind}/{seriesId}/my-listRead one current Reading group's dynamic My List referenceread
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the read scope, or a signed-in session
- OpenAPI operation ID
get_reading_group_my_list
Parameters
| Name | In | Type | Description |
|---|---|---|---|
libraryIdrequired | path | string | |
groupKindrequired | path | string | |
seriesIdrequired | path | string |
Responses
200Successapplication/json
{
"groupKind": "series",
"libraryId": "id_8h2k4q",
"listed": true,
"operationId": "id_8h2k4q",
"referenceId": "id_8h2k4q",
"revision": 0,
"seriesId": "id_8h2k4q",
"serverId": "id_8h2k4q",
"viewerFence": "string"
}- groupKindstringrequiredone of "series", "magazine", "newspaper"
- libraryIdstringrequiredlength 1–128pattern ^[A-Za-z0-9_-]{1,128}$
- listedbooleanrequired
- operationIdstringlength 1–128
- referenceIdstringlength 1–128
- revisionintegerrequired≥ 0
- seriesIdstringrequiredlength 43–43pattern ^[A-Za-z0-9_-]{43}$
- serverIdstringrequiredlength 1–128
- viewerFencestringrequiredlength 64–64pattern ^[a-f0-9]{64}$
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesinvalid_requestunauthorizednot_permittednot_foundrevision_mismatchstale_continuationinternaldatabase_busy
Example request
curl -X GET "http://127.0.0.1:32500/v1/libraries/{libraryId}/reading/groups/{groupKind}/{seriesId}/my-list" \
-H "Authorization: Bearer $PORTICO_API_KEY"PUT/v1/libraries/{libraryId}/reading/groups/{groupKind}/{seriesId}/my-listChange one dynamic Reading group reference without saving its membersplayback
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the playback scope, or a signed-in session
- OpenAPI operation ID
put_reading_group_my_list- Max body
- 4 KiB
Parameters
| Name | In | Type | Description |
|---|---|---|---|
libraryIdrequired | path | string | |
groupKindrequired | path | string | |
seriesIdrequired | path | string | |
Idempotency-Key | header | string | |
Portico-Mutation-Root | header | string |
Request body application/json · required
{
"expectedRevision": 0,
"listed": true,
"operationId": "id_8h2k4q"
}- expectedRevisionintegerrequired≥ 0
- listedbooleanrequired
- operationIdstringrequiredlength 1–128pattern ^[A-Za-z0-9_-]{1,128}$
Responses
200Successapplication/json
{
"groupKind": "series",
"libraryId": "id_8h2k4q",
"listed": true,
"operationId": "id_8h2k4q",
"referenceId": "id_8h2k4q",
"revision": 0,
"seriesId": "id_8h2k4q",
"serverId": "id_8h2k4q",
"viewerFence": "string"
}- groupKindstringrequiredone of "series", "magazine", "newspaper"
- libraryIdstringrequiredlength 1–128pattern ^[A-Za-z0-9_-]{1,128}$
- listedbooleanrequired
- operationIdstringlength 1–128
- referenceIdstringlength 1–128
- revisionintegerrequired≥ 0
- seriesIdstringrequiredlength 43–43pattern ^[A-Za-z0-9_-]{43}$
- serverIdstringrequiredlength 1–128
- viewerFencestringrequiredlength 64–64pattern ^[a-f0-9]{64}$
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesinvalid_requestunauthorizednot_permittednot_foundrevision_mismatchstale_continuationinternalrate_limitedpersonal_state_conflictidempotency_key_reusedoperation_expiredidempotency_conflictreceipt_expiredinvalid_mutation_keydatabase_busywriter_capacity
Example request
curl -X PUT "http://127.0.0.1:32500/v1/libraries/{libraryId}/reading/groups/{groupKind}/{seriesId}/my-list" \
-H "Authorization: Bearer $PORTICO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"expectedRevision":0,"listed":true,"operationId":"id_8h2k4q"}'GET/v1/libraries/{libraryId}/reading/mark-allRead this profile's ready visible Reading mark-all targetplayback
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the playback scope, or a signed-in session
- OpenAPI operation ID
get_libraries_libraryId_reading_mark_all
Parameters
| Name | In | Type | Description |
|---|---|---|---|
libraryIdrequired | path | string |
Responses
200Successapplication/json
{
"count": 0,
"libraryId": "id_8h2k4q",
"revision": {
"catalog": 0,
"viewer": 0
},
"serverId": "id_8h2k4q",
"viewerFence": "string"
}- countintegerrequired≥ 0
- libraryIdstringrequiredlength 1–128
revisionobjectrequired
- catalogintegerrequired≥ 0
- viewerintegerrequired≥ 0
- serverIdstringrequiredlength 1–128
- viewerFencestringrequiredlength 64–64pattern ^[a-f0-9]{64}$
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesinvalid_requestunauthorizednot_permittednot_foundstale_continuationinternaldatabase_busy
Example request
curl -X GET "http://127.0.0.1:32500/v1/libraries/{libraryId}/reading/mark-all" \
-H "Authorization: Bearer $PORTICO_API_KEY"POST/v1/libraries/{libraryId}/reading/mark-allAtomically mark every ready visible Reading title read for the original profileplayback
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the playback scope, or a signed-in session
- OpenAPI operation ID
post_libraries_libraryId_reading_mark_all- Max body
- 4 KiB
Parameters
| Name | In | Type | Description |
|---|---|---|---|
libraryIdrequired | path | string | |
Idempotency-Key | header | string | |
Portico-Mutation-Root | header | string |
Request body application/json · required
{
"expectedRevision": {
"catalog": 0,
"viewer": 0
},
"operationId": "id_8h2k4q",
"viewerFence": "string"
}expectedRevisionobjectrequired
- catalogintegerrequired≥ 0
- viewerintegerrequired≥ 0
- operationIdstringrequiredlength 1–128pattern ^[A-Za-z0-9_-]{1,128}$
- viewerFencestringrequiredlength 64–64pattern ^[a-f0-9]{64}$
Responses
200Successapplication/json
{
"changed": 0,
"count": 0,
"expectedRevision": {
"catalog": 0,
"viewer": 0
},
"libraryId": "id_8h2k4q",
"operationId": "id_8h2k4q",
"revision": {
"catalog": 0,
"viewer": 0
},
"serverId": "id_8h2k4q",
"viewerFence": "string"
}- changedintegerrequired≥ 0
- countintegerrequired≥ 0
expectedRevisionobjectrequired
- catalogintegerrequired≥ 0
- viewerintegerrequired≥ 0
- libraryIdstringrequiredlength 1–128
- operationIdstringrequiredlength 1–128
revisionobjectrequired
- catalogintegerrequired≥ 0
- viewerintegerrequired≥ 0
- serverIdstringrequiredlength 1–128
- viewerFencestringrequiredlength 64–64pattern ^[a-f0-9]{64}$
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesinvalid_requestunauthorizednot_permittednot_foundstale_continuationinternalrate_limitedpersonal_state_conflictpersonal_needs_resolutionoperation_expiredidempotency_key_reusedidempotency_conflictreceipt_expiredinvalid_mutation_keydatabase_busywriter_capacity
Example request
curl -X POST "http://127.0.0.1:32500/v1/libraries/{libraryId}/reading/mark-all" \
-H "Authorization: Bearer $PORTICO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"expectedRevision":{"catalog":0,"viewer":0},"operationId":"id_8h2k4q","viewerFence":"string"}'GET/v1/libraries/{libraryId}/reading/periodicalsRead accepted typed and dated Reading periodical groupsread
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the read scope, or a signed-in session
- OpenAPI operation ID
get_reading_periodical_groups
Parameters
| Name | In | Type | Description |
|---|---|---|---|
libraryIdrequired | path | string | |
publicationType | query | string | |
cursor | query | string | |
limit | query | integer | ""1–100 |
Responses
200Successapplication/json
{
"groups": [
{
"id": "id_8h2k4q",
"issueCount": 1,
"latest": {
"issueDate": "string",
"item": {
"author": {},
"coverUrl": "https://example.com/…",
"format": "epub",
"id": "id_8h2k4q",
"inventoryAvailable": true,
"libraryId": "id_8h2k4q",
"publicationType": {},
"readingMark": {},
"series": {},
"sourceId": "id_8h2k4q",
"title": "Fargo"
}
},
"name": "Fargo"
}
],
"libraryId": "id_8h2k4q",
"nextCursor": "eyJvIjoyMH0",
"publicationType": "magazine"
}groupsarray of objectrequired0–100 items
- idstringrequiredpattern ^[A-Za-z0-9_-]{43}$
- issueCountintegerrequired≥ 1
latestobjectrequired
- issueDatestringrequiredlength 7–10pattern ^[0-9]{4}-[0-9]{2}(-[0-9]{2})?$
itemobjectrequired
authorobject
- sourcestringrequiredone of "owner", "file-metadata", "file-name", "folder"
- valuestringrequiredlength 1–4096
- coverUrlstring
- formatstringrequiredone of "epub", "pdf", "cbz", "mobi", "azw3", "cb7", "cbr"
- idstringrequired
- inventoryAvailablebooleanrequired
- libraryIdstringrequired
publicationTypeobject
- sourcestringrequiredone of "owner", "file-metadata"
- valuestringrequiredone of "book", "magazine", "newspaper"
readingMarkobject
- itemIdstringrequiredlength 1–64pattern ^[A-Za-z0-9_-]{1,64}$
- readbooleanrequired
- revisionintegerrequired≥ 0
seriesobject
- idstringrequiredlength 1–∞
- namestringrequiredlength 1–4096
- numbernumber≥ 0
- sourcestringrequiredone of "owner", "file-metadata", "file-name", "folder"
- sourceIdstringrequired
- titlestringrequired
- namestringrequiredlength 1–4096
- libraryIdstringrequired
- nextCursorstringpattern ^[A-Za-z0-9_-]{171}\.[A-Za-z0-9_-]{43}$
- publicationTypestringrequiredone of "magazine", "newspaper"
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesinvalid_requestunauthorizednot_permittednot_foundrevision_mismatchrequest_in_progressinternaldatabase_busy
Example request
curl -X GET "http://127.0.0.1:32500/v1/libraries/{libraryId}/reading/periodicals" \
-H "Authorization: Bearer $PORTICO_API_KEY"GET/v1/libraries/{libraryId}/reading/periodicals/{seriesId}/issuesRead dated issues in one accepted typed Reading seriesread
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the read scope, or a signed-in session
- OpenAPI operation ID
get_reading_periodical_issues
Parameters
| Name | In | Type | Description |
|---|---|---|---|
libraryIdrequired | path | string | |
seriesIdrequired | path | string | |
publicationType | query | string | |
issueDate | query | string | |
year | query | string | |
month | query | string | |
order | query | string | |
cursor | query | string | |
limit | query | integer | ""1–100 |
Responses
200Successapplication/json
{
"days": [
{
"date": "string",
"issueCount": 1
}
],
"issueDate": "string",
"items": [
{
"issueDate": "string",
"item": {
"author": {
"source": "owner",
"value": "string"
},
"coverUrl": "https://example.com/…",
"format": "epub",
"id": "id_8h2k4q",
"inventoryAvailable": true,
"libraryId": "id_8h2k4q",
"publicationType": {
"source": "owner",
"value": "book"
},
"readingMark": {
"itemId": "id_8h2k4q",
"read": true,
"revision": 0
},
"series": {
"id": "id_8h2k4q",
"name": "Fargo",
"number": 0,
"source": "owner"
},
"sourceId": "id_8h2k4q",
"title": "Fargo"
}
}
],
"libraryId": "id_8h2k4q",
"month": "string",
"nextCursor": "eyJvIjoyMH0",
"order": "newest",
"publicationType": "magazine",
"seriesId": "id_8h2k4q",
"year": "string",
"years": [
{
"issueCount": 1,
"year": "string"
}
]
}daysarray of objectrequired0–31 items
- datestringrequiredlength 7–10pattern ^[0-9]{4}-[0-9]{2}-[0-9]{2}$
- issueCountintegerrequired≥ 1
- issueDatestringlength 7–10pattern ^[0-9]{4}-[0-9]{2}(-[0-9]{2})?$
itemsarray of objectrequired0–100 items
- issueDatestringrequiredlength 7–10pattern ^[0-9]{4}-[0-9]{2}(-[0-9]{2})?$
itemobjectrequired
authorobject
- sourcestringrequiredone of "owner", "file-metadata", "file-name", "folder"
- valuestringrequiredlength 1–4096
- coverUrlstring
- formatstringrequiredone of "epub", "pdf", "cbz", "mobi", "azw3", "cb7", "cbr"
- idstringrequired
- inventoryAvailablebooleanrequired
- libraryIdstringrequired
publicationTypeobject
- sourcestringrequiredone of "owner", "file-metadata"
- valuestringrequiredone of "book", "magazine", "newspaper"
readingMarkobject
- itemIdstringrequiredlength 1–64pattern ^[A-Za-z0-9_-]{1,64}$
- readbooleanrequired
- revisionintegerrequired≥ 0
seriesobject
- idstringrequiredlength 1–∞
- namestringrequiredlength 1–4096
- numbernumber≥ 0
- sourcestringrequiredone of "owner", "file-metadata", "file-name", "folder"
- sourceIdstringrequired
- titlestringrequired
- libraryIdstringrequired
- monthstringpattern ^[0-9]{4}-[0-9]{2}$
- nextCursorstringpattern ^[A-Za-z0-9_-]{171}\.[A-Za-z0-9_-]{43}$
- orderstringone of "newest", "oldest"
- publicationTypestringrequiredone of "magazine", "newspaper"
- seriesIdstringrequired
- yearstringpattern ^[0-9]{4}$
yearsarray of objectrequired0–9999 items
- issueCountintegerrequired≥ 1
- yearstringrequiredpattern ^[0-9]{4}$
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesinvalid_requestunauthorizednot_permittednot_foundrevision_mismatchrequest_in_progressinternaldatabase_busy
Example request
curl -X GET "http://127.0.0.1:32500/v1/libraries/{libraryId}/reading/periodicals/{seriesId}/issues" \
-H "Authorization: Bearer $PORTICO_API_KEY"GET/v1/libraries/{libraryId}/reading/series/{seriesId}Read one complete authorized Reading seriesread
- Audience
- Clients · Native API
- Authorization
- API key or personal access token with the read scope, or a signed-in session
- OpenAPI operation ID
get_reading_series_items
Parameters
| Name | In | Type | Description |
|---|---|---|---|
libraryIdrequired | path | string | |
seriesIdrequired | path | string | |
cursor | query | string | |
limit | query | integer | ""1–100 |
Responses
200Successapplication/json
{
"items": [
{
"author": {
"source": "owner",
"value": "string"
},
"coverUrl": "https://example.com/…",
"format": "epub",
"id": "id_8h2k4q",
"inventoryAvailable": true,
"libraryId": "id_8h2k4q",
"publicationType": {
"source": "owner",
"value": "book"
},
"readingMark": {
"itemId": "id_8h2k4q",
"read": true,
"revision": 0
},
"series": {
"id": "id_8h2k4q",
"name": "Fargo",
"number": 0,
"source": "owner"
},
"sourceId": "id_8h2k4q",
"title": "Fargo"
}
],
"nextCursor": "eyJvIjoyMH0",
"summary": {
"author": {
"source": "owner",
"value": "string"
},
"count": 1,
"id": "id_8h2k4q",
"name": "Fargo",
"readCount": 0
}
}itemsarray of objectrequired
authorobject
- sourcestringrequiredone of "owner", "file-metadata", "file-name", "folder"
- valuestringrequiredlength 1–4096
- coverUrlstring
- formatstringrequiredone of "epub", "pdf", "cbz", "mobi", "azw3", "cb7", "cbr"
- idstringrequired
- inventoryAvailablebooleanrequired
- libraryIdstringrequired
publicationTypeobject
- sourcestringrequiredone of "owner", "file-metadata"
- valuestringrequiredone of "book", "magazine", "newspaper"
readingMarkobject
- itemIdstringrequiredlength 1–64pattern ^[A-Za-z0-9_-]{1,64}$
- readbooleanrequired
- revisionintegerrequired≥ 0
seriesobject
- idstringrequiredlength 1–∞
- namestringrequiredlength 1–4096
- numbernumber≥ 0
- sourcestringrequiredone of "owner", "file-metadata", "file-name", "folder"
- sourceIdstringrequired
- titlestringrequired
- nextCursorstring
summaryobject
authorobject
- sourcestringrequiredone of "owner", "file-metadata", "file-name", "folder"
- valuestringrequiredlength 1–4096
- countintegerrequired≥ 1
- idstringrequiredpattern ^[A-Za-z0-9_-]{43}$
- namestringrequiredlength 1–4096
- readCountintegerrequired≥ 0
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesinvalid_requestunauthorizednot_permittednot_foundrevision_mismatchrequest_in_progressinternaldatabase_busy
Example request
curl -X GET "http://127.0.0.1:32500/v1/libraries/{libraryId}/reading/series/{seriesId}" \
-H "Authorization: Bearer $PORTICO_API_KEY"POST/v1/libraries/paths-changedReport paths that were added, changed or removed, and scan only those folderslibrary
- Audience
- Integrations · Native API
- Authorization
- API key or personal access token with the library scope, or a signed-in session
- OpenAPI operation ID
report_changed_paths- Max body
- 1 MiB
Request body application/json · required
{
"mode": "string",
"paths": [
{
"change": "string",
"path": "string"
}
]
}- modestring
pathsarray of objectrequired
- changestring
- pathstringrequired
Responses
202Successapplication/json
{
"deferred": true,
"jobs": [
{
"analyzed": 0,
"error": "string",
"id": "id_8h2k4q",
"jobs": [
"string"
],
"phase": "string",
"processed": 0,
"scanMode": "string",
"sourceId": "id_8h2k4q",
"status": "string",
"warnings": 0
}
],
"paths": [
{
"folder": "string",
"libraryId": "id_8h2k4q",
"path": "string",
"scanScope": "string",
"sourceId": "id_8h2k4q",
"status": "string"
}
]
}- deferredboolean
jobsarray of objectrequired
- analyzedintegerrequired
- errorstring
- idstringrequired
- jobsarray of string
- phasestring
- processedintegerrequired
- scanModestring
- sourceIdstring
- statusstringrequired
- warningsintegerrequired
pathsarray of objectrequired
- folderstring
- libraryIdstring
- pathstringrequired
- scanScopestring
- sourceIdstring
- statusstringrequired
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}errorobjectrequired
- codestringrequired
- messagestringrequired
Error codesunauthorizednot_permittedinvalid_requestbody_too_largeadministration_unavailableinternaldatabase_busywriter_capacity
Example request
curl -X POST "http://127.0.0.1:32500/v1/libraries/paths-changed" \
-H "Authorization: Bearer $PORTICO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"mode":"string","paths":[{"change":"string","path":"string"}]}'No operations match that filter.