Read all or selected saved components
/sites/{site_id}/content-campaigns/{campaign_id}/assets/{asset_id}/componentsValid keyRequires content:read and campaigns:read. Campaign reads use the saved publication draft over the selected source/locale. 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.
| Request | GET https://satelliteai.io/api/v1/sites/{site_id}/content-campaigns/{campaign_id}/assets/{asset_id}/components |
| Permission | Any valid API key |
| Response | A single object: data is AemComponentBundle. |
| Operation ID | getCampaignComponents |
More context and worked examples are in the developer guide.
Example request
curl --fail-with-body \
'https://satelliteai.io/api/v1/sites/123/content-campaigns/123456789/assets/456/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
| Name | In | Type | Description |
|---|---|---|---|
site_idrequired | path | integer | min 1 |
campaign_idrequired | path | integer | min 1 |
asset_idrequired | path | integer | min 1 |
locale | query | string | Exact locale id from this resource's /locales response, or original. No language fallback. default original |
include | query | string | Comma-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.
| Field | Type | Description |
|---|---|---|
data.source | objectalways present | |
data.source.type | stringalways present | one of: content, campaign_asset |
data.source.id | integeralways present | Satellite identifier for this record. |
data.source.site_id | integeralways present | Satellite site ID (from GET /sites). |
data.source.content_id | integeralways present | |
data.source.campaign_id | integer | |
data.source.copy | stringalways present | one of: source, publication |
data.source.locale | stringalways present | |
data.source.language | string | |
data.source.version | integer | |
data.source.updated_at | stringnullable | When Satellite last updated the record (UTC, RFC 3339). |
data.source.draft_updated_at | stringnullable | |
data.source.localized_id | integer | |
data.source.revision | stringalways present | |
data.components | objectalways present | |
data.components.body | object | |
data.components.body.content | stringalways present | |
data.components.body.format | stringalways present | |
data.components.h1 | object | |
data.components.h1.text | stringalways present | |
data.components.faq | object | |
data.components.faq.title | stringalways present | |
data.components.faq.faqs | array of objectalways present | |
data.components.faq.faqs[].question | stringalways present | |
data.components.faq.faqs[].answer | stringalways present | |
data.components.faq.answer_format | stringalways present | one of: text |
data.components.page_properties | object | |
data.components.page_properties.title | stringnullablealways present | |
data.components.page_properties.meta_description | stringnullablealways present | |
data.components.teaser | object | |
data.components.teaser.teaser_headline | stringnullablealways present | |
data.components.teaser.teaser_description | stringnullablealways present | |
data.missing_components | array of stringalways present |
Response metadata
| Field | Type | Description |
|---|---|---|
meta.request_id | string | Request identifier; also returned in X-Request-ID. Include it in support requests. |
meta.api_version | string | API version that produced the response. |
Error responses
Errors return {"error": {"code", "message", "request_id"}}. See error handling for retry guidance.
| HTTP | When |
|---|---|
400 | Unknown/repeated parameter, component or malformed locale identifier. |
401 | Missing, invalid, expired or revoked Bearer credential. |
403 | Required permission is absent. |
404 | Resource is missing/inaccessible, localized copy unavailable, or requested single component absent. |
429 | API rate limit reached. |
503 | Stored artifact unavailable. |