CLIENT API / V1 CONTENT, BRIEFS & CAMPAIGNS

Read all or selected saved components

GET/sites/{site_id}/content/{content_id}/componentsValid key

Requires content:read. Reads the selected saved content id. The destination needs no live URL. Components: body, h1, faq, page_properties, teaser. Preserve the returned source reference in AEM; never select by a similar title.

RequestGET https://satelliteai.io/api/v1/sites/{site_id}/content/{content_id}/components
PermissionAny valid API key
ResponseA single object: data is AemComponentBundle.
Operation IDgetContentComponents

More context and worked examples are in the developer guide.

Example request

cURL · Bash
curl --fail-with-body \
  'https://satelliteai.io/api/v1/sites/123/content/123/components' \
  -H "Authorization: Bearer $SATELLITE_API_KEY"

Replace the example IDs with values returned by the discovery endpoints. Example values are placeholders, not real records.

Parameters

NameInTypeDescription
site_idrequiredpathinteger
min 1
content_idrequiredpathinteger
min 1
localequerystringExact locale id from this resource's /locales response, or original. No language fallback.
default original
includequerystringComma-separated distinct component names. Omit for all available components.
example faq,page_properties

Unknown or repeated query parameters return 400.

Data dictionary

Selected stored copy only. No generation or writes. Missing bundle components are named explicitly. FAQ answers are plain text.

[] marks an array element. nullable means the value can be null; treat it as unknown, not zero. always present means the key is always included in the object.

Fields in data
FieldTypeDescription
data.sourceobjectalways present
data.source.typestringalways present
one of: content, campaign_asset
data.source.idintegeralways presentSatellite identifier for this record.
data.source.site_idintegeralways presentSatellite site ID (from GET /sites).
data.source.content_idintegeralways present
data.source.campaign_idinteger
data.source.copystringalways present
one of: source, publication
data.source.localestringalways present
data.source.languagestring
data.source.versioninteger
data.source.updated_atstringnullableWhen Satellite last updated the record (UTC, RFC 3339).
data.source.draft_updated_atstringnullable
data.source.localized_idinteger
data.source.revisionstringalways present
data.componentsobjectalways present
data.components.bodyobject
data.components.body.contentstringalways present
data.components.body.formatstringalways present
data.components.h1object
data.components.h1.textstringalways present
data.components.faqobject
data.components.faq.titlestringalways present
data.components.faq.faqsarray of objectalways present
data.components.faq.faqs[].questionstringalways present
data.components.faq.faqs[].answerstringalways present
data.components.faq.answer_formatstringalways present
one of: text
data.components.page_propertiesobject
data.components.page_properties.titlestringnullablealways present
data.components.page_properties.meta_descriptionstringnullablealways present
data.components.teaserobject
data.components.teaser.teaser_headlinestringnullablealways present
data.components.teaser.teaser_descriptionstringnullablealways present
data.missing_componentsarray of stringalways present

Response metadata

Fields in meta
FieldTypeDescription
meta.request_idstringRequest identifier; also returned in X-Request-ID. Include it in support requests.
meta.api_versionstringAPI version that produced the response.

Error responses

Errors return {"error": {"code", "message", "request_id"}}. See error handling for retry guidance.

HTTPWhen
400Unknown/repeated parameter, component or malformed locale identifier.
401Missing, invalid, expired or revoked Bearer credential.
403Required permission is absent.
404Resource is missing/inaccessible, localized copy unavailable, or requested single component absent.
429API rate limit reached.
503Stored artifact unavailable.