List content
/sites/{site_id}/contentcontent:readList content. 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.
| Request | GET https://satelliteai.io/api/v1/sites/{site_id}/content |
| Permission | content:read |
| Response | A list (cursor or offset paginated): data is array of StoredContentListItem. |
| Operation ID | listContents |
More context and worked examples are in the developer guide.
Example request
curl --fail-with-body \
'https://satelliteai.io/api/v1/sites/123/content' \
-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 | Authorized site id. Parent and site grants must also match. min 1 · max 9223372036854775807 |
limit | query | integer | Maximum records per page. Default 50, maximum 100. default 50 · min 1 · max 100 |
cursor | query | string | Opaque next_cursor from the prior page; expires after 24 hours. Preserve all filters. |
status | query | string | Exact 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.
| Field | Type | Description |
|---|---|---|
data[].id | integernullable | Id. |
data[].site_id | integernullable | Site id. |
data[].name | stringnullable | Name. |
data[].title | stringnullable | Title. |
data[].topic | stringnullable | Topic. |
data[].keyword | stringnullable | Keyword. |
data[].audience_segment | stringnullable | Audience segment. |
data[].content_format | stringnullable | Content format. |
data[].content_type | stringnullable | Content type. |
data[].version | integernullable | Version. |
data[].revision_count | integernullable | Revision count. |
data[].current_revision_id | integernullable | Current revision id. |
data[].word_count | integernullable | Word count. |
data[].confidence | number | stringnullable | Confidence. Decimal values may be serialized as strings. |
data[].status | stringnullable | Status. |
data[].source | stringnullable | Source. |
data[].source_language | stringnullable | Source language. |
data[].target_url | stringnullable | Target url. |
data[].meta_title | stringnullable | Meta title. |
data[].meta_description | stringnullable | Meta description. |
data[].citability_score | numbernullable | Citability score. |
data[].aeo_score | numbernullable | Aeo score. |
data[].claim_text_used | stringnullable | Claim text used. |
data[].claim_source_title | stringnullable | Claim source title. |
data[].claim_ids_json | stringnullable | Claim ids json. Stored text; JSON-encoded fields are returned as strings. |
data[].created_at | stringnullable | Created at. Stored UTC ISO 8601 timestamp; legacy values may omit a timezone suffix. |
data[].updated_at | stringnullable | Updated at. Stored UTC ISO 8601 timestamp; legacy values may omit a timezone suffix. |
data[].completed_at | stringnullable | Completed at. Stored UTC ISO 8601 timestamp; legacy values may omit a timezone suffix. |
data[].published_at | stringnullable | Published at. Stored UTC ISO 8601 timestamp; legacy values may omit a timezone suffix. |
data[].truncated_fields | array of string | Scalar text fields truncated at 200000 characters. Empty when no scalar was truncated. |
Response metadata
| Field | Type | Description |
|---|---|---|
meta.request_id | stringalways present | Request identifier; also returned in X-Request-ID. Include it in support requests. |
meta.api_version | stringalways present | API version that produced the response. one of: v1 |
meta.limit | integer | Applied page size; default 50, maximum 100. |
meta.has_more | boolean | Whether another page exists. |
meta.next_cursor | stringnullable | Opaque next-page cursor, null at the end. Cursors expire after 24 hours. |
meta.availability | string | available when stored data exists; not_available when it does not. one of: available, not_available |
meta.billing | object | Present for paid live SERP requests; replayed receipts describe the original debit, not an additional charge. |
meta.billing.operation | stringalways present | one of: client_api_serp_refresh |
meta.billing.credits_charged | integeralways present | min 0 |
meta.billing.transaction_id | integeralways present | |
meta.billing.replayed | booleanalways present |
Error responses
Errors return {"error": {"code", "message", "request_id"}}. See error handling for retry guidance.
| HTTP | When |
|---|---|
400 | Invalid parameters |
401 | Invalid credentials |
403 | Missing permission |
404 | Missing or inaccessible resource |
413 | artifact_too_large: the authorized stored export exceeds 2 MiB or bounded retrieval limits. |
503 | artifact_unavailable or ownership_unavailable: stored artifact cannot be safely retrieved. |