Outcome
Read one campaign, check its brand boundary, and interpret its variants, schedule window and current status.
Before you start
- Use the intended environment and the same verified organization throughout. This guide grants no access.
- Discover granted canonical Socialize workspaces through supported Auth/resource discovery. A brand uses the Auth workspace id; display names and provider account ids are not substitutes.
- Select resource context separately from action input. Application permission and workspace access are both required; organization ownership alone does not establish access.
- Published application permission: app_topolo_socialize.calendar:read.
Find the target
- Find the campaign through app_topolo_socialize.campaigns.list in the intended accessible workspace; use its returned id, not a brand id.
- The route derives the brand boundary from the stored campaign and rechecks access. Do not assume a chosen header/resource can transfer a campaign into another brand.
Request
GET /api/campaigns/{id}
| Field | Required | Meaning |
|---|---|---|
id | Yes | Existing campaign id. Non-empty string; no extra input properties. |
Interpret the response
- id is the campaign identity; brandId identifies the owning Auth workspace. Verify both before relying on the result.
- windowStartDate/windowEndDate can be null; pausedAt/resumedAt can be null. A null date is not a future scheduling commitment.
- variants describes campaign content options, including weights and optional post links. It is not evidence that a provider accepted or published anything.
- The route returns the campaign object directly, not a data envelope. The published schema requires status, pause/window fields, variants and creation/update timestamps; use the current contract for optional fields.
Effects
- Workspace authorization can insert a missing local brands mirror or update its organization/status to active before returning. The source labels these actions read-only, but that is not a guarantee of zero storage writes. They do not create, schedule or publish a campaign/post.
- Loads the campaign first, rejects an absent campaign or missing brand boundary, then verifies access to that campaign’s brand before returning it.
Worked examples
These examples are synthetic and unrun. Replace the example identities with discovered, authorized resources; the examples provide no execution approval.
Read a draft campaign
Request
{
"id": "campaign_example"
}
Response illustration
{
"id": "campaign_example",
"brandId": "ws_socialize_example",
"name": "Example campaign",
"createdBy": "user_example",
"status": "draft",
"windowStartDate": null,
"windowEndDate": null,
"paused": false,
"pausedAt": null,
"resumedAt": null,
"variants": [],
"createdAt": "2026-10-21T00:00:00.000Z",
"updatedAt": "2026-10-21T00:00:00.000Z"
}
The returned id matches the requested campaign and brandId matches the intended authorized workspace. A draft with an empty variants array is not a scheduled or published post.
Errors and recovery
- 403
workspace_forbidden: Check the intended campaign’s owning workspace and existing grant. The source deliberately uses the same denial for an unknown and an inaccessible brand; do not enumerate or widen permissions.
Catalogue error metadata additionally lists authentication_required, permission_denied, rate_limited, invalid_input and dependency_unavailable. Those are declared platform-level recovery categories, not captured responses or proof that each application handler emits that exact body. Preserve the actual status, body and request id. Do not invent an error envelope.
This read does not create or publish campaign content and needs no content rollback. Authorization may synchronize a local brand mirror; do not delete or rewrite that mirror as recovery. After a read failure, preserve context and investigate the actual error before any further operation.
Change log
- 2026-10-21: Added action-specific discovery, response interpretation and illustrative examples from source f8e30bad6947f868302f24e9cb31b6a2bdd1fbf6. Explicitly documented authorization mirror writes and the limits of read-only/readiness metadata. Current input/output/permission declarations were rechecked; no business action or provider test was run.
Source
Reviewed immutable Socialize source and the current credential-visible action declaration. This documents the reviewed implementation; it does not certify which source is currently deployed.