Get published entry content
Returns content from a publishing channel or a specific available snapshot. Use channel or snapshotID, never both. The default channel is published. Validates saved content against its recorded schema and returns schema metadata. expectedSchemaHash must match that revision; schema-less content cannot match it. Validation and hash checks run before ETag handling. Supports ETag and If-None-Match; a match returns 304 without a body.
Required API key permissions: read:publishing. Write permissions also grant read access for the same resource.
Authentication
apiKeyhttp, bearer, Andesine API keyUse an Andesine API key as a Bearer token
oauthhttp, bearer, Andesine OAuth access tokenUse an OAuth access token with andesine:api scope. Send x-workspace-id for workspace operations. Current user permissions apply.
Query parameters
entryIDstringpathstringDecoded content path, such as /Docs/Page or coll_ID/Page. Names are case-sensitive. Do not URL-encode names before passing them to the SDK.
slugPathstringDecoded derived slug path, such as /docs/getting-started or coll_ID/getting-started. Use the returned slugPath without URL encoding.
expectedSchemaHashstringHash of the effective schema definition
channelPublishingChannelCodePublishing channel, defaults to published
snapshotIDstringHistorical publication snapshot to read
contentFormatstringContent format of the response; mdx also returns the content as MDX in mdx
"json", "mdx"Default: "json"Headers
x-workspace-idstringRequired for OAuth: ID of the workspace to access. API keys use their own workspace.
Responses
200OKapplication/json
Headers
Cache-Control*stringETag*stringBodyobject15 fields
id*stringpath*stringslugPath*stringcollectionID*any ofOptions
Any of
Option 1string
Option 2null
schema*any ofOptions
Any of
ContentSchemaMetadataobject
revisionID*stringRecorded effective schema revision
hash*stringHash of the effective schema definition
Option 2null
channel*stringPublishing channel used for delivery
snapshotID*stringPublication snapshot used for delivery
expiresAt*any ofExpiry time for a retained historical snapshot
Options
Any of
Option 1string (date-time)
Option 2null
name*stringEntry name stored in the published version
version*EntryVersionSummary10 fields
id*stringID of the version
entryID*stringID of the versioned entry
entryName*stringEntry name stored in the version
hash*stringHash of the version content
name*any ofOptional name of the version
Options
Any of
Option 1string
Option 2null
reason*stringReason why the version was created
"auto", "manual", "revert", "schema-migration", "import"sourceVersionID*any ofSource version used for a revert
Options
Any of
Option 1string
Option 2null
contributorIDs*array of stringMemberships that contributed to the version
createdAt*stringTime when the version was created
updatedAt*stringTime when the version name was last updated
assets*array of PublishedAsset7 fields
assetID*stringvariant*AssetVariant"thumbnail", "display", "source"format*AssetFileFormat"jpeg", "png", "webp"width*numberheight*numberbyteSize*numberurl*stringcontent*ContentNode5 fields
type*stringattrsobject1 field
{key}anycontentarray of ContentNodemarksarray of ContentMark2 fields
type*stringattrsobject1 field
{key}anytextstringmdxstringContent as MDX: the title as H1, properties as elements in place, fragments as elements, and images as asset:; frontmatter properties are also read, and entries.update and versions.create import image URLs
fragments*object1 field
{key}EntryFragment2 fields
name*stringSource fragment name
content*ContentNode5 fields
type*stringattrsobject1 field
{key}anycontentarray of ContentNodemarksarray of ContentMark2 fields
type*stringattrsobject1 field
{key}anytextstringproperties*object1 field
{key}EntryProperty3 fields
name*stringSource property name
type*stringProperty type
"text", "number", "checkbox", "date", "url", "select", "multi-select"value*EntryPropertyValueOptions
Any of
Option 1string
Option 2number
Option 3boolean
Option 4array of string
Option 5null
304Not Modified
Headers
Cache-Control*stringETag*string400Bad Requestapplication/json
Bodyone ofOptions
One of
Option 1object
defined*constanttruecode*constant"BAD_REQUEST"status*constant400message*string"Bad Request"dataValidationErrorData2 fields
hintsarray of stringSuggested next steps. Wording can change; use error codes and structured data for program logic.
issuesarray of ValidationIssue3 fields
message*stringcodestringpatharray of any ofOptions
Any of
Option 1string
Option 2number
Option 3object
key*any ofOptions
Any of
Option 1string
Option 2number
Option 2object
defined*constantfalsecode*stringstatus*numbermessage*stringdataany401Unauthorizedapplication/json
Bodyone ofOptions
One of
Option 1object
defined*constanttruecode*constant"UNAUTHORIZED"status*constant401message*string"Unauthorized"dataErrorData1 field
hintsarray of stringSuggested next steps. Wording can change; use error codes and structured data for program logic.
Option 2object
defined*constantfalsecode*stringstatus*numbermessage*stringdataany403Forbiddenapplication/json
Bodyone ofOptions
One of
Option 1object
defined*constanttruecode*constant"FORBIDDEN"status*constant403message*string"Forbidden"dataForbiddenErrorData4 fields
hintsarray of stringSuggested next steps. Wording can change; use error codes and structured data for program logic.
missingPermissionsarray of stringrequiredPlanconstant"pro"actionstringThe requested action that was denied
Option 2object
defined*constantfalsecode*stringstatus*numbermessage*stringdataany404Not Foundapplication/json
Bodyone ofOptions
One of
Option 1object
defined*constanttruecode*constant"NOT_FOUND"status*constant404message*string"Not Found"dataErrorData1 field
hintsarray of stringSuggested next steps. Wording can change; use error codes and structured data for program logic.
Option 2object
defined*constantfalsecode*stringstatus*numbermessage*stringdataany409Conflictapplication/json
Bodyone ofOptions
One of
Option 1object
defined*constanttruecode*constant"CONFLICT"status*constant409message*string"Conflict"dataErrorData1 field
hintsarray of stringSuggested next steps. Wording can change; use error codes and structured data for program logic.
Option 2object
defined*constanttruecode*constant"CONTENT_SCHEMA_MISMATCH"status*constant409message*string"CONTENT_SCHEMA_MISMATCH"data*ContentSchemaMismatchErrorData3 fields
hintsarray of stringSuggested next steps. Wording can change; use error codes and structured data for program logic.
expectedHash*stringHash of the effective schema definition
actualSchema*any ofOptions
Any of
ContentSchemaMetadataobject
revisionID*stringRecorded effective schema revision
hash*stringHash of the effective schema definition
Option 2null
Option 3object
defined*constantfalsecode*stringstatus*numbermessage*stringdataany429Too Many Requestsapplication/json
Bodyone ofOptions
One of
Option 1object
defined*constanttruecode*constant"TOO_MANY_REQUESTS"status*constant429message*string"Too Many Requests"dataRateLimitErrorData3 fields
hintsarray of stringSuggested next steps. Wording can change; use error codes and structured data for program logic.
limitstringThe limit that was reached: a short-term rate limit, or a monthly API call, AI credit, or spending limit
"rate", "api-calls", "ai-credits", "spending"retryAfterSecondsnumberMinimum delay before another attempt, in seconds. Also sent in Retry-After.
Option 2object
defined*constantfalsecode*stringstatus*numbermessage*stringdataany500Internal Server Errorapplication/json
Bodyone ofOptions
One of
Option 1object
defined*constanttruecode*constant"INTERNAL_SERVER_ERROR"status*constant500message*string"Internal Server Error"dataErrorData1 field
hintsarray of stringSuggested next steps. Wording can change; use error codes and structured data for program logic.
Option 2object
defined*constanttruecode*constant"CONTENT_SCHEMA_INVALID"status*constant500message*string"CONTENT_SCHEMA_INVALID"data*ContentSchemaInvalidErrorData5 fields
hintsarray of stringSuggested next steps. Wording can change; use error codes and structured data for program logic.
entryIDstringversionIDstringrevisionID*any ofOptions
Any of
Option 1string
Option 2null
issues*array of ContentSchemaIssue4 fields
code*string"invalid_schema", "invalid_structure", "missing_field", "unknown_field", "duplicate_field", "field_kind_mismatch", "field_key_mismatch", "property_type_mismatch", "invalid_property_value", "invalid_field_options", "invalid_allowed_blocks", "invalid_fragment_content"message*stringpath*array of any ofOptions
Any of
Option 1string
Option 2number
fieldIDstringOption 3object
defined*constantfalsecode*stringstatus*numbermessage*stringdataany503Service Unavailableapplication/json
Bodyone ofOptions
One of
Option 1object
defined*constanttruecode*constant"SERVICE_UNAVAILABLE"status*constant503message*string"Service Unavailable"dataErrorData1 field
hintsarray of stringSuggested next steps. Wording can change; use error codes and structured data for program logic.
Option 2object
defined*constantfalsecode*stringstatus*numbermessage*stringdataany