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 Growth ($299/month) and Custom plans. 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. There is no total-match count: the index cannot say how many creators match in total, so page with has_more and offset.
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. |
count | integer | Number of creators returned in this response. |
has_more | boolean | Whether another page exists. Raise offset to fetch it. |
applied_filters | object | The constraints that actually took effect. Some arrive as prose inside query and are parsed, so this is how you check what the engine really filtered on. {} when it applied none. |
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,
"has_more": true,
"applied_filters": {},
"results": [
{
"platform": "instagram",
"username": "timmyunleashed",
"display_name": "Tim",
"followers": 17769,
"engagement_rate": 4.1,
"verified": false,
"country": "US",
"gender": "male",
"niche_tags": ["fitness", "wellness"],
"profile_url": "https://www.instagram.com/timmyunleashed/",
"bio": "Coach. Daily workouts."
}
]
}/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. |
has_more | boolean | Whether another page of lookalikes exists. |
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,
"has_more": true,
"results": [
{
"platform": "tiktok",
"username": "flytyfitness",
"display_name": "Flyty Fitness",
"followers": 52140,
"engagement_rate": 3.8,
"verified": false,
"country": "US",
"gender": "male",
"niche_tags": ["fitness", "wellness"],
"profile_url": "https://www.tiktok.com/@flytyfitness",
"bio": "Fitness creator and coach."
}
]
}/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), confidence (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": "tim@example.com", "confidence": "high" }
]
}/api/v1/audienceAudience demographics
Audience breakdowns for a creator — age, gender, top countries and languages. Charged only on a hit; a creator with no audience data returns { error, platform, username } and costs nothing. These figures are estimates modelled from a sample of the creator's followers, not a census — age is the roughest of them and is best read as directional, while gender and country are firmer.
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 |
|---|---|---|
platform | string | Echoes the platform you asked about. |
username | string | Echoes the creator you asked about. |
audience_age | object | Percent by bracket: under_25, 25_34, 35_plus. |
audience_gender | object | Percent split, e.g. { female: 86, male: 14 }. |
audience_geo_countries | object[] | [{ code, pct }] — top countries by share. |
audience_languages | object[] | [{ lang, pct, region }] — top 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
{
"platform": "instagram",
"username": "timmyunleashed",
"audience_gender": { "female": 86, "male": 14 },
"audience_age": { "under_25": 18, "25_34": 45, "35_plus": 36 },
"audience_geo_countries": [
{ "code": "US", "pct": 59.0 },
{ "code": "PH", "pct": 6.9 },
{ "code": "GB", "pct": 4.9 }
],
"audience_languages": [
{ "lang": "en", "pct": 100.0, "region": "US/UK/Global" }
]
}/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. Both endpoints return the same 11-field Creator object: username, platform, display_name, followers, engagement_rate, verified, country, niche_tags, profile_url, bio, and gender. 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. |
profile_url | string | Canonical link to the creator's profile. |
bio | string | Profile bio text. |
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_emailbulk_enrich_startbulk_enrich_statuscreator_audienceget_remaining_creditsCredits & rate limits
Your plan's credits are shared across the app, REST API, and MCP, not separate quotas. In the SaaS app, search, pagination, similar creators, and profile viewing are free; credits are spent only when a contact address is successfully found, or on metered API/MCP actions. API search costs 0.01 credit per creator returned; verified email extraction costs 1 credit per email found. Growth includes 900 monthly credits, enough for up to 90,000 API search results or 900 verified emails before renewal. 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.
If the shared credit balance is exhausted, API requests return 402 and in-app credit-gated actions return 401 until the plan renews or you upgrade/contact sales. Credits roll over while a subscription remains active and expire when it ends. Self-serve one-time credit packs are discontinued.
Related developer and campaign resources
Use these pages to connect the API documentation with Janney AI's marketplace listings, SaaS workflow, Growth developer access, and free creator search positioning.
Get started
The API and hosted MCP are included with Growth ($299/month) and Custom plans. Subscribe, then create your key on the API & MCP page in the app.
