Editorial calendar entries
The project's social editorial calendar: reels, carousels and posts, planned or in production, each with its status.
The project's social editorial calendar: reels, carousels and posts, planned or in production, each with its status.
This is the social calendar, not the content list. The two are separate surfaces: a content item is written matter, a calendar entry is a piece scheduled for a social channel. They are produced by different pipelines and neither contains the other.
The status of a piece governs what may be done with it: only validating accepts a revision, and publishing to the network is never done here — it stays a human gesture, and no capability declares it.
/v1/projects/{projectId}/editorial-calendarAuthorization
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.
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" \ -H "Authorization: Bearer <token>"[ { "id": "a2f7c3d1-8b45-4e69-9c02-5d1e7f8a3b60", "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).
Editorial strategy for this project GET
The project's editorial strategy: context, personas, content clusters, and the state of its generation.
Content items for this project GET
The editorial pieces produced for this project, paginated — their topic, the formats derived from them, and the production status of each.