{"data":{"name":"CreateWith Agent API","description":"Creator-discovery API over Twitch metrics we collected ourselves by polling — Twitch exposes no history, so nothing here is backfilled; collection began 2026-06-08.","facts":["Status: free beta — metering is live, every price is $0 today, and no card is involved.","No key is needed to start — every read and search runs as a guest, cached research dossiers (GET /api/v1/creators/{id}/research) included, metered per IP; a free email-only key (POST /api/v1/keys with {\"email\":\"you@example.com\"}) keeps usage on one account. POST /api/v1/research — commissioning new research — is the one endpoint that requires a key.","A keyed account starts with 200 free read/search calls; only keyed metered calls draw on them — guest calls run against their own per-IP daily cap, and the free endpoints cost nothing to anyone.","Every number here is from snapshots we collected ourselves: collection began 2026-06-08, and nothing before that exists or can be backfilled.","Only the 3d/7d/14d metric windows are computed — 30d unlocks ~2026-09-06 and 90d ~2027-03-05.","Off-platform dossiers cover ~1,800 creators out of 566k+ tracked; GET /api/v1/stats is free and carries both live counts, plus where the dossiers are by language and reach band."],"first_reply":"CreateWith searches Twitch creators for brand campaigns. No key is needed to start, so any of these can run right now — here are the eight, in the words a person would use:\n\n1. \"Find rising English-language VALORANT streamers under 10k followers\" — Rising in a game (needs: game name, follower ceiling)\n2. \"Show me the small Twitch channels blowing up this week\" — Trending right now (needs: size tier (micro/small/mid/large))\n3. \"Find creators whose live audience is unusually big for their follower count\" — Undervalued engagement (runs as it is)\n4. \"Tell me everything you know about the streamer quiggy_\" — Creator lookup (needs: login or display name)\n5. \"Find Twitch streamers who are also working musicians\" — Off-platform interest (needs: the interest or topic)\n6. \"Find German-speaking streamers for a campaign running in Germany\" — Market-targeted (needs: market/country)\n7. \"Build a brand-safe shortlist of Fortnite creators between 1k and 50k followers\" — Brand-safe shortlist (needs: game or audience, reach band, shortlist size)\n8. \"What's happening on Twitch right now?\" — What's live now (runs as it is)\n\nWhichever of those is closest to what you have in mind — with the blanks beside it filled in — is enough for me to run it and come back with a shortlist.","first_reply_note":"`first_reply` is the `recipes` menu already written out as a reply, for an ask that arrives with its blanks unfilled — no game, follower band, market or interest named. A specific ask matches one recipe outright and needs no menu; running several recipes on a vague one costs the person a shortlist to read per search.","relay_note":"Every metered response carries `meta.relay`: its `recipe` and `window` name the search that ran, and its `say` lines are the caveats for that exact response; `recipes` plus `facts` describe what this service offers.","docs":{"llms":"/llms.txt?v=6d6785a","skill":"/skill.md?v=6d6785a","openapi":"/openapi.json","signup":"/signup"},"auth":{"scheme":"Authorization: Bearer tw_live_<32 chars>","rule":"No key is needed to read or search: a call with no Authorization header runs as a guest, metered per IP (see `meta.account`). A key is free and email-only (POST /api/v1/keys) and keeps your usage on one account; `POST /api/v1/research` requires one. A malformed or revoked key is 401 invalid_api_key.","signup":{"url":"/signup","api":"POST /api/v1/keys"},"free_tier_calls":200,"rate_limit_per_min":60,"guest":{"daily_call_cap":300,"daily_row_cap":2000,"note":"Guest calls are metered per IP per UTC day across both caps; exceeding either returns 429 guest_limit carrying the signup call and a Retry-After. Same-origin page fetches do not spend the allowance. An Idempotency-Key is accepted on a guest call and does nothing — there is no ledger row to deduplicate against. POST /api/v1/research is the one endpoint the guest lane does not serve."}},"endpoints":[{"method":"GET","path":"/api/v1","price_class":"free","description":"This index: every endpoint, its price class, and example calls."},{"method":"GET","path":"/api/v1/creators/search","price_class":"search","description":"Filtered creator search, ≤25 rows/page (~20 filter params: window 3d/7d/14d, q, game, tag, language, broadcaster_type, min/maxAvgViewers, min/maxFollowers, minMomentum, minViewerGrowth, brandSafeOnly, enrichedOnly, enrichedQuery, sort, dir, limit, offset). viewer_growth is a signed ratio: 0.25 means +25% average viewers vs the prior window."},{"method":"GET","path":"/api/v1/creators/{id}","price_class":"read","description":"One creator's profile + metrics across all windows + trends (id = Twitch user id; resolve a login via search?q=)."},{"method":"GET","path":"/api/v1/creators/{id}/research","price_class":"dossier","description":"Cached off-platform research dossier; coverage-aware (refunded when the creator is not enriched)."},{"method":"GET","path":"/api/v1/trending","price_class":"read","description":"Disproportionately-rising creators by size tier (micro/small/mid/large), paginated per tier."},{"method":"GET","path":"/api/v1/live","price_class":"read","description":"Live platform overview snapshot."},{"method":"GET","path":"/api/v1/stats","price_class":"free","description":"Corpus shape: what's tracked and how values are distributed — call this before filtering."},{"method":"GET","path":"/api/v1/categories","price_class":"free","description":"Resolve a topic/game phrase to the category ids we actually track."},{"method":"POST","path":"/api/v1/research","price_class":"enrich_job","description":"Commission fresh off-platform research for one creator; returns a poll URL."},{"method":"GET","path":"/api/v1/research/{id}","price_class":"poll","description":"Poll a research job by creator id (polling advances the job; $0)."},{"method":"POST","path":"/api/v1/keys","price_class":"free","description":"Self-serve signup: email in, API key + quickstart out (3/hour/IP)."}],"mcp":{"url":"/api/v1/mcp","transport":"streamable-http (stateless, POST only)","tools":[{"name":"search_creators","price_class":"search"},{"name":"search_enriched_creators","price_class":"search"},{"name":"get_channel_profile","price_class":"read"},{"name":"get_trending","price_class":"read"},{"name":"get_live","price_class":"read"},{"name":"get_overview_stats","price_class":"free"},{"name":"list_categories","price_class":"free"},{"name":"list_recipes","price_class":"free"},{"name":"present_shortlist","price_class":"free"}],"accept_note":"Raw HTTP callers must also send `Accept: application/json, text/event-stream` — the transport returns 406 without it, and a 406 is billed. MCP client libraries set it for you."},"recipes":[{"id":"rising-in-game","title":"Rising in a game","one_liner":"momentum-ranked small creators in one category.","human_provides":["game name","follower ceiling","language (optional)"],"example_ask":"Find rising English-language streamers under 10k followers playing <game>","human_prompt":"Find rising English-language VALORANT streamers under 10k followers","required_params":["sort=momentum_score","game"],"optional_params":["language","maxFollowers","minFollowers","hideInsufficient","minStreams","brandSafeOnly","dir","limit"],"call":"GET /api/v1/creators/search?sort=momentum_score&dir=desc&language=en&maxFollowers=10000&game=<name>&hideInsufficient=true&minStreams=3","example_url":"/api/v1/creators/search?sort=momentum_score&dir=desc&language=en&maxFollowers=10000&game=VALORANT&hideInsufficient=true&minStreams=3","returns":"up to 25 creators with window metrics, momentum rank and latest-stream context.","notes":"minStreams=3 keeps one-off spikes out (hideInsufficient=true implies 3+ streams unless you set minStreams yourself); brandSafeOnly=true composes onto this call, as it does onto every recipe here; unsure the game is covered? GET /api/v1/categories?q=<topic> and GET /api/v1/stats are free."},{"id":"trending-now","title":"Trending right now","one_liner":"disproportionate risers by size tier.","human_provides":["size tier (micro/small/mid/large)","window (optional)"],"example_ask":"Who's blowing up this week among small channels?","human_prompt":"Show me the small Twitch channels blowing up this week","required_params":[],"optional_params":["window","tier","limit"],"call":"GET /api/v1/trending?window=7d&tier=micro","example_url":"/api/v1/trending?window=7d&tier=micro","returns":"per-tier sections with trending_score, confidence, machine-written reasons and a 14-point daily series."},{"id":"undervalued-engagement","title":"Undervalued engagement","one_liner":"the moneyball tell: watchers per follower.","human_provides":["follower band (optional)","game or language (optional)"],"example_ask":"Find creators with unusually engaged audiences for their size","human_prompt":"Find creators whose live audience is unusually big for their follower count","required_params":["sort=viewer_to_follower_ratio"],"optional_params":["minFollowers","maxFollowers","game","language","hideInsufficient","minStreams","dir","limit"],"call":"GET /api/v1/creators/search?sort=viewer_to_follower_ratio&dir=desc&hideInsufficient=true&maxFollowers=<n>","example_url":"/api/v1/creators/search?sort=viewer_to_follower_ratio&dir=desc&hideInsufficient=true&minFollowers=1000&maxFollowers=20000&minStreams=3","returns":"creators ranked by viewer_to_follower_ratio — ~0.3–3% is typical, >5% anomalously engaged."},{"id":"creator-lookup","title":"Creator lookup","one_liner":"everything held on one creator.","human_provides":["login or display name"],"example_ask":"Tell me about streamer <login>","human_prompt":"Tell me everything you know about the streamer quiggy_","required_params":["q"],"optional_params":["limit"],"call":"GET /api/v1/creators/search?q=<login> then GET /api/v1/creators/{id} with rows[0].id, then GET /api/v1/creators/{id}/research","example_url":"/api/v1/creators/search?q=quiggy_","returns":"profile, every computed window, trends, plus the off-platform dossier when one exists.","notes":"{id} is the NUMERIC Twitch user id read from rows[0].id of the search — never the login. No dossier? Commission one: POST /api/v1/research with {\"creator_id\":\"<id>\"} then poll GET /api/v1/research/{id} every 15s; a job takes 1-4 minutes."},{"id":"off-platform-interest","title":"Off-platform interest","one_liner":"creators with a real second act (music, art, sport, business).","human_provides":["the interest or topic","reach band (optional)"],"example_ask":"Find streamers who are also musicians (or artists, athletes, founders)","human_prompt":"Find Twitch streamers who are also working musicians","required_params":["enrichedQuery"],"optional_params":["hideInsufficient","minStreams","minFollowers","maxFollowers","limit"],"call":"GET /api/v1/creators/search?enrichedQuery=<interest>&hideInsufficient=true then GET /api/v1/creators/{id}/research to confirm the interest is in the dossier","example_url":"/api/v1/creators/search?enrichedQuery=music&hideInsufficient=true","returns":"full-text matches over research dossiers — verify the hit in the dossier before presenting; expect false positives.","notes":"enrichedQuery is full text over dossiers, so expect false positives — a dossier that merely MENTIONS the word matches, which is why the confirming GET /api/v1/creators/{id}/research is part of this recipe; coverage is partial (~1,800 dossiers), so a thin result means few are researched, not that none fit."},{"id":"market-targeted","title":"Market-targeted","one_liner":"creators for one market — language is a proxy, confirm `location` in the dossier.","human_provides":["market/country","game or interest (optional)"],"example_ask":"Find UK-based FPS creators","human_prompt":"Find German-speaking streamers for a campaign running in Germany","required_params":["language"],"optional_params":["sort","dir","game","minFollowers","maxFollowers","limit"],"call":"GET /api/v1/creators/search?language=<code>&sort=momentum_score&dir=desc then GET /api/v1/creators/{id}/research and check location","example_url":"/api/v1/creators/search?language=de&sort=momentum_score&dir=desc","returns":"language-filtered candidates — broadcaster language is a geography proxy; the only real location signal is `location` in a dossier."},{"id":"brand-safe-shortlist","title":"Brand-safe shortlist","one_liner":"outreach-ready picks for a brand brief.","human_provides":["game or audience","reach band","shortlist size"],"example_ask":"Build me a brand-safe shortlist of mid-size <game> creators","human_prompt":"Build a brand-safe shortlist of Fortnite creators between 1k and 50k followers","required_params":["brandSafeOnly=true","minFollowers","sort=momentum_score"],"optional_params":["game","maxFollowers","hideInsufficient","minStreams","language","dir","limit"],"call":"GET /api/v1/creators/search?brandSafeOnly=true&game=<name>&minFollowers=<n>&maxFollowers=<n>&hideInsufficient=true&sort=momentum_score&dir=desc then GET /api/v1/creators/{id}/research for the finalists","example_url":"/api/v1/creators/search?brandSafeOnly=true&game=Fortnite&minFollowers=1000&maxFollowers=50000&hideInsufficient=true&sort=momentum_score&dir=desc","returns":"content-label-filtered creators, momentum-ranked, with metrics; dossiers add socials, location and prior brand deals for the finalists."},{"id":"whats-live","title":"What's live now","one_liner":"right-now platform snapshot.","human_provides":[],"example_ask":"What's happening on Twitch right now?","human_prompt":"What's happening on Twitch right now?","required_params":[],"optional_params":[],"call":"GET /api/v1/live","example_url":"/api/v1/live","returns":"concurrent viewers, live channels, top games/channels/clips at this moment."}],"example_asks":[{"ask":"Find rising English-language streamers under 10k followers playing <game>","call":"GET /api/v1/creators/search?sort=momentum_score&dir=desc&language=en&maxFollowers=10000&game=<name>&hideInsufficient=true&minStreams=3"},{"ask":"Who's blowing up this week among small channels?","call":"GET /api/v1/trending?window=7d&tier=micro"},{"ask":"Find creators with unusually engaged audiences for their size","call":"GET /api/v1/creators/search?sort=viewer_to_follower_ratio&dir=desc&hideInsufficient=true&maxFollowers=<n>"},{"ask":"Tell me about streamer <login>","call":"GET /api/v1/creators/search?q=<login> then GET /api/v1/creators/{id} with rows[0].id, then GET /api/v1/creators/{id}/research"},{"ask":"Find streamers who are also musicians (or artists, athletes, founders)","call":"GET /api/v1/creators/search?enrichedQuery=<interest>&hideInsufficient=true then GET /api/v1/creators/{id}/research to confirm the interest is in the dossier"},{"ask":"Find UK-based FPS creators","call":"GET /api/v1/creators/search?language=<code>&sort=momentum_score&dir=desc then GET /api/v1/creators/{id}/research and check location"},{"ask":"Build me a brand-safe shortlist of mid-size <game> creators","call":"GET /api/v1/creators/search?brandSafeOnly=true&game=<name>&minFollowers=<n>&maxFollowers=<n>&hideInsufficient=true&sort=momentum_score&dir=desc then GET /api/v1/creators/{id}/research for the finalists"},{"ask":"What's happening on Twitch right now?","call":"GET /api/v1/live"}],"quickstart":{"try_it":"curl -s \"https://createwith.dev/api/v1/creators/search?limit=3\"","keep_your_usage_together":"curl -X POST \"https://createwith.dev/api/v1/keys\" -H 'Content-Type: application/json' -d '{\"email\":\"you@example.com\",\"name\":\"prod worker\"}'","then_store_it":"STORE the returned api_key and reuse it across sessions (env var, file, secrets store) — do not sign up again per session. Signup is 3/IP/hour and, once billing goes live, credits attach to the account you already made.","call_with_a_key":"curl -H \"Authorization: Bearer tw_live_...\" \"https://createwith.dev/api/v1/creators/search?limit=3\""}},"meta":{"request_id":"45f1f015-e7f7-4ca1-9625-c5b8199533f9","generated_at":"2026-08-30T16:08:56.002Z","billing":{"price_class":"free","billed_micro":0,"lane":"free","free_calls_remaining":null}}}