{"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/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/mbe/creative-requests":"Receive MBE creative-production requests and enqueue paid-static generation","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":"Soft-delete brand by hiding it from dashboard surfaces","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/partner-onboarding":"Create partner brand onboarding workspace","GET /api/brands/:brandId/partner-onboarding":"Get latest partner onboarding workspace for brand","GET /api/partner-onboarding/:runId":"Get partner onboarding workspace","PATCH /api/partner-onboarding/:runId":"Update partner onboarding workspace, SKUs, and draft guidelines","DELETE /api/partner-onboarding/:runId":"Hard-delete an unpublished partner draft (brand + run + assets + GCS files)","POST /api/partner-onboarding/:runId/assets":"Upload partner onboarding source, product, or ad asset","POST /api/partner-onboarding/:runId/assets/url":"Attach partner onboarding source or asset URL","POST /api/partner-onboarding/:runId/generate-guidelines":"Queue partner source ingestion and brand-guidelines draft generation","POST /api/partner-onboarding/:runId/publish":"Approve and publish partner brand guidelines","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/landing-pages/:brandSlug/:variant":"Get dynamic landing page component structure","GET /api/landing-pages/:brandSlug/:variant/metadata":"Get dynamic landing page document metadata","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","POST /api/organic-static/generate":"Trigger brand-linked or persona-first TikTok carousel generation","GET /api/organic-static/persona/runs":"List persona-first organic-static runs with optional brand filter","GET /api/organic-static/runs/:runId":"Get organic-static run with stages, artifacts, concepts, and posting status","GET /api/air/boards":"List available Air boards","GET /api/air/boards/:boardId/preview":"Preview Air board before import","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/text-strategy":"Get brand text strategy fields for agent platforms","PUT /api/agent/brands/:id/text-strategy":"Update scoped brand text strategy fields from agent platforms","PUT /api/agent/brands/:id/guidelines":"Update canonical brand guidelines JSON from 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"},"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/mbe/creative-requests":"Receive MBE creative-production requests and enqueue paid-static generation","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/partner-onboarding/:runId/generate-guidelines":"Queue partner source ingestion and brand-guidelines draft generation","POST /api/paid-static/generate":"Trigger standalone paid-static ad generation","POST /api/organic-static/generate":"Trigger brand-linked or persona-first TikTok carousel 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":"Soft-delete brand by hiding it from dashboard surfaces","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/partner-onboarding":"Create partner brand onboarding workspace","GET /api/brands/:brandId/partner-onboarding":"Get latest partner onboarding workspace for brand","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/text-strategy":"Get brand text strategy fields for agent platforms","PUT /api/agent/brands/:id/text-strategy":"Update scoped brand text strategy fields from agent platforms","PUT /api/agent/brands/:id/guidelines":"Update canonical brand guidelines JSON from 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"},"Analytics":{"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/partner-onboarding/:runId":"Get partner onboarding workspace","PATCH /api/partner-onboarding/:runId":"Update partner onboarding workspace, SKUs, and draft guidelines","DELETE /api/partner-onboarding/:runId":"Hard-delete an unpublished partner draft (brand + run + assets + GCS files)","POST /api/partner-onboarding/:runId/assets":"Upload partner onboarding source, product, or ad asset","POST /api/partner-onboarding/:runId/assets/url":"Attach partner onboarding source or asset URL","POST /api/partner-onboarding/:runId/publish":"Approve and publish partner brand guidelines","GET /api/landing-pages/:brandSlug/:variant":"Get dynamic landing page component structure","GET /api/landing-pages/:brandSlug/:variant/metadata":"Get dynamic landing page document metadata","GET /api/paid-static-runs/:runId":"Get paid-static run with stages and artifacts","GET /api/organic-static/persona/runs":"List persona-first organic-static runs with optional brand filter","GET /api/organic-static/runs/:runId":"Get organic-static run with stages, artifacts, concepts, and posting status","GET /api/proxy/content":"Proxy content from GCS"}}}