TikHub API Key, API Docs and GitHub SDKs, Tested Step by Step
How to get a TikHub API key, where the API docs live, and which GitHub SDKs still work, checked on Nov 3, 2026, next to three live EveryInfra calls.
Read the full articleOur own visit statistics are always on. Google Analytics, which helps us understand how people use our public pages (not your signed-in workspace), is enabled only with your permission. See our Privacy policy.
Data scraping API, AI search, and CAPTCHA solving, with 573 data capabilities across 106 platforms.
Collect content, comments, and products from supported platforms, perform AI searches, solve website CAPTCHAs.
Collect content, comments, and product data from supported platforms. Each item comes with fields and sources.
Solve listed website CAPTCHA types and return a token, coordinates, or text depending on type; failed attempts have no final charge.
charged only on successful delivery
AI search finds web pages, reads their text, and lets you check the original source.
Use the data analysis Skills to turn collected results into product comparisons, content performance reports, tags and review insights.
Free to download. Use your own AI tool and model.
The Skills don't collect data. Collecting with EveryData is a separate, per-request charge.
ecommerce-product-analysissocial-content-performancecontent-analysis-taggingreview-insightsContributorsBe the first to contribute.
Submit your SkillUse the SEO Skill in your own AI tool for search optimization and AI search visibility (GEO): site diagnosis, keyword research, content optimization, technical audits and rank tracking, assessed market by market.
Free to download. Use your own AI tool and model.
No EveryInfra API key needed
overviewresearchcontenttechnicalmonitoringcurl -fsSL https://raw.githubusercontent.com/everyinfra/seo-skills/main/install.sh | bashContributorsBe the first to contribute.
Contribute to this SkillTop up any amount and the AI API is free to use.
PromptBelow are TripAdvisor reviews of the British Museum, one JSON object per line. Merge reviews that make the same point into one item: write the point in one short sentence and count how many reviews make it. Output only a JSON array, no other text; each item has: text (the point), merged (how many reviews make this point).
| Point | Reviews |
|---|---|
| The Bayeux Tapestry is stunning, beautiful, and an amazing, well-worth-seeing historical exhibit. | 8 |
| The audio guide for the Bayeux Tapestry moves too fast and has a frustrating limit on how many times you can pause it. | 6 |
| Visitors in the Bayeux Tapestry exhibition are constantly rushed or urged to keep moving by staff, detracting from the experience. | 6 |
| Long queues and bottlenecks occur in the Bayeux Tapestry exhibition, especially later in the day. | 5 |
| The British Museum features an incredible, world-class, and massive collection across its halls. | 4 |
| Bathroom facilities are insufficient, poorly kept, or feature excessively long queues. | 3 |
2 more
PromptLabel each review below positive, negative or neutral, and give a topic of two to four words. Output only a JSON array, no other text; each item has: text (the review title), sentiment, keyword.
| Review | Sentiment | Topic |
|---|---|---|
| What is the point of pre-booking? Terribly organised entry system | negative | entry system organization |
| Fantastic exhibition | positive | Bayeux Tapestry exhibition |
| Bayeux Tapestry | positive | Bayeux Tapestry experience |
| All day event | positive | exploring history halls |
| A wasted opportunity to experience something truly special | negative | disappointing audio guide |
| Bayeaux Tapestry | positive | viewing the tapestry |
14 more
PromptFrom each review below extract three fields: issue (entry queue, signage, staff, crowds, prices, none), pre_booked (yes, no, not said) and recommend (yes, no, not said). Output only a JSON array, no other text; each item has: text (the review title), issue, pre_booked, recommend.
| Review | Issue | Pre-booked | Recommends |
|---|---|---|---|
| What is the point of pre-booking? Terribly organised entry system | entry queue | yes | no |
| Fantastic exhibition | none | yes | yes |
| Bayeux Tapestry | entry queue | yes | yes |
| All day event | none | not said | yes |
| A wasted opportunity to experience something truly special | entry queue | yes | no |
| Bayeaux Tapestry | entry queue | yes | yes |
14 more
I want to use the EveryInfra AI API to organize data, for example to remove duplicates, classify sentiment or extract fields. Act as my integration assistant and work in three steps. Step 1: Don't write any code yet. Ask me questions over several rounds, one to three at a time, until all of this is clear: 1. What data I want to organize, where it comes from, where it is stored, and how many rows there are; 2. How to organize it: remove duplicates, classify sentiment, extract fields, or something else; for fields, which ones and which values each one can take; 3. How to store the results, and where; 4. Which language the script uses, where it runs, and whether it runs once or on a schedule. If an answer is vague or contradicts an earlier one, ask again. If I say I don't know, suggest an option and ask me to confirm. Step 2: Walk me through the plan for approval: the prompt you will give the model, how many rows go into each request, how many requests in total, and what the returned JSON will look like. If the data hasn't been collected yet, read EveryInfra's guide for AI agents at https://everyinfra.com/agents.md and include the collection in the plan. Step 3: Only after I approve, write the code and follow these API rules: - Endpoint: OpenAI-compatible Chat Completions. With the official OpenAI SDK, set base_url to https://api.everyinfra.com/api/v1; without it, send POST https://api.everyinfra.com/api/v1/chat/completions. - Models: gemini-3.6-flash by default, plus the lighter gemini-flash-lite. GET https://api.everyinfra.com/api/v1/models lists the available models (no key needed). - Auth: header Authorization: Bearer <API key>. Read the key from the EVERYINFRA_API_KEY environment variable; never put it in code, logs, or commits. If I don't have a key yet, remind me to create one at https://everyinfra.com/app#keys. - Cost: once the account has topped up any amount, the AI API is free and nothing is taken from the balance. A 403 with ai_topup_required means the account hasn't topped up yet; remind me to top up at https://everyinfra.com/app#redeem. - Rate limits depend on the account's total top-ups and cover all of its keys combined (any amount: 50 requests per minute, 5 at a time; $100+: 500 requests per minute, 50 at a time; $500+: 5,000 requests per minute, 500 at a time). Keep the requests in flight within the current tier. - Put many rows into each request instead of one request per row. Keep messages under 45,000 characters in total; on a 422 with input_too_large, split the batch and resend. - In the prompt to the model, name every field and the values it can take, and ask for a JSON array only, with no other text. Resend a batch that doesn't parse once; if it still fails, log it for me to review. - Try about 20 rows first, and run everything only after I confirm the results look right. - On a 429 or 503, wait for the Retry-After delay and try again; if there is none, back off gradually. - The AI API is for organizing the data I collect with EveryInfra. If it is used for something else, or the calls look clearly abnormal, the account's AI API may be paused; the account itself, its other APIs and its balance are not affected.
| source | field | type | value |
|---|---|---|---|
| app_store | url | string | https:// |
| app_store | app_id | number | 1557175442 |
| app_store | name | string | Obsidian - Connected Notes |
| app_store | category | string | Productivity |
| app_store | price | number | 0 |
| app_store | rating_count | number | 2722 |
| app_store | rating | number | 4.5 |
| app_store | content_rating | string | 4+ |
| app_store | developer | string | Dynalist Inc. |
| app_store | version | string | 1.13.7 |
| app_store | min_os | string | iOS 15.6 |
url | string | https:// | |
username | string | nasa | |
is_verified | boolean | true | |
posts_count | number | 4931 | |
followers_display | string | 104M | |
following_count | number | 91 | |
name | string | NASA | |
bio | string | Making the seemingly impossible, possible. ✨ | |
website | string | https:// | |
| amazon | url | string | https:// |
| amazon | asin | string | B0CFPHV9ZN |
| amazon | title | string | Kindle Paperwhite 16GB |
| amazon | price | null | — |
| amazon | color | string | Jade |
| amazon | brand | string | Amazon |
| amazon | display | string | 7-inch |
| amazon | storage | string | 16 GB |
| youtube | url | string | https:// |
| youtube | name | string | NASA |
| youtube | handle | string | @NASA |
| youtube | subscribers_display | string | 15.1M |
| youtube | videos_display | string | 6.1K |
| youtube | website | string | https:// |
| tiktok | url | string | https:// |
| tiktok | name | string | NASA |
| tiktok | username | string | nasa |
| tiktok | followers_display | string | 1.8M |
| tiktok | likes_display | string | 9.4M |
| tiktok | bio | string | Making the seemingly impossible, possible.✨ |
One API key covers data collection, web search and CAPTCHA solving. Each of the six uses below comes with a request you can send as is.
Connect EveryInfra to Claude, Cursor and other AI clients over MCP, or call the API from your own agent. When the agent needs data, it searches and fetches on its own and gets structured JSON back, with no scraping code for you to write.
ExampleClaude calls everyinfra_call_api over MCP, searches Reddit for mechanical keyboard posts and sums up what people recommend.
{ "platform": "reddit", "action": "search", "params": {"keyword": "mechanical keyboard"} }
titlecommunitylike_countcomment_counturlEverySearch looks up web pages, news and scholarly sources and returns titles, links, snippets and dates, and can fetch a page's full text when you need it. The model answers from those results, and each one traces back to its source.
ExampleBefore answering a question on the EU AI Act's Article 50 transparency duties, search the web and pass titles, links and snippets to the model so the answer can cite them.
{ "tool": "web", "params": {"q": "EU AI Act Article 50 transparency obligations", "num": 10} }
titleurlsnippetpublishedCollect reviews, comments and post text in bulk, platform by platform, as structured JSON that goes straight into cleaning and labeling. Most list actions return many rows in one call, billed once, and failed or empty results are not charged.
ExampleGet WhatsApp's 200 newest Google Play reviews: each comes with its star rating, ready to use as a sentiment label.
{ "platform": "google_play", "action": "reviews", "params": {"app_id": "com.whatsapp", "sort": "newest", "limit": 200} }
textscoreapp_versionposted_atProduct research, price tracking and competitor analysis tools can use EveryInfra as their data layer: one key for every platform, billed per call, with no scrapers, platform accounts or proxies to maintain.
ExampleA price tracker reads an Amazon product page once a day and logs changes in price, rating, rating count and stock.
{ "platform": "amazon", "action": "profile", "params": {"url": "https://www.amazon.com/dp/B09B8V1LZ3"} }
priceratingrating_countin_stockseller_nameRead trending lists, search results and comments on a schedule, then use the AI API to group topics, score sentiment and pull out entities for a social listening or content dashboard. The AI API is free for accounts that have topped up.
ExamplePull recent posts about open source from X every hour, then have the AI API tag each one's sentiment and topic for a trend brief.
{ "platform": "twitter", "action": "search", "params": {"keyword": "open source"} }
textlike_countview_countposted_atCall the same API from your own scheduled jobs, workflows and browser automation scripts: collect data, search the web, and hand any CAPTCHA to EverySolve, charged only on success.
ExampleWhen a Playwright script hits Cloudflare Turnstile, it sends the page URL and sitekey to the solver, gets a token, fills it into the form and carries on. The request below uses Cloudflare's own demo page and test sitekey.
{ "type": "turnstile", "website_url": "https://demo.turnstile.workers.dev/", "website_key": "1x00000000000000000000AA" }
tokenI want to use the EveryInfra API to collect platform data, search the web or solve CAPTCHAs. Act as my integration assistant and work in three steps.
Step 1: Don't write any code yet. Ask me questions over several rounds, one to three at a time, until all of this is clear:
1. What I want to do and what the results are for;
2. Which platforms or websites, whether the targets are keywords, links or accounts, and how many;
3. Which fields, how many rows, and the time range;
4. How to store the results, and where;
5. Which language the script uses, where it runs, and whether it runs once or on a schedule;
6. The most I want to spend on this.
If an answer is vague or contradicts an earlier one, ask again. If I say I don't know, suggest an option and ask me to confirm.
Step 2: Read EveryInfra's guide for AI agents at https://everyinfra.com/agents.md, then find the capabilities, parameters and prices in the catalogs (no key needed):
- Platform data: GET https://api.everyinfra.com/api/v1/social/catalog?platform=<name>
- Web search: GET https://api.everyinfra.com/api/v1/search/tools
- CAPTCHA: GET https://api.everyinfra.com/api/v1/captcha/types
Then walk me through the plan for approval: which capabilities and requests you will use, roughly how many calls, the estimated cost at catalog prices, and what the output will look like.
Step 3: Only after I approve, write the code and follow these API rules:
- Requests: platform data POST https://api.everyinfra.com/api/v1/social with the body {"platform", "action", "params"}; web search POST https://api.everyinfra.com/api/v1/search with {"tool", "params"}; CAPTCHA POST https://api.everyinfra.com/api/v1/captcha with {"type", ...other parameters}. Use parameter names and values exactly as the catalog lists them; do not guess.
- Auth: header Authorization: Bearer <API key>. Read the key from the EVERYINFRA_API_KEY environment variable; never put it in code, logs, or commits. If I don't have a key yet, remind me to create one at https://everyinfra.com/app#keys.
- Try one target with a small limit first and check the response shape before scaling up; a call with several targets is billed per target.
- For slow or large platform-data jobs, add "mode": "async" to the body. The API returns 202 and a job_id; poll GET https://api.everyinfra.com/api/v1/jobs/{job_id} until the status is succeeded or failed. A 202 is not a success. If a sync call comes back with a timeout error, resend the same request with "mode": "async".
- When a platform-data result carries next_page_token, pass it back as page_token for the next page with the other parameters unchanged; each page is one call.
- Failed or empty results are not charged in the end; any reserved amount goes back to the balance. Trust the billing receipt in the response.
- On a 422, fix the request using the candidate parameter names and allowed values in the error message; do not guess.
- On a 429 or 503, wait for the Retry-After delay and try again; if there is none, back off gradually.
- If the network drops or the outcome is unknown, keep the request_id / job_id and check it first. Do not resend automatically.
If you can connect to remote MCP servers, you can also connect to https://api.everyinfra.com/mcp (header Authorization: Bearer <API key>) and use its tools for the same work, with the same billing and rules as the API.Every API page also has its own prompt, for example TikTok search
How to get a TikHub API key, where the API docs live, and which GitHub SDKs still work, checked on Nov 3, 2026, next to three live EveryInfra calls.
Read the full articleEach capability has its own billing unit. Check the price before making a call.
Prices and supported types are from each service's official pricing page on 2026-09-26.
| Service | Billing unit | Entry price | Lowest public price | Where we are ahead |
|---|---|---|---|---|
EveryInfra (us) | per 1,000 requests | $0.6944 | $0.6944 | |
| per 1,000 requests | $1.00 | $0.30 |
| |
| per 1,000 requests | $25.00 | $1.96 |
| |
| per 1,000 requests | $7.50 | $5.00 |
| |
| per 1,000 requests | $7.00 | $7.00 |
| |
| per 1,000 requests | $5.00 | $5.00 |
| |
| per 1,000 requests | $5.00 | $1.00 |
| |
| per 1,000 requests | $0.50 | $0.45 |
| |
| per 1,000 requests | $7.60 | $1.20 |
| |
| per 1,000 requests | $5.00 | $5.00 |
| |
| per 1,000 requests | $5.00 | $5.00 |
| |
| per 1,000 result pages (10 results each) | $2.00 | $0.60 |
| |
| per 1,000 requests | $4.00 | $1.00 |
| |
| per 1,000 requests | $1.50 | $1.00 |
| |
| per 1,000 result pages (10 results each) | $1.00 | $0.50 |
| |
| per 1,000 requests | $1.00 | $0.136 |
| |
| per 1,000 requests | $2.00 | $0.90 |
|
| Service | Billing unit | Entry price | Lowest public price | Where we are ahead |
|---|---|---|---|---|
EveryInfra (us) | per 1,000 results | $0.05556 | $0.05556 | |
| per 1,000 results | $0.40–$5.00 | $0.30–$3.00 |
| |
| per 1,000 results | $1.50 | $1.10 |
| |
| per 1,000 requests | $1.00 | $0.50 |
| |
| per 1,000 pages | $3.80 | $0.599 |
| |
| per 1,000 credits | $0.49 | $0.083 |
| |
| per 1,000 requests | $1.88 | $0.99 |
| |
| per 1,000 units | $2.22 | $0.93 |
| |
| per 1,000 credits | $0.253 | $0.075 |
| |
| per 1,000 pages | $1.15 | $0.25 |
| |
| per 1,000 pages | $0.13 | $0.060 |
|
| Service | reCAPTCHA v2 | reCAPTCHA v3 | Turnstile | hCaptcha | Image CAPTCHA | Where we are ahead |
|---|---|---|---|---|---|---|
EveryInfra (us) | Listed | Listed | Listed | Listed | Listed | |
| Listed | Listed | Listed | Not listed | Listed |
| |
| Listed | Listed | Listed | Not listed | Listed |
| |
| Listed | Listed | Listed | Not listed | Listed |
| |
| Listed | Listed | Listed | Not listed | Listed |
| |
| Listed | Listed | Listed | Not listed | Listed |
| |
| Listed | Listed | Listed | Not listed | Not listed |
| |
| Listed | Listed | Listed | Not listed | Listed |
| |
| Listed | Listed | Listed | Listed | Not listed |
| |
| Listed | Listed | Listed | Not listed | Listed |
| |
| Listed | Listed | Listed | Not listed | Listed |
| |
| Listed | Listed | Listed | Listed | Listed |
| |
| Not listed | Not listed | Not listed | Not listed | Listed |
| |
| Subscription credits; the pricing page lists no per-type prices |
| |||||
Subscription credits; the pricing page lists no per-type prices
EveryInfra is an infrastructure platform for AI applications. One API key gives you data collection (573 capabilities across 106 platforms), AI search, CAPTCHA solving, and an OpenAI-compatible AI API that is free after a top-up.
Browse the marketplace106 platforms, including Xiaohongshu (RedNote), Douyin, WeChat Official Accounts, TikTok, Amazon, Taobao, LinkedIn, and Google Maps reviews, across content and social, commerce, reviews, jobs and business, and web search. Each platform has its own API page with parameters and response fields.
See every platform by categoryEach capability has its own price. Data collection costs from $0.56 per 1,000 requests, billed per request (a few list actions are priced per block of rows, noted next to their price), and invalid, failed, or empty requests are not charged. CAPTCHA solving costs $0.14–$4.58 per 1,000 successful solutions and is charged only on success.
View full pricingNo. You send a platform, a capability, and parameters, and get structured JSON back, without maintaining scrapers, platform accounts, or proxies yourself.
Yes. The remote MCP server at https://api.everyinfra.com/mcp uses your API key, so clients such as Claude, Cursor, and ChatGPT can call every capability directly. Without MCP, you can call the REST API.
Set up MCPStart with a single capability and integrate infrastructure into your project.
Sign up to create an API key, then star both repositories on GitHub and claim trial credit in the console. It is valid for 24 hours after you claim it.