API Documentation
Use the Similar Companies API to programmatically find competitors and lookalike companies for any domain, powered by multiple AI models.
Enterprise plan required. API access is available on the Enterprise plan ($100/month). Generate an API key from Account Settings → API Keys.
Authentication
All API requests require a Bearer token in the Authorization header.
Authorization: Bearer sk_live_your_api_key_here
Generate API keys from your account settings. Keys are prefixed with sk_live_ and shown only once at creation.
Errors
The API returns standard HTTP status codes. Error responses include an error field.
| Status | Meaning |
|---|---|
| 200 | Success |
| 400 | Bad request — missing or invalid parameters |
| 401 | Unauthorized — invalid or missing API key |
| 402 | Insufficient credits |
| 429 | Rate limit exceeded |
| 500 | Server error |
Search Competitors
POST
/api/competitors
Find similar companies and competitors for a domain using one or more AI models.
Request Body
| Parameter | Type | Description |
|---|---|---|
| domain required | string | Domain to search (e.g. stripe.com) |
| models required | string[] | Array of model IDs to query. See available models. |
| resultCount optional | number | Results per model: 10, 25, 50, or 100. Default: 100. |
Example Request
curl -X POST https://yourapp.com/api/competitors \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{
"domain": "stripe.com",
"models": ["spyfu-combined", "claude-sonnet-4-6", "gpt-5.4"],
"resultCount": 100
}'
Response
{
"domain": "stripe.com",
"totalCompetitors": 221,
"likelyCompetitors": 221,
"flaggedAsUnlikely": 0,
"elapsedSeconds": 12.4,
"enabledModels": ["spyfu-combined", "claude-sonnet-4-6", "gpt-5.4"],
"competitors": [
{
"domain": "adyen.com",
"company": "Adyen",
"competitorScore": 97,
"competitorType": "Direct",
"confidenceScore": 98,
"sourceCount": 3,
"sources": ["spyfu-combined", "claude-sonnet-4-6", "gpt-5.4"],
"likelyCompetitor": true,
"reasons": ["High SEO overlap", "AI consensus: direct competitor"]
}
],
"perModelData": {
"adyen.com": {
"spyfu-combined": { "rank": 1, "confidence": "high" },
"claude-sonnet-4-6": { "rank": 3, "confidence": "high" },
"gpt-5.4": { "rank": 2, "confidence": "high" }
}
},
"access": {
"plan": "enterprise",
"canDownload": true
}
}
List Models
GET
/api/models
Returns all available AI models with their credit costs and metadata.
curl https://yourapp.com/api/models \
-H "Authorization: Bearer sk_live_..."
Search History
GET
/api/history
Returns your recent searches.
| Parameter | Type | Description |
|---|---|---|
| limit optional | number | Max results (default 20, max 100) |
| offset optional | number | Pagination offset |
Credits
GET
/api/credits/balance
Returns your current credit balance.
GET
/api/credits/transactions
Returns your credit transaction history.
Available Models
| Model ID | Provider | Cost (credits) |
|---|---|---|
| spyfu-combined | SpyFu | 4 |
| spyfu-seo | SpyFu | 4 |
| spyfu-ppc | SpyFu | 4 |
| claude-opus-4-6 | Anthropic | 52 |
| claude-sonnet-4-6 | Anthropic | 14 |
| claude-haiku-4-5-20250918 | Anthropic | 3 |
| gpt-5.4 | OpenAI | 17 |
| gpt-5.4-mini | OpenAI | 5 |
| grok-4.20-0309-non-reasoning | xAI | 6 |
| gemini-2.5-pro | 9 | |
| gemini-2.5-flash | 4 | |
| sonar-pro | Perplexity | 12 |
| sonar | Perplexity | 5 |
Rate Limits
The API is rate limited per API key:
| Limit | Window |
|---|---|
| 60 requests | Per minute |
| 1,000 requests | Per day |
Rate limit headers are returned with each response: X-RateLimit-Remaining, X-RateLimit-Reset.