Skip to main content

Get Content

Retrieve a specific content item by its internal ID or external ID.

Endpoint

GET /api/v3/content/{content_id}

Path Parameters

ParameterTypeDescription
content_idstringContent internal ID or external ID

Query Parameters

ParameterTypeDefaultDescription
id_typestringinternalinternal for numeric ID, external for external ID (ISBN, SKU)
includestring-Comma-separated: prices, description, metadata, geographic_restrictions
fieldsstring-Comma-separated list of fields to return

Response Structure

Base Response

{
"data": {
"id": "468166",
"external_id": "9781496822482",
"name": "Conversations with Donald Hall",
"slug": "conversations-with-donald-hall",
"lang": "en",
"file_type": "epub",
"audience": "adult",
"cover_url": "https://cdn.publica.la/covers/468166.jpg",
"reader_url": "https://yourstore.publica.la/reader/conversations-with-donald-hall",
"product_url": "https://yourstore.publica.la/library/publication/conversations-with-donald-hall",
"created_at": "2021-03-19T00:00:00.000000Z",
"updated_at": "2025-12-03T15:30:00.000000Z",
"published_at": "2019-09-13T00:00:00.000000Z",
"license": "retail",
"free": {
"enabled": false,
"until": null,
"require_login": false
},
"preview": {
"enabled": true,
"require_login": false
},
"conversion_status": "done"
}
}

Full Response with All Includes

Request with ?include=prices,description,metadata,geographic_restrictions:

{
"data": {
"id": "468166",
"external_id": "9781496822482",
"name": "Conversations with Donald Hall",
"slug": "conversations-with-donald-hall",
"lang": "en",
"file_type": "epub",
"audience": "adult",
"cover_url": "https://cdn.publica.la/covers/468166.jpg",
"reader_url": "https://yourstore.publica.la/reader/conversations-with-donald-hall",
"product_url": "https://yourstore.publica.la/library/publication/conversations-with-donald-hall",
"created_at": "2021-03-19T00:00:00.000000Z",
"updated_at": "2025-12-03T15:30:00.000000Z",
"published_at": "2019-09-13T00:00:00.000000Z",
"license": "retail",
"free": {
"enabled": false,
"until": null,
"require_login": false
},
"preview": {
"enabled": true,
"require_login": false
},
"conversion_status": "done",
"prices": [
{ "currency_id": "USD", "amount": 9.99 },
{ "currency_id": "EUR", "amount": 8.5 }
],
"description": "A comprehensive collection of interviews with Donald Hall spanning his literary career...",
"publisher": ["University Press of Mississippi"],
"author": ["Jane Doe", "John Smith"],
"bisac": [
{
"code": "LIT004020",
"label": "Literary Criticism > American > General"
}
],
"keywords": ["poetry", "interviews", "american literature"],
"country": [],
"edition": [],
"narrator": [],
"publishing_group": [],
"category": ["Literature"],
"collection": [],
"metrics": {
"total_pages": 320,
"total_words": 85000,
"total_seconds": 0
},
"custom_metadata": {
"genre": ["Literary Criticism", "American Literature"],
"reading_level": ["Academic"]
},
"geographic_restrictions": null
}
}

Audiobook Example

{
"data": {
"id": "502310",
"external_id": "AUDIO-978123",
"name": "The Art of Storytelling",
"slug": "the-art-of-storytelling",
"lang": "en",
"file_type": "audio",
"audience": "adult",
"cover_url": "https://cdn.publica.la/covers/502310.jpg",
"reader_url": "https://yourstore.publica.la/reader/the-art-of-storytelling",
"product_url": "https://yourstore.publica.la/library/publication/the-art-of-storytelling",
"created_at": "2025-06-10T00:00:00.000000Z",
"updated_at": "2025-06-10T12:00:00.000000Z",
"published_at": "2025-06-01T00:00:00.000000Z",
"license": "retail",
"free": {
"enabled": false,
"until": null,
"require_login": false
},
"preview": {
"enabled": false,
"require_login": false
},
"conversion_status": "done",
"prices": [{ "currency_id": "USD", "amount": 14.99 }],
"description": "A masterclass in narrative techniques, professionally narrated.",
"publisher": ["Audiobook Press"],
"author": ["Sarah Johnson"],
"bisac": [],
"keywords": ["storytelling", "narration", "craft"],
"country": [],
"edition": [],
"narrator": ["Michael Adams"],
"publishing_group": [],
"category": ["Non-Fiction"],
"collection": [],
"metrics": {
"total_pages": null,
"total_words": 0,
"total_seconds": 28800
},
"custom_metadata": {},
"geographic_restrictions": null
}
}

