Creator Search API Documentation & Hosted MCP Server
Janney AI's 180M+ creator database as a REST API and a hosted, drop-in MCP server. Search creators, find lookalikes, extract verified emails, and pull audience demographics — from your own code or straight inside an AI agent.
Included with the All You Can Search plan and up. Create and manage keys in the app.
What it is
A REST API and MCP server for programmatic creator discovery across TikTok, Instagram, and YouTube.
What it returns
Creator profiles, lookalikes, verified emails, audience demographics, and remaining API credits.
Who should use it
Teams building agency dashboards, CRMs, data pipelines, marketplaces, or AI agents around creator search.
Authentication
All requests go to the base URL https://backend.janney.ai and carry your API key. Send it as an x-api-key header, or as Authorization: Bearer <key>. Create a key on the API & MCP page in the app.
# header
curl https://backend.janney.ai/api/v1/credits -H "x-api-key: YOUR_API_KEY"
# bearer
curl https://backend.janney.ai/api/v1/credits -H "Authorization: Bearer YOUR_API_KEY"Requests without a valid key return 401. Accounts without the required plan return 403.
Endpoints
/api/v1/searchSearch creators
Search the creator database (TikTok / Instagram / YouTube) by a natural-language query and/or structured filters. Emails are stripped from results — use /enrich/email for a verified address.
Body parameters
| Field | Type | Required | Description |
|---|---|---|---|
query | string | optional | Natural-language description of the creators you want, e.g. "fitness creators in the US with 10k–100k followers". |
filters | object | optional | Structured filters — platform, country, follower ranges, niche, engagement, etc. |
limit | integer | optional | How many creators to return. 1–100, default 20. |
offset | integer | optional | Pagination offset. Default 0. |
sort_by | string | optional | Sort field (e.g. relevancy, number_of_followers, engagement_rate). |
Response
| Field | Type | Description |
|---|---|---|
results | Creator[] | Matching creators (see Creator object below). Emails are not included. |
total_matched | integer | Total creators matching the query (may exceed returned count). |
count | integer | Number of creators returned in this response. |
Request
curl -X POST https://backend.janney.ai/api/v1/search \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "fitness creators in the US", "limit": 10}'Example response
{
"count": 10,
"total_matched": 4213,
"results": [
{
"platform": "instagram",
"username": "timmyunleashed",
"display_name": "Tim",
"followers": 17769,
"engagement_rate": 4.1,
"verified": false,
"country": "US",
"gender": "male",
"niche_tags": ["fitness", "wellness"]
}
]
}/api/v1/similarFind similar creators
Return lookalike creators similar to a given one.
Body parameters
| Field | Type | Required | Description |
|---|---|---|---|
platform | string | required | instagram | tiktok | youtube. |
username | string | required | The seed creator's handle. |
limit | integer | optional | 1–100, default 20. |
filters | object | optional | Optional structured filters to narrow the lookalikes. |
Response
| Field | Type | Description |
|---|---|---|
results | Creator[] | Similar creators (Creator object). Emails not included. |
count | integer | Number returned. |
Request
curl -X POST https://backend.janney.ai/api/v1/similar \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"platform": "instagram", "username": "timmyunleashed", "limit": 10}'Example response
{
"count": 10,
"results": [
{ "platform": "tiktok", "username": "flytyfitness", "followers": 52140, "country": "US" }
]
}/api/v1/enrich/emailExtract verified emails
Authoritative email extraction — bio de-obfuscation + external links + contact page + linktree. Charges only for emails actually found.
Body parameters
| Field | Type | Required | Description |
|---|---|---|---|
creators | {platform, username}[] | required | Up to 200 creators to extract emails for. (Or send platform + username for a single creator.) |
Response
| Field | Type | Description |
|---|---|---|
results | object[] | Per creator: { platform, username, email (string | null), source (string | null) }. |
found | integer | Number of creators for which an email was found. |
requested | integer | Number of creators requested. |
Request
curl -X POST https://backend.janney.ai/api/v1/enrich/email \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"creators": [{"platform": "instagram", "username": "timmyunleashed"}]}'Example response
{
"requested": 1,
"found": 1,
"results": [
{ "platform": "instagram", "username": "timmyunleashed", "email": "[email protected]", "source": "bio" }
]
}/api/v1/audienceAudience demographics
Audience breakdowns for a creator — age, gender and top countries. Charged only on a hit.
Body parameters
| Field | Type | Required | Description |
|---|---|---|---|
platform | string | required | instagram | tiktok | youtube. |
username | string | required | The creator's handle. |
refresh | boolean | optional | Force a fresh compute instead of a cached result. |
Response
| Field | Type | Description |
|---|---|---|
audience_age | object | Age-bucket distribution. |
audience_gender | object | Gender split. |
audience_geo_countries | object | Top audience countries. |
audience_languages | object | Top audience languages. |
Request
curl -X POST https://backend.janney.ai/api/v1/audience \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"platform": "instagram", "username": "timmyunleashed"}'Example response
{
"audience_gender": { "male": 0.58, "female": 0.42 },
"audience_age": { "18-24": 0.31, "25-34": 0.44 },
"audience_geo_countries": { "US": 0.61, "CA": 0.09, "GB": 0.07 }
}/api/v1/creditsRemaining credits
Check how many API credits are left on your account. Also available at /api/v1/me. Free — never charged.
Response
| Field | Type | Description |
|---|---|---|
available_credit | number | Credits remaining this billing period. |
used_credit | number | Credits used. |
ledger_balance | number | Granted balance. |
Request
curl https://backend.janney.ai/api/v1/credits \
-H "x-api-key: YOUR_API_KEY"Example response
{ "available_credit": 882.9, "used_credit": 197.1, "ledger_balance": 1080 }The Creator object
Returned by /search and /similar. Fields are populated where known; contact emails are intentionally excluded — use /enrich/email.
| Field | Type | Description |
|---|---|---|
platform | string | instagram | tiktok | youtube. |
username | string | The creator's handle. |
display_name | string | Display name. |
followers | integer | Follower count. |
engagement_rate | number | Engagement rate (%). |
verified | boolean | Platform-verified badge. |
country | string | ISO-2 country code, where known. |
gender | string | Inferred gender, where known. |
niche_tags | string[] | Niche / category tags. |
MCP server
The same data as a hosted, standards-compliant MCP server — drop it into any MCP client and your AI agent can call it directly. One config works everywhere; swap YOUR_API_KEY for a key from the app.
{
"mcpServers": {
"janney": {
"command": "npx",
"args": [
"mcp-remote",
"https://backend.janney.ai/mcp",
"--header",
"Authorization: Bearer YOUR_API_KEY"
]
}
}
}Install docs by client
search_creatorsfind_similar_creatorsenrich_emailcreator_audienceget_remaining_creditsCredits & rate limits
Your plan's monthly credits are the API quota — shared across REST and MCP, metered per call. Check the balance anytime with GET /api/v1/credits (or the get_remaining_credits MCP tool).
Cost per call
/search · /similar0.01 / creator/enrich/email1 / email found/audience1 / creator/credits · /mefree
Rate limits (per key)
- search / similar120 / min
- email / audience30 / min
- credits / me300 / min
Over the limit returns 429 with a Retry-After header.
Related developer and campaign resources
Use these pages to connect the API documentation with Janney AI's marketplace listings, SaaS workflow, and All You Can Search positioning.
Get started
The API and hosted MCP are included with the All You Can Search plan and up. Subscribe, then create your key on the API & MCP page in the app.
