One API key for TikTok, Instagram, X, YouTube, LinkedIn, Reddit, Amazon and Google search data in Cursor: skills plus a remote MCP server. 90 platforms, including RedNote (Xiaohongshu) and Douyin; pay per use, and failed calls are not charged. Get your API key: https://everyinfra.com/en/docs?utm_source=cursor_directory&utm_medium=directory&utm_campaign=listing_2026q4&utm_content=get_key#quickstart
Use EveryInfra's OpenAI-compatible AI API through the everyinfra_chat MCP tool. Use for cleaning or labeling collected data, summarization, translation, classification, extraction, rewriting, and multi-turn text generation when the user asks to run the work through EveryInfra.
# EveryAI
Use the MCP tool `everyinfra_chat`.
1. Build an OpenAI-style `messages` array with only the context required for the task.
2. Use a model value only when it appears in the live MCP schema; otherwise keep the server default.
3. Do not send secrets, credentials, private source documents or personal data unless the user has
explicitly placed that data and this processing in scope.
4. Validate the returned content against the requested format. A fluent answer is not evidence that
a factual claim is current; use EverySearch when current verification is required.
5. AI API calls are free for accounts that have topped up and do not use the balance. If the
response reports `ai_topup_required`, tell the user that the account needs a top-up instead of
retrying.
For direct OpenAI-compatible SDK use, the REST base is `https://api.everyinfra.com/api/v1`; the
plugin should still prefer MCP when its tool is available.
## Cleaning collected data
The former data cleanup tools were retired on 2026-10-09. To clean, deduplicate, classify, extract
or summarize records collected with EveryData, pass the relevant fields to `everyinfra_chat`,
describe the output format, and validate the result before using it. About 20,000 tokens of input
per call is reliable; split longer inputs into chunks. Per-minute limits follow cumulative top-ups
(50 under $100, 500 from $100, 5,000 from $500, all keys on the account combined); after a
rate-limit error, wait before retrying.Discover and call EveryData structured-data capabilities across social, commerce, travel, jobs, finance, reviews, and other public platforms. Use when the user needs platform profiles, posts, comments, search results, listings, reviews, or other structured public data.
# EveryData
Use the MCP tools `everyinfra_list_capabilities` and `everyinfra_call_api`.
1. Call `everyinfra_list_capabilities` first. Pass `platform` when the platform is already known.
2. Select the exact `platform` and `action` from the returned catalog. Read required parameters,
optional parameters, `max_limit` and current price. Use availability only when the catalog
actually returns it; catalog membership alone is not proof that live inventory exists.
3. Put only catalog-declared parameters under `params`. Do not add other fields, and do not guess
an action name.
4. Call `everyinfra_call_api`. Request the largest useful result within `max_limit` when that avoids
needless repeated charges.
5. Treat empty, partial and failed results according to the response fields. Report the returned
`billing` block rather than estimating cost from a stale document.
EveryData returns a normalized and redacted customer contract. Do not promise raw internal output,
internal identifiers, private data, or fields not present in the live capability catalog.
To clean, label or summarize collected records, use EveryAI (`everyinfra_chat`), which is free for
accounts that have topped up. The former data cleanup tools were retired on 2026-10-09.Export a bounded structured dataset through EveryData with capability discovery, cost controls, pagination, deduplication, and CSV or JSON verification. Use when the user asks for many records, all available pages, a dataset, or a CSV/JSON export rather than a single API response.
# EveryInfra bulk data export
Use `everyinfra_list_capabilities` and `everyinfra_call_api`. This is a paid repeated-call workflow,
not a license to keep fetching until inventory is exhausted.
## Before calls
1. Identify the target record count, required fields, output format, and any time or cost ceiling.
2. Discover the exact platform/action and read its required parameters, pagination fields,
`max_limit`, and current catalog price. Do not guess endpoint or cursor names.
3. Estimate the maximum calls from the target count and live limit. State the estimate and obtain
the user's go-ahead before a material multi-call pull unless that exact bounded spend was already
authorized.
## Fetch and stop
- Request the largest useful page within the live limit.
- Follow only pagination fields returned or declared by the capability. Stop when the response says
there is no next page, the requested row or call cap is reached, the budget is exhausted, or the
source stops advancing.
- Retry only transient failures with a small bounded retry count. Do not retry authorization,
parameter, inventory, or insufficient-balance errors as if they were transient.
- Deduplicate by a stable returned identifier. If none exists, document the composite key used;
do not silently drop similar-looking records.
## Deliver and verify
- JSON should preserve the selected normalized fields and record types.
- CSV should use a stable header and flatten only fields chosen for the export; keep nested evidence
in JSON when flattening would lose meaning.
- Verify that the file exists, is non-empty, parses, and contains no duplicate deduplication keys.
- Report requested versus delivered rows, calls made, duplicates removed, truncation reason, output
path, and the sum of actual returned billing blocks. If billing is absent, say the actual charge
was not observable instead of substituting the catalog estimate.Verify a current factual claim or produce a cited research answer through EverySearch crosscheck. Use when the user needs mechanism-distinct retrieval, source comparison, freshness checks, or an evidence-backed conclusion rather than a simple result list.
# EveryInfra cross-check research
Use the `everyinfra_search` MCP tool with the live `crosscheck` schema. This skill owns the research
outcome; `everysearch` remains the product-level reference.
1. Turn the request into one concrete claim or decision question. Preserve any date, jurisdiction,
product version, or site scope that determines whether a source is relevant.
2. Use `crosscheck` so retrieval mechanisms remain independent. Do not silently replace a failed
mechanism with duplicate keyword searches and call that corroboration.
3. Inspect the original URLs, source dates, and—when news is involved—the date the event happened.
Prefer primary sources for technical, policy, product, and organizational claims.
4. Separate agreement, contradiction, and missing evidence. A missing or empty path is uncertainty,
not proof that the claim is false.
5. State the conclusion at the strength the evidence supports and cite the original sources, not a
search-result wrapper.
6. Report billing only when the tool result exposes billing evidence. Do not infer a charge from a
catalog price or HTTP success.
Keep the query and result limits proportional to the decision. If the live MCP schema does not
offer `crosscheck`, report that limitation and use the narrowest available EverySearch mechanism
without describing it as an equivalent cross-check.Route a task to the correct EveryInfra product and use its MCP or REST contract safely. Use when the user mentions EveryInfra generally, wants to combine multiple EveryInfra products, or is unsure whether a task belongs to EveryData, EverySearch, EveryAI, EverySolve, EveryNumber, EveryMail, or EveryProxy.
# EveryInfra router
Use the remote `everyinfra` MCP server for capability discovery and the four MCP-enabled product
lines. Use `https://api.everyinfra.com` only for a REST-only product. Never copy the API key into a
prompt, file, command output, log, URL query string, or response; read it from `EVERYINFRA_API_KEY`.
## Route by outcome
- Structured public platform data: EveryData.
- Current web, semantic, academic, forum, page or site retrieval: EverySearch.
- Text completion, extraction, classification, translation or summarization, including cleaning and
labeling data collected with EveryData: EveryAI, the AI API.
- Captcha or anti-bot challenge solving on a target the user is authorized to access: EverySolve.
- Activation or rental phone number: EveryNumber.
- Transactional email: EveryMail.
- Traffic-billed proxy credentials: EveryProxy.
Do not infer a tool from an old document. MCP tool discovery and the free REST catalogs are the
runtime truth. If the requested product is unavailable, report that state instead of silently
substituting a different mechanism.
## Common workflow
1. Identify the requested outcome and whether it has external side effects or a charge.
2. Use a free discovery tool or catalog before the first paid call.
3. Validate required parameters, limits, solution shape, availability and current price.
4. Invoke the paid operation only when the user's request authorizes that operation.
5. Read returned `billing`, `quota`, status and error fields when present; never infer success,
availability, or a charge from HTTP 200 or catalog membership alone. If a tool omits billing,
report that the charge is not observable from that response.
6. Report the useful result, the actual charge state and any remaining external action separately.
EveryInfra uses one account, API key and wallet across product lines, but product-specific scopes
may still deny a call. A scope error is not a reason to broaden or replace the key automatically.
The former data cleanup tools were retired on 2026-10-09; do not look for them. EveryAI
(`everyinfra_chat`) is free for accounts that have topped up, with per-minute limits that follow
cumulative top-ups; an account that has not topped up receives `ai_topup_required`.Use EveryMail transactional-email REST APIs with the shared EveryInfra key. Use when the user asks to inspect email capabilities or quota, send or schedule a transactional email, submit a batch, cancel a scheduled message, inspect delivery events, or configure an authorized sending domain or webhook.
# EveryMail
EveryMail is REST-only in the current plugin. Do not invent an MCP tool for it. Use
`https://api.everyinfra.com` with `Authorization: Bearer $EVERYINFRA_API_KEY`.
1. Read `GET /api/v1/email/catalog` and, when authenticated, `GET /api/v1/email/usage`.
2. For a single message, use `POST /api/v1/email/send` with catalog-declared fields. Recipients are
counted across `to`, `cc` and `bcc`; the API does not accept arbitrary `from`, headers or
attachments.
3. Use `POST /api/v1/email/batch` for a true batch. Scheduled messages must use the single-send
endpoint so cancellation and refunds remain unambiguous.
4. Sending email is an external communication. Do not send until the user has authorized the actual
recipients and content; preparing a draft is not authorization to dispatch it.
5. Do not log message bodies, verification codes or reset links. Report the returned `message_id`,
status, billing and quota without exposing private content.
Domain verification, webhook mutation and final dispatch are state-changing operations. Keep their
scope exact and do not broaden API-key permissions automatically.Use EveryNumber activation and rental phone-number REST APIs with the shared EveryInfra key. Use when the user needs an authorized verification number, wants to poll a received code, cancel an unused activation, inspect order history, or rent a number for a supported term.
# EveryNumber
EveryNumber is REST-only in the current plugin. Do not invent an MCP tool for it. Use
`https://api.everyinfra.com` with `Authorization: Bearer $EVERYINFRA_API_KEY`.
## Activation flow
1. `GET /api/v1/sms/catalog` is free. Select the exact `country` and service string from it.
2. `POST /api/v1/sms/number` with `country`, `product` and optional `voice` or `reuse`.
3. Preserve the returned `order_id` and frozen quote. Poll
`GET /api/v1/sms/code/{order_id}` at a reasonable interval.
4. Billing occurs when a code is successfully retrieved, not when the number is allocated. Read the
returned `billing` block.
5. If the number is no longer needed before settlement, call
`POST /api/v1/sms/cancel/{order_id}` so inventory is released.
## Rental flow
Use `GET /api/v1/sms/rental/catalog` before `POST /api/v1/sms/rental`. Rentals are charged at order
time and cannot be cancelled or renewed. Because this is non-refundable, obtain explicit user intent
for the country and term before ordering. Treat received codes and messages as sensitive one-time
credentials and do not store them in logs or project files.Use EveryProxy traffic-package REST APIs with the shared EveryInfra key. Use when the user wants to inspect proxy packages, order an authorized rotating or sticky proxy allocation, check provisioning status, or retrieve one-time proxy credentials.
# EveryProxy
EveryProxy is REST-only in the current plugin. Do not invent an MCP tool for it. Use
`https://api.everyinfra.com` with `Authorization: Bearer $EVERYINFRA_API_KEY`.
1. Read the free `GET /api/v1/proxy/catalog` response. Select a live package by `gb`, `kind`,
`region` and optional `sticky_minutes`; pricing is by traffic, never by session minutes.
2. `POST /api/v1/proxy/order` is a paid order and may return credentials immediately. The user's
request must authorize the package and region before ordering.
3. For asynchronous provisioning, inspect `GET /api/v1/proxy/order/{order_id}` without `deliver`.
Status inspection must not be turned into a purchase.
4. Use `?deliver=1` only when the user intends to accept delivery and the charge. Delivery can expose
the password exactly once.
5. Move credentials only to the user-approved secret destination. Never print them in normal chat,
command logs, screenshots, source files or Git history.
6. Report order status and billing separately. If delivery failed and was refunded, create a new
order only with user authorization.Use EverySearch for current web, semantic, academic, forum, page-reading, crawling, and cross-check retrieval. Use when a task needs up-to-date sources, multiple retrieval mechanisms, cited factual verification, or content from a specific public URL or site.
# EverySearch
Use the MCP tool `everyinfra_search`. Its live input schema is the source of truth for available
`tool` values and parameters.
- Use the narrowest retrieval mechanism that matches the user's question.
- Use `crosscheck` for a concrete claim such as a current version, price, policy, availability, or
API behavior. It is designed to compare mechanism-distinct retrieval paths.
- Use page-reading or crawl tools for known URLs instead of searching for the same page again.
- Keep query and result limits proportional to the task. Empty or failed results must not be
presented as proof that nothing exists.
- Cite the original sources returned by the search result when producing factual conclusions.
- Read the returned `billing` state. Failed or empty calls may be uncharged, but do not infer that
without the response.
Do not silently replace semantic retrieval with keyword retrieval when result meaning matters.
If the requested tool is not in the current MCP schema, state that it is unavailable.Discover and solve captchas or anti-bot challenges with EverySolve for targets the user is authorized to access. Use when a legitimate browser, testing, registration, or automation flow is blocked by Turnstile, reCAPTCHA, hCaptcha, image challenges, coordinate challenges, or another advertised challenge type.
# EverySolve
Use `everyinfra_list_captcha_types` before `everyinfra_solve_captcha`.
1. Confirm that the target and automation are within the user's authorized scope.
2. Discover the exact `type`, required fields, optional fields, current availability and solution
shape. A token, cookie, text answer, number, field map, point list or box list requires a different
application step.
3. Check whether the type requires the caller's proxy. Cookie-bound solutions must be solved and
consumed from the required network identity.
4. Pass only the selected type's declared parameters to `everyinfra_solve_captcha`.
5. Apply the solution only to the intended target and flow. Do not reuse tokens or cookies across
unrelated targets.
6. Read `billing` and the explicit error status. EverySolve charges on successful delivery and
refunds unsuccessful solves, but the response is the evidence for a particular call.
Do not downgrade an unsupported challenge to a visually similar type. Report unavailable inventory
or a missing required parameter instead of spending repeated calls on guesses.