Field Reference

Core Fields

FieldTypeDescription
idstringContent internal ID (numeric as string)
external_idstringExternal ID (ISBN-13, SKU, or custom)
namestringContent title
slugstringURL-friendly identifier
langstringLanguage code (e.g., en, es)
file_typestringContent type: pdf, epub, audio, physical
audiencestringTarget audience
cover_urlstringCover image URL
reader_urlstringDirect reader link
product_urlstringStorefront product page URL
created_atstringISO 8601 creation timestamp
updated_atstringISO 8601 last update timestamp
published_atstringISO 8601 publication date
licensestringLicense type: retail, shared, owner
freeobjectFree access configuration
previewobjectPreview access configuration
conversion_statusstringFile processing status (see Conversion Status)

Free Access Object

FieldTypeDescription
enabledbooleanWhether free access is enabled
untilstring|nullISO 8601 free access expiration date
require_loginbooleanWhether login is required for free access

Preview Object

FieldTypeDescription
enabledbooleanWhether preview is enabled
require_loginbooleanWhether login is required for preview

Prices Block (include=prices)

FieldTypeDescription
currency_idstringISO 4217 currency code
amountfloatPrice amount

Description Block (include=description)

Returns a single description string field with the full content description.

Metadata Block (include=metadata)

FieldTypeDescription
publisherarrayPublisher names
authorarrayAuthor names
bisacarrayBISAC classification codes with labels
keywordsarrayContent keywords/tags
countryarrayCountry names
editionarrayEdition names
narratorarrayNarrator names (for audiobooks)
publishing_grouparrayPublishing group names
categoryarrayCategory names (tenant-specific)
collectionarrayCollection names (tenant-specific)
metricsobjectContent metrics (total_pages, total_words, total_seconds)
custom_metadataobjectCustom taxonomy groups with their assigned values

Geographic Restrictions Block (include=geographic_restrictions)

ValueDescription
nullNo restrictions, available worldwide
{ included: [...], excluded: [...] }Country codes for territorial rights

Examples

Get by Internal ID

curl -X GET "https://yourstore.publica.la/api/v3/content/468166" \
-H "X-User-Token: your-api-token" \
-H "Accept: application/json"

Get by External ID (ISBN)

curl -X GET "https://yourstore.publica.la/api/v3/content/9781496822482?id_type=external" \
-H "X-User-Token: your-api-token"

With Includes

curl -X GET "https://yourstore.publica.la/api/v3/content/468166?include=prices,description,metadata" \
-H "X-User-Token: your-api-token"

Sparse Fieldsets

curl -X GET "https://yourstore.publica.la/api/v3/content/468166?fields=id,name,cover_url,file_type" \
-H "X-User-Token: your-api-token"

Get by ISBN with Prices Only

curl -X GET "https://yourstore.publica.la/api/v3/content/9781496822482?id_type=external&include=prices&fields=id,name,prices" \
-H "X-User-Token: your-api-token"

Error Responses

Content Not Found (404)

{
"message": "Content not found."
}

This occurs when:

  • The internal ID doesn't exist
  • The external ID doesn't exist (with id_type=external)
  • The content does not belong to your store (it may belong to another store)

Invalid Include (422)

{
"message": "Requested include(s) are not allowed. Allowed include(s) are: prices, description, metadata, geographic_restrictions"
}

Authentication Error (401)

{
"message": "Unauthenticated."
}

Best Practices

  1. Use external IDs - Store content with ISBN or SKU for easy cross-system lookup
  2. Request only needed includes - Reduce payload size and response time
  3. Cache responses - Content data changes infrequently
  4. Handle 404 gracefully - Content may be deleted or not belong to your store (it may belong to another store)

See Also


X

Graph View