Your campaigns.
Your integration.

The Account API lets every account create campaigns, read their statistics, change their settings, and pause or resume them. The same key also connects AI assistants through the MCP server.

Connect from your server

Send your account key in the X-API-KEY header. Keep it out of browser code and source control. Existing read-only keys use the separate Reporting API; they do not gain editing permissions.

GET https://traffic-creator.com/api/v1/account/campaigns
X-API-KEY: YOUR_ACCOUNT_KEY

Every request is limited to the projects owned by the key's account, including projects added later. Cloning and deleting campaigns stay in the dashboard. Billing controls, account roles, internal service fields and project ownership cannot be changed.

Available operations

All paths below start with /api/v1/account.

MethodPathPurpose
GET/balanceAvailable credits by wallet
POST/campaigns/previewCost, wallet and balance check for a campaign; creates nothing
POST/campaignsCreate and start a website, Search Console or local campaign
GET/campaignsList campaigns; limit up to 100 and use next_cursor as after
GET/campaigns/{id}Settings, status, delivered visits, target and remaining visits
GET/campaigns/{id}/analyticsDashboard analytics; days 1–90. Search Console and local campaigns: verified clicks, keywords, positions, search locations and rankings
GET/campaigns/{id}/dailyDaily visits, or verified clicks for search campaigns; days 1–90
GET/campaigns/{id}/hourlyHourly visits, or verified clicks for search campaigns; hours 1–168
GET/campaigns/{id}/rankingsSearch Console and local campaigns: daily Google position from the city and from the whole country, with the trend; days 1–90
GET/campaigns/{id}/search-historySearch Console and local campaigns: every verified visit with keyword, position and where the search came from; days 1–90, offset and limit
PATCH/campaigns/{id}Edit customer settings, name, daily limit, target or wallet tier
POST/campaigns/{id}/pausePause delivery and settle outstanding dispatches
POST/campaigns/{id}/resumeResume under the normal verification, funding and campaign checks
GET/campaigns/{id}/liveVisits of the last hour in 5-minute buckets
GET/campaigns/{id}/hoursWebsite campaigns: visits per UTC hour of the day; days 1–90
GET/campaigns/{id}/analytics/searchWebsite campaigns: every page or city of the report matching q; kind pages or cities
GET/overviewToday (UTC): visits and verified clicks so far, per hour, running campaigns, days of credit left
GET/seo/overviewAll Search Console (type=gsc) or local (type=local) campaigns at once; days 7–90
GET/creditsCredits used and received per day, wallet and campaign; days 7–365
GET/credits/activityWallet entries: purchases, grants and usage; kind, offset, limit
GET/billing/paymentsPayments with a summary; kind all, paid, failed or refunds. No card or bank details
GET/billing/subscriptionCard subscription status and renewal or cancellation date
GET/notificationsNotification bell of the account plus notices shown to everyone right now
GET/support/ticketsOwn support tickets; status, offset, limit
GET/support/tickets/{id}One ticket with the conversation
POST/support/ticketsOpen a ticket (subject, message, category, priority, optional campaign_id); needs campaigns:update
POST/support/tickets/{id}/replyAnswer an own ticket; needs campaigns:update
POST/support/tickets/{id}/closeClose an own ticket; needs campaigns:update
GET/rewardsLevel, XP, permanent discount and daily-bonus streak
GET/affiliateAffiliate tier, earnings, payouts and referred sign-ups (date and status only)
GET/roadmapPlanned features with votes, and the changelog
GET/youtubeYouTube wallet units and campaigns with their orders
GET/profileAccount details, e-mail settings, connected apps and API keys (never a key itself)
GET/pricesVisit plans and SEO packages in USD; with tier, visits and months the exact price after discount
GET/locationsTargetable countries; with country its states and cities

Create a campaign

