API resource
Reverse engineer marketing
Give the agent a website or a social channel and a goal. It researches the source and its competitors (plus your own post analytics), writes a teardown of why it wins, picks the winning content formats to start with, and builds a strategy: offer, pillars, a comment-to-DM funnel, KPIs and a 14-day calendar. Launching schedules the text posts (X, Threads, LinkedIn, Facebook), turns the video items into filming briefs you hand to Agent Posts, and makes one tracked link for the offer. Every 7 days it reads the results and improves the plan. With autonomy: "approval" (the default) it waits for approve before each launch; "autonomous" launches and improves on its own. Research takes a few minutes: poll the run. Runs plus improvement cycles are limited per month (see monthly).
List runs
/v1/reverse-engineer-marketingThe workspace's runs, newest first, and this month's allowance.
curl "https://creatoros-production-5658.up.railway.app/v1/reverse-engineer-marketing" \
-H "Authorization: Bearer $CREATOROS_API_KEY"{
"runs": [
{
"id": "3f6c2a9e-8b1d-4c7a-9e2f-5d4b1a0c7e33",
"source": "https://www.example.com",
"goal": "200 trial signups a month",
"autonomy": "approval",
"status": "awaiting_approval",
"step": "Waiting for your approval to launch",
"cycle": 0
}
],
"monthly": {
"used": 1,
"limit": 20
},
"available": true
}Start a run
/v1/reverse-engineer-marketingQueues the research. status moves through researching, planning, then awaiting_approval or straight to launching and active.
Body
sourcestringThe main website link, or a social channel link or @handle. Optional when websites or competitors are given.
goalstringrequiredWhat you want, e.g. "200 trial signups a month".
autonomy"approval" | "autonomous"Default approval: wait for approve before each launch.
websitesstring[]Your own website links to study.
competitorsstring[]Competitor social channels (links or @handles): their formats, hooks, CTAs and cadence are studied first.
video_stylesstring[]Competitor videos or styles you like: links, or a description.
offers{ name, price?, url?, description? }[]Your products and offers; the plan sells these, with their real names and prices.
brand{ colors?, logos?, notes?, use_brand_kit? }Your colors (hex), logo URLs and notes. The Agent Setup brand kit is used too unless use_brand_kit is false.
account_idsstring[]The accounts this campaign runs on (acc_ ids). It researches, posts and learns only on these, so several campaigns can test different strategies on different accounts in one workspace. Omit for every account.
curl -X POST "https://creatoros-production-5658.up.railway.app/v1/reverse-engineer-marketing" \
-H "Authorization: Bearer $CREATOROS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"goal": "200 trial signups a month",
"websites": [
"https://www.example.com"
],
"competitors": [
"https://www.tiktok.com/@competitor"
],
"video_styles": [
"Fast-cut founder POV with big captions"
],
"offers": [
{
"name": "Pro plan",
"price": "$29/mo",
"url": "https://www.example.com/pricing"
}
],
"brand": {
"colors": [
"#0A0A0A",
"#22D3EE"
]
},
"autonomy": "approval"
}'{
"run": {
"id": "3f6c2a9e-8b1d-4c7a-9e2f-5d4b1a0c7e33",
"status": "queued",
"autonomy": "approval"
}
}Get a run
/v1/reverse-engineer-marketing/{runId}The teardown report (markdown), the strategy (formats, pillars, funnel, KPIs, calendar), each weekly cycles entry (progress, learnings, keep, stop) and every actions item it launched: post (scheduled), brief (needs your footage) and link.
Path parameters
runIdstringrequiredThe run id.
curl "https://creatoros-production-5658.up.railway.app/v1/reverse-engineer-marketing/3f6c2a9e-8b1d-4c7a-9e2f-5d4b1a0c7e33" \
-H "Authorization: Bearer $CREATOROS_API_KEY"{
"run": {
"id": "3f6c2a9e-8b1d-4c7a-9e2f-5d4b1a0c7e33",
"status": "active",
"strategy": {
"summary": "...",
"formats": [
{
"name": "Founder POV hot take",
"why": "...",
"visual_style": "Handheld selfie, jump cuts every 2s, bold captions in brand cyan",
"example_hooks": [
"..."
],
"platforms": [
"tiktok",
"instagram"
],
"per_week": 3
}
],
"calendar": [
{
"day": 1,
"platform": "twitter",
"format": "Thread",
"kind": "text",
"hook": "...",
"caption": "...",
"script": "",
"keyword": "OS"
}
]
},
"cycles": [],
"actions": [
{
"kind": "post",
"platform": "twitter",
"status": "scheduled"
}
]
}
}Approve and launch
/v1/reverse-engineer-marketing/{runId}/approveOnly when status is awaiting_approval. 409 not_awaiting_approval otherwise.
Path parameters
runIdstringrequiredThe run id.
curl -X POST "https://creatoros-production-5658.up.railway.app/v1/reverse-engineer-marketing/3f6c2a9e-8b1d-4c7a-9e2f-5d4b1a0c7e33/approve" \
-H "Authorization: Bearer $CREATOROS_API_KEY"{
"ok": true
}Improve now
/v1/reverse-engineer-marketing/{runId}/improveRuns the weekly cycle now on an active run. Counts against the monthly allowance.
Path parameters
runIdstringrequiredThe run id.
curl -X POST "https://creatoros-production-5658.up.railway.app/v1/reverse-engineer-marketing/3f6c2a9e-8b1d-4c7a-9e2f-5d4b1a0c7e33/improve" \
-H "Authorization: Bearer $CREATOROS_API_KEY"{
"ok": true
}Set autonomy
/v1/reverse-engineer-marketing/{runId}/autonomySwitch between approval and autonomous at any time.
Path parameters
runIdstringrequiredThe run id.
Body
autonomy"approval" | "autonomous"requiredThe new mode.
curl -X POST "https://creatoros-production-5658.up.railway.app/v1/reverse-engineer-marketing/3f6c2a9e-8b1d-4c7a-9e2f-5d4b1a0c7e33/autonomy" \
-H "Authorization: Bearer $CREATOROS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"autonomy": "autonomous"
}'{
"ok": true
}Stop a run
/v1/reverse-engineer-marketing/{runId}/stopNo more cycles; posts it scheduled that haven't gone out yet are cancelled. Retry a failed run with POST /v1/reverse-engineer-marketing/{runId}/retry, remove one with DELETE.
Path parameters
runIdstringrequiredThe run id.
curl -X POST "https://creatoros-production-5658.up.railway.app/v1/reverse-engineer-marketing/3f6c2a9e-8b1d-4c7a-9e2f-5d4b1a0c7e33/stop" \
-H "Authorization: Bearer $CREATOROS_API_KEY"{
"ok": true,
"cancelled": 3
}