REST API  /  MCP Server

Script your traffic.
Or just ask for it.

Everything the dashboard does, Babylon Traffic also exposes as a versioned REST API and as a remote MCP server. Build campaigns from your own code, or hand the whole account to Claude, ChatGPT or any other MCP client and describe what you want in plain English.

babylon traffic · mcp
Send 1,200 visits a day to example.com from United States, mostly mobile, and have them read for a while before leaving.
calling create_campaign
"name": "example.com · DE", "call_per_day_min": 1200, "targeting": { "country": "us" }, "mobile_percentage": 80, "actions_per_visit": 4
Done. The campaign is live and set to click through, wait 20–45 seconds, scroll, then follow one internal link.
Two ways in

Pick the one that fits the job

Both speak to the same account, the same quotas and the same campaigns. One credential type covers both, and revoking it kills both at once.

REST

For your own code

A versioned JSON API under /api/v1, authenticated with a bearer token you create yourself. Predictable envelope, cursor-free pagination, filtering and sorting on every list.

# create a campaign curl -X POST https://www.babylontraffic.com/api/v1/projects/123/campaigns \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{"name":"Homepage","countries":"us", ... }'
MCP

For AI assistants

A remote MCP server at /mcp, added by URL alone. The assistant discovers the tools itself, asks you to approve the connection in the browser, and then works the account the way you would.

# nothing to paste but this https://www.babylontraffic.com/mcp # OAuth 2.1 + PKCE + Dynamic Client Registration # discovery: /.well-known/oauth-protected-resource
Under the hood

Three front doors, one implementation

The API is not a wrapper bolted onto the app. The dashboard, the REST controllers and the MCP tools all call the same action classes, so a rule that holds in the browser holds identically over the wire.

Web dashboard REST controller MCP tool Actions app/Actions Policies · ownership & quotas One shared rule set Your campaigns projects · bots · action trees

Same ownership checks, same plan quotas, same abuse filter — whichever door you came through.

Connecting an assistant

Three steps, and none of them is "find your API key"

Paste the URL

In Claude, ChatGPT or any MCP client, add a custom connector and give it the address below. There is no client ID, no secret and no API key to find first.

Approve it here

The client registers itself and sends you to a Babylon Traffic consent screen. Sign in, tick read only or read and write, and confirm. That is the whole handshake.

Revoke any time

The connection lands in your account as an ordinary API token. Delete it there and the assistant loses access immediately, mid-conversation.

https://www.babylontraffic.com/mcp
Tool catalogue

24 tools the assistant can reach for

Each one is scoped to your own account and checked against your plan before it runs. A read-only connection simply never sees the rest.

Projects

  • list_projects
  • get_project
  • create_project
  • update_project
  • duplicate_project
  • toggle_project_active
  • delete_project

Campaigns

  • list_campaigns
  • get_campaign
  • create_campaign
  • update_campaign
  • duplicate_campaign
  • move_campaign
  • toggle_campaign_active
  • delete_campaign

Action trees

  • get_campaign_actions
  • add_campaign_action
  • update_campaign_action
  • replace_campaign_actions
  • delete_campaign_action

Reporting

  • get_traffic_stats
  • list_runs
  • get_run
  • get_account
37 REST endpoints, described in the OpenAPI spec
2 Scopes: read and write, picked per token
60 Requests a minute, per token, on both surfaces
0 Keys to paste when connecting an assistant
REST reference

Everything under /api/v1

Reads need the read scope, writes need write. Lists accept ?per_page=, ?page=, ?q=, ?sort= and ?filter[field]=.

Account Who the token belongs to, and its plan quotas
GET /v1/user
POST /v1/tokens — exchange credentials for a token
GET /v1/tokens
DEL /v1/tokens/{id}
Projects The folders that group your campaigns
GET /v1/projects
POST /v1/projects
GET /v1/projects/{project}
PATCH /v1/projects/{project}
DEL /v1/projects/{project}
POST /v1/projects/{project}/activate
POST /v1/projects/{project}/duplicate
Campaigns Target site, volume, schedule and geo profile
GET /v1/campaigns
GET /v1/projects/{project}/campaigns
POST /v1/projects/{project}/campaigns
GET /v1/campaigns/{campaign}
PATCH /v1/campaigns/{campaign}
DEL /v1/campaigns/{campaign}
POST /v1/campaigns/{campaign}/activate
POST /v1/campaigns/{campaign}/duplicate
POST /v1/campaigns/{campaign}/move
Action trees What each simulated visitor does on the page
GET /v1/campaigns/{campaign}/actions
POST /v1/campaigns/{campaign}/actions
PUT /v1/campaigns/{campaign}/actions — replace the whole tree
PATCH /v1/campaigns/{campaign}/actions/{action}
DEL /v1/campaigns/{campaign}/actions/{action}
Reporting Daily figures and individual runs, with CSV export
GET /v1/stats — and /stats/export
GET /v1/projects/{project}/stats
GET /v1/campaigns/{campaign}/stats
GET /v1/logs
GET /v1/logs/{log}

Your first campaign is one sentence away.

Sign in, create a token or connect an assistant, and you are talking to the same engine that runs every campaign in the dashboard.