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

GET/v1/reverse-engineer-marketing

The 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"
Response 200
{
  "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

POST/v1/reverse-engineer-marketing

Queues the research. status moves through researching, planning, then awaiting_approval or straight to launching and active.

Body

sourcestring

The main website link, or a social channel link or @handle. Optional when websites or competitors are given.

goalstringrequired

What 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"
  }'
Response 201
{
  "run": {
    "id": "3f6c2a9e-8b1d-4c7a-9e2f-5d4b1a0c7e33",
    "status": "queued",
    "autonomy": "approval"
  }
}

Get a run

GET/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

runIdstringrequired

The 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"
Response 200
{
  "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

POST/v1/reverse-engineer-marketing/{runId}/approve

Only when status is awaiting_approval. 409 not_awaiting_approval otherwise.

Path parameters

runIdstringrequired

The 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"
Response 200
{
  "ok": true
}

Improve now

POST/v1/reverse-engineer-marketing/{runId}/improve

Runs the weekly cycle now on an active run. Counts against the monthly allowance.

Path parameters

runIdstringrequired

The 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"
Response 200
{
  "ok": true
}

Set autonomy

POST/v1/reverse-engineer-marketing/{runId}/autonomy

Switch between approval and autonomous at any time.

Path parameters

runIdstringrequired

The run id.

Body

autonomy"approval" | "autonomous"required

The 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"
  }'
Response 200
{
  "ok": true
}

Stop a run

POST/v1/reverse-engineer-marketing/{runId}/stop

No 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

runIdstringrequired

The 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"
Response 200
{
  "ok": true,
  "cancelled": 3
}