CLIENT API / V1 CONTENT, BRIEFS & CAMPAIGNS

List content-campaigns

GET/sites/{site_id}/content-campaignscampaigns:read

List content-campaigns. Only explicitly granted sites and permissions are accessible. No credentials or raw worker payloads are returned. Lists omit large bodies; detail calls return stored payloads with bounded exports. Parent/child ownership is checked before artifact retrieval. GET never generates, revises, reviews or publishes content.

RequestGET https://satelliteai.io/api/v1/sites/{site_id}/content-campaigns
Permissioncampaigns:read
ResponseA list (cursor or offset paginated): data is array of ContentCampaignListItem.
Operation IDlistContentCampaigns

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-campaigns' \
  -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_idrequiredpathintegerAuthorized site id. Parent and site grants must also match.
min 1 · max 9223372036854775807
limitqueryintegerMaximum records per page. Default 50, maximum 100.
default 50 · min 1 · max 100
cursorquerystringOpaque next_cursor from the prior page; expires after 24 hours. Preserve all filters.
statusquerystringExact case-sensitive stored status; supported on resources with a status column. No status filter on campaign claims.
max length 40

Unknown or repeated query parameters return 400.

Data dictionary

Scoped result. Lists return pagination metadata; unavailable records return 404. Compact list row; retrieve the detail endpoint for body and review fields.

[] 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[].idintegernullableId.
data[].site_idintegernullableSite id.
data[].namestringnullableName.
data[].descriptionstringnullableDescription.
data[].statusstringnullableStatus.
data[].current_stagestringnullableCurrent stage.
data[].audiencestringnullableAudience.
data[].target_localesanynullableTarget locales. Stored structured JSON; shape depends on the generation pipeline.
data[].content_project_idintegernullableContent project id.
data[].created_atstringnullableCreated at. Stored UTC ISO 8601 timestamp; legacy values may omit a timezone suffix.
data[].updated_atstringnullableUpdated at. Stored UTC ISO 8601 timestamp; legacy values may omit a timezone suffix.
data[].truncated_fieldsarray of stringScalar text fields truncated at 200000 characters. Empty when no scalar was truncated.

Response metadata

Fields in meta
FieldTypeDescription
meta.request_idstringalways presentRequest identifier; also returned in X-Request-ID. Include it in support requests.
meta.api_versionstringalways presentAPI version that produced the response.
one of: v1
meta.limitintegerApplied page size; default 50, maximum 100.
meta.has_morebooleanWhether another page exists.
meta.next_cursorstringnullableOpaque next-page cursor, null at the end. Cursors expire after 24 hours.
meta.availabilitystringavailable when stored data exists; not_available when it does not.
one of: available, not_available
meta.billingobjectPresent for paid live SERP requests; replayed receipts describe the original debit, not an additional charge.
meta.billing.operationstringalways present
one of: client_api_serp_refresh
meta.billing.credits_chargedintegeralways present
min 0
meta.billing.transaction_idintegeralways present
meta.billing.replayedbooleanalways present

Error responses

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

HTTPWhen
400Invalid parameters
401Invalid credentials
403Missing permission
404Missing or inaccessible resource
413artifact_too_large: the authorized stored export exceeds 2 MiB or bounded retrieval limits.
503artifact_unavailable or ownership_unavailable: stored artifact cannot be safely retrieved.