Spaces:
Sleeping
Sleeping
| # CarouselForge — API Contracts | |
| All responses follow: `{ success: boolean, data?: T, error?: string }` | |
| --- | |
| ## POST /api/ingest | |
| Accepts raw input and returns extracted content. | |
| **Request:** | |
| ```json | |
| { | |
| "type": "text" | "url" | "pdf" | "topic", | |
| "content": "string (text/url/topic) | base64 (pdf)" | |
| } | |
| ``` | |
| **Response:** | |
| ```json | |
| { | |
| "success": true, | |
| "data": { | |
| "extracted_text": "...", | |
| "source_platform": "instagram" | "twitter" | "web" | null, | |
| "source_url": "..." | null | |
| } | |
| } | |
| ``` | |
| --- | |
| ## POST /api/structure | |
| Sends extracted content to LLM, returns slide structure. | |
| **Request:** | |
| ```json | |
| { | |
| "content": "extracted text", | |
| "platform": "instagram" | "threads" | "linkedin", | |
| "brand_id": 1 | |
| } | |
| ``` | |
| **Response:** | |
| ```json | |
| { | |
| "success": true, | |
| "data": { | |
| "carousel_id": 42, | |
| "slides": [...], | |
| "caption": "...", | |
| "hashtags": ["#ai", "#tech"] | |
| } | |
| } | |
| ``` | |
| --- | |
| ## POST /api/render | |
| Renders slides to PNG images. | |
| **Request:** | |
| ```json | |
| { "carousel_id": 42, "template_id": "bold-statement" } | |
| ``` | |
| **Response:** | |
| ```json | |
| { | |
| "success": true, | |
| "data": { | |
| "image_paths": ["/tmp/renders/42/1.png", ...], | |
| "pdf_path": "/tmp/renders/42/carousel.pdf" | |
| } | |
| } | |
| ``` | |
| --- | |
| ## POST /api/publish | |
| Publishes carousel to social platforms. | |
| **Request:** | |
| ```json | |
| { | |
| "carousel_id": 42, | |
| "platforms": ["instagram", "threads"], | |
| "scheduled_for": "2024-01-15T09:00:00Z" | null | |
| } | |
| ``` | |
| --- | |
| ## GET /api/analytics | |
| Returns engagement data for published carousels. | |
| --- | |
| ## POST /api/research | |
| Triggers trending topic research for a brand. | |
| **Request:** `{ "brand_id": 1 }` | |
| --- | |
| ## POST /api/telegram/webhook | |
| Receives Telegram bot updates. Handled by Telegraf internally. | |
| --- | |
| ## POST /api/telegram/notify | |
| Sends a notification to a Telegram user. | |
| **Request:** | |
| ```json | |
| { | |
| "chat_id": "123456789", | |
| "type": "carousel_preview" | "publish_confirm" | "daily_brief", | |
| "payload": { ... } | |
| } | |
| ``` | |
| --- | |
| *Endpoints filled in as phases are completed. See phase guide for full specs.* | |