sayintel
Endpoint

Create campaign

POST/api/public/v1/campaignswrite

Create a new outbound campaign, optionally attach a conference URL (public https only) and auto-start the pipeline. Seeds ICP, style memory, and sender defaults from the user's profile. Scraping runs asynchronously via cron; poll get_run_status to follow progress. Pass dry_run=true to get cost_preview without creating anything. Returns { campaign_id, run_started, cost_preview }.

Request

curl -X POST "https://sayintel.com/api/public/v1/campaigns" \
  -H "Authorization: Bearer $SAYINTEL_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{}'

Try it out

Try it outPOST/api/public/v1/campaignswrite

Sent as a bearer token to this site only, and kept in this tab's session storage. It is never written to disk or sent anywhere else.

Paste an API key to run.

Body

NameInTypeRequiredDescription
namebodystringno
pitchbodystringno
ctabodystringno
your_namebodystringno
your_rolebodystringno
tonebodystringno
conference_urlbodystringno
auto_startbodybooleanno
dry_runbodybooleannoWhen true nothing is written, started, or spent. The tool returns only cost_preview so an agent can estimate credits first.

Response

{
  "ok": true,
  "tool": "create_campaign",
  "kind": "write",
  "data": { ... },
  "error": null
}

Notes

  • Scope required: write. How scopes work.
  • Accepts Idempotency-Key. A retry with the same key replays the first result instead of repeating the work.
  • Accepts dry_run: true and always returns cost_preview before spending anything.
  • Same capability over MCP as the tool create_campaign. MCP setup.