{"service":"bloom-deep-agents","version":"0.1.0","endpoints":{"GET /health":"Health check","GET /":"List all endpoints","POST /api/stripe/create-checkout-session":"Create Stripe checkout session","GET /api/stripe/session/:id":"Get checkout session details","POST /api/stripe/create-product":"Create Stripe subscription product (internal)","GET /checkout/success":"Checkout success page","POST /api/orchestrator/execute":"Start pipeline execution","GET /api/orchestrator/status/:runId":"Get pipeline run status","GET /api/orchestrator/report/:runId":"Get pipeline run artifacts report","POST /api/orchestrator/cancel/:runId":"Cancel pipeline run","POST /api/orchestrator/resume/:runId":"Resume paused or failed pipeline run","POST /api/orchestrator/approve/:runId":"Approve paused paid-static review gate and resume","POST /api/orchestrator/reject/:runId":"Reject paused paid-static run with reason","GET /api/claims":"List recent claims runs with top claims","POST /api/claims/generate":"Run claims extraction engine","POST /api/research/generate":"Run research engine","POST /api/formulas":"Create a new formula","GET /api/formulas":"List all formulas","GET /api/formulas/:id":"Get single formula","PUT /api/formulas/:id":"Update a formula","DELETE /api/formulas/:id":"Delete a formula","POST /api/formulas/generate":"Generate full formula from claim (queued)","POST /api/formulas/generate-section":"Generate single section inline","POST /api/formulas/:id/fill-remaining":"Fill empty sections (queued)","POST /api/formulas/:id/research":"Trigger research from formula","POST /api/brand/generate":"Run brand identity engine","POST /api/content/generate":"Run content generation engine","POST /api/marketing/generate":"Run marketing engine","POST /api/web/generate":"Run web/landing page engine","POST /api/tiktok/generate":"Run TikTok engine","POST /api/tiktok/persona/generate":"Run persona-first TikTok generation from loose topic/category input, with optional brand linkage","POST /api/openclaw/events":"Receive signed OpenClaw runtime events","POST /api/openclaw/dispatch/chat":"Dispatch a prompt to a configured OpenClaw instance","POST /api/openclaw/dispatch/tool":"Dispatch a tool call to a configured OpenClaw instance","GET /api/openclaw/instances":"List configured OpenClaw instances","GET /api/brands":"List all brands with run counts","DELETE /api/brands/:brandId":"Delete brand and linked generated assets","GET /api/brands/:brandId":"Get brand detail with all linked runs","GET /api/brand/:id/status":"Get brand run status","POST /api/brands/import-from-air":"Import brand from Air board","POST /api/brands/:brandId/resync-air":"Resync Air assets for brand","GET /api/web/:id/status":"Get web run status with landing pages and candidate summaries","POST /api/web_runs/:web_run_id/release":"Release landing page to production","GET /api/brands/:brandId/paid-static-runs":"List paid-static runs for a brand","GET /api/paid-static-runs/:runId":"Get paid-static run with stages and artifacts","POST /api/paid-static/generate":"Trigger standalone paid-static ad generation","GET /api/air/boards":"List available Air boards","GET /api/air/boards/:boardId/preview":"Preview Air board before import","GET /api/meta/campaigns":"List Meta ad campaigns","GET /api/meta/campaigns/:campaign_id/adsets":"List ad sets for campaign","GET /api/meta/sync/status":"Get Meta sync status","POST /api/meta/sync":"Trigger Meta data sync","GET /api/posthog/sync/status":"Get PostHog sync status","POST /api/posthog/sync":"Trigger PostHog analytics sync","GET /api/agent/brands":"List brands for agent platforms (cursor pagination)","GET /api/agent/brands/:id":"Get brand profile for agent platforms","GET /api/agent/brands/:id/assets":"Get brand assets with public URLs","GET /api/agent/brands/:id/research":"Get brand research payload","POST /api/agent/content/generate":"Create async content generation run","GET /api/agent/content/status/:runId":"Get content generation status","GET /api/agent/jobs/:sessionKey":"Poll async agent job result + trace links","POST /api/webhooks/agent/:type":"Receive async result callbacks from agent platforms","GET /api/tiktok/sync/status":"Get TikTok ads sync status","POST /api/tiktok/sync":"Trigger TikTok ads analytics sync","GET /api/tiktok/performance":"Get TikTok ad performance metrics","POST /api/brands/:brandId/tiktok/runs/init":"Initialize a Bloom TikTok persona workflow run","GET /api/brands/:brandId/tiktok/runs":"List Bloom TikTok persona workflow runs for a brand","GET /api/tiktok/persona/runs":"List persona-first TikTok workflow runs for a persona profile","GET /api/tiktok/runs/:runId":"Get Bloom TikTok persona workflow run detail","POST /api/tiktok/runs/:runId/start":"Run the TikTok workflow strategy stage and generate a video plan","POST /api/tiktok/runs/:runId/batch":"Materialize TikTok concepts and variants from the video plan","POST /api/tiktok/runs/:runId/script":"Generate concept-level TikTok scripts and clip manifests","POST /api/tiktok/runs/:runId/art-direction":"Generate concept-level TikTok art direction briefs","POST /api/tiktok/runs/:runId/frame-generation":"Generate TikTok frames for each variant via Bloom-native media tools","POST /api/tiktok/runs/:runId/video-generation":"Generate TikTok clips for each variant via direct media providers","POST /api/tiktok/runs/:runId/assembly":"Assemble final TikTok videos for each variant via Bloom-native assembly","POST /api/tiktok/runs/:runId/caption":"Generate the final TikTok caption package and posting payload","POST /api/tiktok/runs/:runId/review":"Run Bloom-side approval review and advance the TikTok workflow to post readiness","GET /api/tiktok/persona/posts/sync/status":"Get TikTok persona post sync status","POST /api/tiktok/persona/posts/sync":"Trigger TikTok persona posts sync","GET /api/tiktok/persona/posts":"Get TikTok persona posts with latest engagement","GET /api/proxy/content":"Proxy content from GCS"},"categories":{"Health":{"GET /health":"Health check","GET /":"List all endpoints"},"Stripe":{"POST /api/stripe/create-checkout-session":"Create Stripe checkout session","GET /api/stripe/session/:id":"Get checkout session details","POST /api/stripe/create-product":"Create Stripe subscription product (internal)","GET /checkout/success":"Checkout success page"},"Orchestrator":{"POST /api/orchestrator/execute":"Start pipeline execution","GET /api/orchestrator/status/:runId":"Get pipeline run status","GET /api/orchestrator/report/:runId":"Get pipeline run artifacts report","POST /api/orchestrator/cancel/:runId":"Cancel pipeline run","POST /api/orchestrator/resume/:runId":"Resume paused or failed pipeline run","POST /api/orchestrator/approve/:runId":"Approve paused paid-static review gate and resume","POST /api/orchestrator/reject/:runId":"Reject paused paid-static run with reason"},"Engines":{"GET /api/claims":"List recent claims runs with top claims","POST /api/claims/generate":"Run claims extraction engine","POST /api/research/generate":"Run research engine","POST /api/formulas":"Create a new formula","GET /api/formulas":"List all formulas","GET /api/formulas/:id":"Get single formula","PUT /api/formulas/:id":"Update a formula","DELETE /api/formulas/:id":"Delete a formula","POST /api/formulas/generate":"Generate full formula from claim (queued)","POST /api/formulas/generate-section":"Generate single section inline","POST /api/formulas/:id/fill-remaining":"Fill empty sections (queued)","POST /api/formulas/:id/research":"Trigger research from formula","POST /api/brand/generate":"Run brand identity engine","POST /api/content/generate":"Run content generation engine","POST /api/marketing/generate":"Run marketing engine","POST /api/web/generate":"Run web/landing page engine","POST /api/tiktok/generate":"Run TikTok engine","POST /api/tiktok/persona/generate":"Run persona-first TikTok generation from loose topic/category input, with optional brand linkage","POST /api/paid-static/generate":"Trigger standalone paid-static ad generation","POST /api/agent/content/generate":"Create async content generation run"},"Brands":{"GET /api/brands":"List all brands with run counts","DELETE /api/brands/:brandId":"Delete brand and linked generated assets","GET /api/brands/:brandId":"Get brand detail with all linked runs","GET /api/brand/:id/status":"Get brand run status","POST /api/brands/import-from-air":"Import brand from Air board","POST /api/brands/:brandId/resync-air":"Resync Air assets for brand","GET /api/brands/:brandId/paid-static-runs":"List paid-static runs for a brand","GET /api/agent/brands":"List brands for agent platforms (cursor pagination)","GET /api/agent/brands/:id":"Get brand profile for agent platforms","GET /api/agent/brands/:id/assets":"Get brand assets with public URLs","GET /api/agent/brands/:id/research":"Get brand research payload","POST /api/brands/:brandId/tiktok/runs/init":"Initialize a Bloom TikTok persona workflow run","GET /api/brands/:brandId/tiktok/runs":"List Bloom TikTok persona workflow runs for a brand"},"Web":{"GET /api/web/:id/status":"Get web run status with landing pages and candidate summaries","POST /api/web_runs/:web_run_id/release":"Release landing page to production","POST /api/webhooks/agent/:type":"Receive async result callbacks from agent platforms"},"Air":{"GET /api/air/boards":"List available Air boards","GET /api/air/boards/:boardId/preview":"Preview Air board before import"},"Meta":{"GET /api/meta/campaigns":"List Meta ad campaigns","GET /api/meta/campaigns/:campaign_id/adsets":"List ad sets for campaign","GET /api/meta/sync/status":"Get Meta sync status","POST /api/meta/sync":"Trigger Meta data sync","GET /api/posthog/sync/status":"Get PostHog sync status","POST /api/posthog/sync":"Trigger PostHog analytics sync"},"Agent Platform":{"POST /api/openclaw/events":"Receive signed OpenClaw runtime events","POST /api/openclaw/dispatch/chat":"Dispatch a prompt to a configured OpenClaw instance","POST /api/openclaw/dispatch/tool":"Dispatch a tool call to a configured OpenClaw instance","GET /api/openclaw/instances":"List configured OpenClaw instances","GET /api/agent/content/status/:runId":"Get content generation status","GET /api/agent/jobs/:sessionKey":"Poll async agent job result + trace links"},"TikTok":{"GET /api/tiktok/sync/status":"Get TikTok ads sync status","POST /api/tiktok/sync":"Trigger TikTok ads analytics sync","GET /api/tiktok/performance":"Get TikTok ad performance metrics","GET /api/tiktok/persona/runs":"List persona-first TikTok workflow runs for a persona profile","GET /api/tiktok/runs/:runId":"Get Bloom TikTok persona workflow run detail","POST /api/tiktok/runs/:runId/start":"Run the TikTok workflow strategy stage and generate a video plan","POST /api/tiktok/runs/:runId/batch":"Materialize TikTok concepts and variants from the video plan","POST /api/tiktok/runs/:runId/script":"Generate concept-level TikTok scripts and clip manifests","POST /api/tiktok/runs/:runId/art-direction":"Generate concept-level TikTok art direction briefs","POST /api/tiktok/runs/:runId/frame-generation":"Generate TikTok frames for each variant via Bloom-native media tools","POST /api/tiktok/runs/:runId/video-generation":"Generate TikTok clips for each variant via direct media providers","POST /api/tiktok/runs/:runId/assembly":"Assemble final TikTok videos for each variant via Bloom-native assembly","POST /api/tiktok/runs/:runId/caption":"Generate the final TikTok caption package and posting payload","POST /api/tiktok/runs/:runId/review":"Run Bloom-side approval review and advance the TikTok workflow to post readiness","GET /api/tiktok/persona/posts/sync/status":"Get TikTok persona post sync status","POST /api/tiktok/persona/posts/sync":"Trigger TikTok persona posts sync","GET /api/tiktok/persona/posts":"Get TikTok persona posts with latest engagement"},"Utilities":{"GET /api/paid-static-runs/:runId":"Get paid-static run with stages and artifacts","GET /api/proxy/content":"Proxy content from GCS"}}}