A single editorial calendar entry
One calendar entry: its framing, its production status, and the reason it failed if it did.
One calendar entry: its framing, its production status, and the reason it failed if it did.
This is the polling probe for social production. A piece moves through planned → in_production → validating → ready_to_post, or lands on rejected/failed with a failureReason. Read it until the status is terminal; there is no callback.
/v1/projects/{projectId}/editorial-calendar/{itemId}Authorization
agent-token An agent project token. Obtained by OAuth consent for an AI client, or derived per project from an organisation service key for a machine. A scoped API key authenticates the transport but opens no capability: a capability takes its project from the credential.
In: header
Path Parameters
The project this call is about. A routing hint, not an authorisation. The project comes from the credential; this segment exists so multi-project code stays uniform. If it names a project outside the token, the call is refused with routing_hint_mismatch.
uuidThe calendar entry to read. Obtained from GET /editorial-calendar, or returned by the capability that queues a piece for production.
uuidResponse Body
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://app.digitalyser.io/api/v1/projects/550e8400-e29b-41d4-a716-446655440000/editorial-calendar/550e8400-e29b-41d4-a716-446655440000" \ -H "Authorization: Bearer <token>"{ "projectId": "8f14e45f-ea0e-4b1e-9b7a-2c3d4e5f6071", "title": "Three signs your Google listing is costing you calls", "weekLabel": "S39", "dayLabel": "mardi", "plannedDate": "2026-09-29", "format": "reel", "status": "ready_to_post", "personas": [ "P1 restaurateur", "P2 artisan" ], "funnelStage": "TOFU", "topicId": "6b1d8e35-4c70-4a92-8f16-2d9c7a0b5e48", "productionBrief": { "hook": { "pattern": "chiffre-contre-intuitif", "onScreen": "68% of local searches end without a call", "spoken": "Sixty-eight percent of local searches end without a single call." }, "scenes": [ { "index": 2, "duration": 4, "onScreenText": "Three quarters of the calls never happen", "voiceover": "Most of those searches end on a listing that answers nothing.", "visualDescription": "Screen recording of a listing with no opening hours, zoomed on the empty field" } ], "slides": [ { "index": 3, "role": "preuve", "title": "What a complete listing changes", "body": "Opening hours, photos and answered reviews: the three fields that decide whether someone calls.", "visualDescription": "Side-by-side of the same listing before and after completion" } ], "post": { "onScreenText": "Your listing answers one question out of three", "visualDescription": "Close-up of a phone showing an incomplete listing" }, "caption": "Three fields decide whether someone calls you. Most listings fill one.", "hashtags": [ "visibilitelocale", "artisan", "googlebusiness" ], "microStep": "Tester", "cta": "Check your own listing in two minutes — link in bio.", "heygenSceneBriefs": [ { "scene": 2, "prompt": "Medium shot, neutral background, calm delivery, no gestures", "script": "Most of those searches end on a listing that answers nothing." } ], "montageBrief": "Cut on the beat between scenes 2 and 3, keep the screen recording full-frame.", "revisions": [ { "at": "2026-09-22T11:04:37.000Z", "hint": "The hook states a figure without naming its source." } ] }, "packageAssets": { "folder": "social/acme/S39-mardi", "assembledAt": "2026-09-27T08:22:10.000Z", "files": [ { "name": "caption.txt", "kind": "caption", "url": "https://assets.example/social/acme/S39-mardi/visual-1.png", "content": "Three fields decide whether someone calls you. Most listings fill one." } ] }, "decisionLog": [ { "at": "2026-09-26T14:07:52.000Z", "source": "dashboard", "decision": "validate", "feedback": "Hook is good; trim the last scene by a second.", "postUrl": "https://social.example/p/acme-S39-mardi" } ], "failureReason": "The judge rejected the hook twice; production stopped rather than publish a third attempt.", "createdAt": "2026-09-15T09:41:18.000Z", "updatedAt": "2026-09-26T14:07:52.000Z"}Generated from the capability registry — API version 1, 18 paths, from 4815355 (2026-10-12).