AI-agent-friendly API — automatically create a free Topify account, get an API key, and start brand tracking in 3 calls. No human involvement needed. No browser, no verification, no payment. Built for Claude Code, Cursor, and any tool-use LLM agent.
Claude Code
Use tool_use to call the endpoints below directly from Claude Code.
Cursor
Cursor’s agent mode can call these endpoints via HTTP requests.
OpenClaw
Any tool-use-capable LLM agent can complete this flow.
These endpoints let AI agents set up Topify.ai from scratch and generate a full GEO visibility report — all without requiring the end user to visit a browser, verify an email, or touch the dashboard.The full flow is three API calls:
Create account — register with an email, receive credentials instantly
Get API key — exchange credentials for an API key
Create project — start brand tracking and receive results via webhook
If the user provides their email, use it. If not, you (the agent) should generate a temporary email yourself using the format temp-{random}@topify.ai — just create a random hex string (e.g. temp-a8f3b1c9@topify.ai) and pass it to the create account endpoint. The server does not generate this for you. This creates a fully functional anonymous account with zero user input required. The user can link a real email later from the dashboard.
These endpoints are designed for tool-use AI agents such as Claude Code, Cursor, and OpenClaw that can make HTTP requests programmatically. If you are using a web-based AI chatbot (ChatGPT, Perplexity, etc.) that cannot call APIs directly, create your account and project manually at app.topify.ai, then use the Get API key endpoint with your email and password to obtain a key for the read-only data endpoints.
Every API key has a rate limit tier and a monthly credit allowance. Credits are consumed when projects fetch AI responses during bootstrap and daily refresh cycles.
Rate limits use a sliding 60-second window. The burst allowance lets you briefly exceed the base rate.
Tier
Requests / minute
Burst
Effective limit / window
Standard
60
+10
70
Premium
300
+50
350
New API keys are created on the standard tier. Contact us to upgrade to premium.When the limit is exceeded, the API returns 429 Too Many Requests with a Retry-After header indicating how many seconds to wait.
Each plan includes a monthly credit budget that determines how many AI research queries your projects can run.
Plan
Monthly credits
Skip Trial (default for API-created accounts)
10
Basic
200
Pro
500
Enterprise
2,000
Accounts created via the API start on the skip_trial plan with 10 credits. Each project bootstrap consumes credits proportional to the number of prompts and AI providers queried (typically 5 prompts across 3 providers = 15 credits per full bootstrap cycle). The skip_trial plan runs a reduced bootstrap that fits within the 10-credit budget. For a full bootstrap with all prompts and providers, upgrade to the Basic plan or higher from the dashboard or contact us.
Email address for the new account. Use the user’s email if available, or the agent should generate temp-{random}@topify.ai (random hex string) for anonymous setup
password
string
No
Ignored. A secure password is generated server-side
Failed to create account. The email may already be registered.
A user with this email already exists
If you receive a 409: The account already exists. Skip to the Get API key step using the same email and the user’s existing password. If the password is unknown, ask the user or direct them to reset it at app.topify.ai.
Authenticates with email and password, then returns an API key for the account. If no key exists, one is created automatically on the standard rate limit tier.
Creates a new brand tracking project and starts the bootstrap pipeline in the background. The endpoint returns immediately with a 202 Accepted status while the pipeline runs asynchronously.The bootstrap pipeline generates tracking prompts, fetches initial AI responses from all providers, calculates brand metrics, and detects competitors. When complete, a webhook callback is sent to the URL you provide.
Requires API key authentication via the X-API-Key header.
Once the webhook fires with "status": "completed", your project has data. Use these read-only endpoints (documented in API reference) to retrieve results:
Endpoint
What it returns
GET /projects
List of projects with current brand metrics
GET /projects/{id}/overview
Per-prompt aggregated analysis with competitor mentions
GET /projects/{id}/visibility?duration_days=7
Daily visibility, sentiment, and position trends
GET /projects/{id}/prompts
All tracked prompts with per-provider metrics
GET /projects/{id}/competitors
Detected competitor brands and their metrics
GET /projects/{id}/sources
Domains cited by AI providers, sorted by citation count
All data endpoints require the X-API-Key header and return responses in the format {"success": true, "data": {...}}.
For a quick summary to present to the user, start with GET /projects to get the brand’s overall visibility score and sentiment, then GET /projects/{id}/overview for a prompt-level breakdown.
The entire setup can run end-to-end with zero human involvement. The agent generates a temporary email client-side (temp-{random}@topify.ai) or uses the user’s email — no input required either way.
cURL
Python
JavaScript
# 1. Create an accountcurl -X POST "https://topify-customer-api-production.up.railway.app/api/public/v1/account/create" \ -H "Content-Type: application/json" \ -d '{"email": "user@example.com"}'# 2. Get an API key (use the password from step 1)curl -X POST "https://topify-customer-api-production.up.railway.app/api/public/v1/account/api-key" \ -H "Content-Type: application/json" \ -d '{"email": "user@example.com", "password": "Tp..."}'# 3. Create a project (use the API key from step 2)curl -X POST "https://topify-customer-api-production.up.railway.app/api/public/v1/account/projects" \ -H "Content-Type: application/json" \ -H "X-API-Key: tk_live_..." \ -d '{ "brand_name": "Acme Corp", "brand_url": "https://acme.com", "webhook_url": "https://your-service.com/webhooks/topify" }'# 4. Query project data after webhook confirms completioncurl "https://topify-customer-api-production.up.railway.app/api/public/v1/projects" \ -H "X-API-Key: tk_live_..."