Preview first: POST /campaigns/preview takes the same body and returns the wallet, the total, whether your balance covers it and how many days it lasts. Credits are charged as the campaign delivers, one per visit or verified click. Send an Idempotency-Key header so a retried request returns the first campaign instead of creating a second one.

POST /api/v1/account/campaigns
Content-Type: application/json
X-API-KEY: YOUR_ACCOUNT_KEY
Idempotency-Key: launch-2026-10-07

{
  "type": "website",
  "name": "Spring launch",
  "url": "https://example.com/landing",
  "daily_visits": 500,
  "duration_days": 14,
  "countries": { "US": 70, "DE": 30 },
  "timezone": "Europe/Berlin",
  "source": "Organic, Google Search"
}

type is website, search_console (needs keywords) or local (needs keywords and business_name). Leave out duration_days to run until the wallet is empty. Pass tier (economy, professional, expert) to choose the wallet of a website campaign; without it, the highest tier that has credits pays: expert, then professional, then economy. Search campaigns use the SEO wallet and follow the day curve in your timezone. Without a GA4 ID that we can detect on the page, a website campaign waits in status pending_ga. Further settings go in settings, with the same fields as a PATCH. Up to five campaigns can be created per minute.

Update settings without overwriting another change

First retrieve the campaign. Include its current settings_version when sending a partial settings update. If the server returns 409, fetch the latest version and review your changes before retrying.

PATCH /api/v1/account/campaigns/YOUR_CAMPAIGN_ID
Content-Type: application/json
X-API-KEY: YOUR_ACCOUNT_KEY

{
  "settings_version": 3,
  "settings": { "timezone": "Europe/Berlin" },
  "daily_limit": 20000
}

Use the dedicated pause/resume operations to change status. Unsupported or internal fields are rejected. Proxy settings and the delivery engine can only be changed in the dashboard. Campaign and page URLs must be public websites. Search Console and local campaigns are paused and resumed through the SEO service automatically, exactly as in the dashboard.

Connect an AI assistant (MCP)

The MCP server at https://traffic-creator.com/mcp gives AI assistants the same operations as tools. Claude and ChatGPT: add a custom connector with this address and sign in with your Traffic Creator account when asked; you choose full access or read only, and you can disconnect the app under API & MCP. Claude Code, Codex, Cursor and VS Code: sign in the same way, or send an account key as a bearer token.

For client developers: OAuth 2.1 with PKCE (S256), authorization server metadata at /.well-known/oauth-authorization-server, protected resource metadata at /.well-known/oauth-protected-resource/mcp, Client ID Metadata Documents and dynamic registration for public clients, resource https://traffic-creator.com/mcp. Access tokens last one hour; refresh tokens rotate on every use.

claude mcp add --transport http traffic-creator https://traffic-creator.com/mcp \
  --header "Authorization: Bearer $TRAFFIC_CREATOR_API_KEY"

Tools that create or resume campaigns are marked as spending credits, so assistants that ask before acting will ask you first. Use a read-only key for an assistant that should only report. Setup for Codex and Cursor is on the API & MCP page.

Understand your statistics

Analytics include available visitor/pageview totals, success and failure counts, engagement, device and source splits, geography, comparisons, page depth and credit usage. Respect the response's coverage and availability fields: metrics that are not collected, including some page-level data, may be unavailable.

total_target is the campaign's configured target, not historical purchased volume. Remaining visits are calculated from the target and delivered total; unlimited targets return null. The account balance shows credits, not subscription invoices.

Limits and errors

Polling every five minutes is supported. Each account key allows 60 reads and 10 writes per minute. Account-wide limits also apply: 240 reads and 30 writes per minute. Up to four reporting reads may run concurrently. Request bodies are limited to 1 MB.

Revoking a key stops it at once. Changing the account password, resetting it or signing out everywhere revokes all of the account’s keys and disconnects its apps; create a new key afterward. If our team switches off API access for an account, all of its keys are revoked and are not restored later.

Download the Account API OpenAPI specification