Structured data from 90 platforms (RedNote, Douyin, TikTok, Amazon), web search, CAPTCHA solving.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
The account behind this API key: wallet balance in USD (paid and bonus separately plus the total, and bonus credit that has not expired yet), this month's top-up discount (top-ups credited this month, the current discount, the next tier and how far away it is), the per-minute limit (all keys combined, including a rate package and when it ends), this key's name and creation time, and calls and spend in the last 24 hours. Free. Check the balance before a batch of paid calls; every paid call's billing also carries balance_after_usd (what is left after it).
This tool takes no arguments.
Tool list last changed Oct 25, 2026.
The account behind this API key: wallet balance in USD (paid and bonus separately plus the total, and bonus credit that has not expired yet), this month's top-up discount (top-ups credited this month, the current discount, the next tier and how far away it is), the per-minute limit (all keys combined, including a rate package and when it ends), this key's name and creation time, and calls and spend in the last 24 hours. Free. Check the balance before a batch of paid calls; every paid call's billing also carries balance_after_usd (what is left after it).
No arguments.
{
"type": "object",
"properties": {}
}Spend in USD for the last N days, all keys combined, plus the latest wallet entries. Returns range, spent_usd, billed_calls, free_calls (empty results and refunded calls, not charged), failed_calls (not charged), discount_rate (the price multiplier from this month's top-ups: 1 = no discount, 0.9 = you pay 90%), by_platform (platform, calls, spent_usd, items) and ledger (occurred_at, event_type such as topup / charge / refund / bonus, direction credit or debit, amount_usd, reference = the charge_id of a call). Example: {"days": 7, "ledger_limit": 5}. For the current balance use everyinfra_account; to see whether one call was charged or refunded use everyinfra_requests with its request_id. Needs the account read permission "billing:read" on this key: keys not limited to product lines have the three read permissions by default; for a key limited to product lines, the account owner turns it on in the console (API Keys → permissions). Free.
| Argument | Type | Description |
|---|---|---|
| days | integer | Look-back window in days, 1-90, default 30. Use 7 for the last week |
| ledger_limit | integer | How many of the latest wallet entries to include, 1-20, default 10 |
{
"type": "object",
"properties": {
"days": {
"type": "integer",
"maximum": 90,
"minimum": 1,
"description": "Look-back window in days, 1-90, default 30. Use 7 for the last week"
},
"ledger_limit": {
"type": "integer",
"maximum": 20,
"minimum": 1,
"description": "How many of the latest wallet entries to include, 1-20, default 10"
}
}
}Call any EveryInfra data capability and get structured JSON. Priced per platform tier USD 0.56/1K–USD 5.56/1K; failed calls and empty results leave no final charge (anything reserved is restored). Most actions return up to `limit` rows in one call, billed once; multi-target arrays (urls, targets, usernames, tickers) are billed per element, and actions with rows_per_unit per block of rows asked for. Page-based actions (page_size in the catalog) return one page per call, of a fixed size unless page_size_varies (then a short page is not the end); for more, pass the response's top-level next_page_token (some actions repeat it on each row) as page_token — each page is one call. Check platform/action, required params and max_limit or page_size with everyinfra_list_capabilities first. For slow tasks or large limits pass mode=async: you get a job_id at once; read the result with everyinfra_get_job (free).
| Argument | Type | Description |
|---|---|---|
| mode | string | sync (default) waits for the result; async returns a job_id at once for slow tasks or large limits — read it with everyinfra_get_job |
| action* | string | e.g. search / profile / user_posts / post |
| params | object | The capability's params, e.g. {"keyword":"AI tools","limit":20} |
| platform* | string | e.g. xiaohongshu / twitter / tiktok / web |
{
"type": "object",
"required": [
"platform",
"action"
],
"properties": {
"mode": {
"enum": [
"sync",
"async"
],
"type": "string",
"default": "sync",
"description": "sync (default) waits for the result; async returns a job_id at once for slow tasks or large limits — read it with everyinfra_get_job"
},
"action": {
"type": "string",
"description": "e.g. search / profile / user_posts / post"
},
"params": {
"type": "object",
"description": "The capability's params, e.g. {\"keyword\":\"AI tools\",\"limit\":20}"
},
"platform": {
"type": "string",
"description": "e.g. xiaohongshu / twitter / tiktok / web"
}
}
}EveryInfra's OpenAI-compatible text completions with multi-turn history and any input content or format. Free for accounts that have topped up (nothing is deducted); accounts that have not get ai_topup_required. Rate-limited per account by cumulative top-ups (under $100: 50 requests/minute, $100 or more: 500, $500 or more: 5,000, all keys combined); current models: GET /api/v1/models. Good for cleaning collected data: summaries, translation, sentiment labels, topic classification and structured extraction. messages may total up to 45,000 characters; beyond that you get input_too_large — split long documents into several calls.
| Argument | Type | Description |
|---|---|---|
| model | string | Optional, default gemini-3.6-flash. Allowed: gemini-3.6-flash / gemini-flash-lite |
| messages* | array | OpenAI-format conversation, e.g. [{"role":"user","content":"Hello"}] (role is system / user / assistant). |
{
"type": "object",
"required": [
"messages"
],
"properties": {
"model": {
"type": "string",
"description": "Optional, default gemini-3.6-flash. Allowed: gemini-3.6-flash / gemini-flash-lite"
},
"messages": {
"type": "array",
"items": {
"type": "object",
"required": [
"role",
"content"
],
"properties": {
"role": {
"type": "string",
"description": "system / user / assistant"
},
"content": {
"type": "string"
}
}
},
"description": "OpenAI-format conversation, e.g. [{\"role\":\"user\",\"content\":\"Hello\"}] (role is system / user / assistant)."
}
}
}Open a ticket with EveryInfra's human support team and get back the ticket number and a link the account owner can open. Use it when calls keep failing or return wrong or missing data, for top-up, charge or refund questions, or to ask for a new platform, capability or field. Put one line in subject; in description say what you called (platform/action or endpoint), when (UTC), the error code and message and what you expected, and pass that call's request_id (and job_id for an async job); write other IDs with a label such as job_id: job_..., because a bare long ID reads as a secret. Never include API keys or passwords. Ask the user first and open it only if they agree. Errors whose fault is request or account need a fixed request or the user, not a ticket; an error's support field carries a ready draft. Any key on the account works and nothing is charged. Retrying the same request returns the same ticket, and the same capability and error code within 24 hours goes into that ticket. Support is online 10:00-24:00 (UTC+8) with a 10-minute average first reply; replies arrive in the ticket and the account owner also gets an email. Check progress and read support's replies with everyinfra_get_ticket (REST: GET /api/v1/support/tickets/{ticket_id}) using the same key, or at the returned link.
| Argument | Type | Description |
|---|---|---|
| job_id | string | The job_id of the async job this ticket is about |
| subject* | string | One line, e.g. "douyin/comments returns 503 since 10:20 UTC" |
| category | string | Optional: incident (looks like an outage), integration (a call returns an error; parameters, auth, SDK or MCP setup), product (questions about data, platforms and fields, or asking for new ones), billing (top-ups, charges, refunds), order (resources such as proxies or numbers), general |
Read a job submitted with everyinfra_call_api(mode=async). Free; it does not count against the per-minute limit. While status is submitting / running / finalizing, check again later; succeeded: the rows are in results (paged actions also return next_page_token); failed: see error.reason and error.charged; submit_unknown: the submission is still being confirmed — do not resubmit, follow next_action. Only jobs submitted with the same API key are visible.
| Argument | Type | Description |
|---|---|---|
| job_id* | string | The job_id returned by an async everyinfra_call_api |
{
"type": "object",
"required": [
"job_id"
],
"properties": {
"job_id": {
"type": "string",
"description": "The job_id returned by an async everyinfra_call_api"
}
}
}Read one support ticket: its status, what happens next, and its latest 100 messages, including support's replies. Use it after everyinfra_create_ticket to check progress, with the ticket_id that tool returned. The key that opened a ticket can always read it; reading the account's other tickets (opened in the console or with other keys) needs the account read permission "support:read" on this key. Any other number returns ticket_not_found. Free; the same result as GET /api/v1/support/tickets/{ticket_id}.
| Argument | Type | Description |
|---|---|---|
| ticket_id* | integer | The ticket_id everyinfra_create_ticket returned (#N in the console and emails) |
{
"type": "object",
"required": [
"ticket_id"
],
"properties": {
"ticket_id": {
"type": "integer",
"minimum": 1,
"description": "The ticket_id everyinfra_create_ticket returned (#N in the console and emails)"
}
}
}Create a new API key on this account and return it once. The new key can never be broader than the key making the call: same or fewer capabilities, the same source-IP limit, no later expiry, no higher per-minute limit, only account read scopes this key has, and never any write scope. At most 20 keys per account per UTC day this way. Needs the keys:write account scope, which is off by default and can only be granted by the account owner in the console.
| Argument | Type | Description |
|---|---|---|
| name | string | |
| note | string | |
| ip_allow | array | |
| expires_at | string | ISO 8601 date-time |
| scope_mode | string | Omit to copy this key's own capability scope |
| scope_rules | array | Required with scope_mode=selected |
| account_scopes | array |
{
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 60
},
"note": {
"type": "string",
"maxLength": 500
},
"ip_allow": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 20
},
"expires_at": {
"type": "string",
"description": "ISO 8601 date-time"
},
"scope_mode": {
"enum": [
"all",
"selected"
],
"type": "string",
"description": "Omit to copy this key's own capability scope"
},
"scope_rules": {
"type": "array",
"items": {
"type": "object",
"required": [
"family"
],
"properties": {
"family": {
"type": "string"
},
"product": {
"type": "string"
},
"capability": {
"type": "string"
}
}
},
"description": "Required with scope_mode=selected"
},
"account_scopes": {
"type": "array",
"items": {
"enum": [
"account:read",
"requests:read",
"billing:read",
"support:read"
],
"type": "string"
}
}
}
}Permanently delete a key created through an API key, or the calling key itself. Keys created in the console cannot be deleted this way. Pass confirm: true. Needs the keys:write account scope, which is off by default and can only be granted by the account owner in the console.
| Argument | Type | Description |
|---|---|---|
| key_id* | string | |
| confirm* | boolean |
{
"type": "object",
"required": [
"key_id",
"confirm"
],
"properties": {
"key_id": {
"type": "string"
},
"confirm": {
"enum": [
true
],
"type": "boolean"
}
}
}Disable any key on this account at once, for example one that leaked. Calls with it fail until the account owner enables it again in the console. Needs the keys:write account scope, which is off by default and can only be granted by the account owner in the console.
| Argument | Type | Description |
|---|---|---|
| key_id* | string | From everyinfra_keys |
{
"type": "object",
"required": [
"key_id"
],
"properties": {
"key_id": {
"type": "string",
"description": "From everyinfra_keys"
}
}
}Rename a key, change its note, move its expiry earlier, or lower its per-minute limit. Works on keys created through an API key and on the calling key itself; keys created in the console can only be disabled. Needs the keys:write account scope, which is off by default and can only be granted by the account owner in the console.
| Argument | Type | Description |
|---|---|---|
| name | string | |
| note | string | |
| key_id* | string | From everyinfra_keys |
| rpm_limit | integer | Can only be lowered |
| expires_at | string | ISO 8601; can only be earlier than now set |
{
"type": "object",
"required": [
"key_id"
],
"properties": {
"name": {
"type": "string",
"maxLength": 60
},
"note": {
"type": "string",
"maxLength": 500
},
"key_id": {
"type": "string",
"description": "From everyinfra_keys"
},
"rpm_limit": {
"type": "integer",
"minimum": 1,
"description": "Can only be lowered"
},
"expires_at": {
"type": "string",
"description": "ISO 8601; can only be earlier than now set"
}
}
}Every API key of the account: name, prefix, status, product-line permissions, account read permissions, per-minute limit, whether source IPs are restricted, expiry and last use. Never returns a full key; create, limit or disable keys in the console. Needs the account read permission "account:read" on this key: keys not limited to product lines have the three read permissions by default; for a key limited to product lines, the account owner turns it on in the console (API Keys → permissions). Free.
No arguments.
{
"type": "object",
"properties": {}
}List EveryInfra's data platforms and capabilities (90 platforms / 414 capabilities: search, detail, comments, profiles and more). Use it before everyinfra_call_api to get the platform/action, required and optional params, the per-call row limit (max_limit, or page_size for page-based actions) and the price. Pass a platform to also get allowed values, returned fields and what they mean. Free. Data collection only — for AI chat use everyinfra_chat.
| Argument | Type | Description |
|---|---|---|
| platform | string | Optional; only this platform's capabilities, e.g. xiaohongshu / twitter / tiktok |
{
"type": "object",
"properties": {
"platform": {
"type": "string",
"description": "Optional; only this platform's capabilities, e.g. xiaohongshu / twitter / tiktok"
}
}
}List the 52 CAPTCHA and bot-challenge types EveryInfra solves. **Call it before everyinfra_solve_captcha** to get three things: the type name, the required/optional params, and **the shape of the solution** (token / cookie / text / number / fields / points / boxes / tokens / indices — a string to submit, coordinates to click yourself, or grid cells to click: each is used differently). Free.
| Argument | Type | Description |
|---|---|---|
| type | string | Optional; only this type, e.g. turnstile / recaptcha_v2 / cloudflare_challenge |
{
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Optional; only this type, e.g. turnstile / recaptcha_v2 / cloudflare_challenge"
}
}
}The account's call records, newest first: request_id, capability, status code, latency, rows returned, whether it was charged, and the amount. Pass request_id (the request_id / X-Request-Id of any call) to look up one call, including its charge's final state (charged, refunded or partly refunded) and any async job it started. failed_only=true lists failures only. Needs the account read permission "requests:read" on this key: keys not limited to product lines have the three read permissions by default; for a key limited to product lines, the account owner turns it on in the console (API Keys → permissions). Free.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Rows, default 20 |
| offset | integer | Rows to skip, default 0 |
| request_id | string | Look up one call; the other params are ignored when given |
| failed_only | boolean | List failed calls only, default false |
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Rows, default 20"
},
"offset": {
"type": "integer",
"maximum": 1000,
"minimum": 0,
"description": "Rows to skip, default 0"
},
"request_id": {
"type": "string",
"description": "Look up one call; the other params are ignored when given"
},
"failed_only": {
"type": "boolean",
"description": "List failed calls only, default false"
}
}
}Search and retrieve sources. 17 tools, chosen with `tool`: crawl: Crawl several pages of a site and return their text; say in plain language which pages you want. crosscheck: Run one question through several retrieval chains with different mechanisms, rank sources by how many mechanisms found them, and fetch the original text of the top tier. It answers how far a claim can be trusted, not just what was found. deep: Deep search with text excerpts; full=true also returns the full text. forum: Real people's discussions — an evidence source independent of official docs (when docs say 'supported' and forums describe where it breaks, trust the specific scenario). harvest: Structured site extraction (long-running: tens of seconds to minutes); use it only when crawl cannot get the data. lens: Reverse image search: give an image URL, find pages that use it (the opposite direction of media). map: List a site's page structure — URLs only, no text, fast. media: Find images and videos by keyword. news: News search. places: Places and businesses search. read: Fetch the text of a given URL; it retries other fetch paths automatically when one fails. scholar: Academic literature search; kind=patents switches to patents (publication number, applicant, inventor, filing and publication dates). semantic: Semantic search: describe what you want in one sentence instead of stacking keywords; it finds deep sources whose titles do not contain your words. mode=deep searches deeper (slower, costs more). shopping: Product search and price comparison. similar: Give a URL, find semantically similar pages — something keyword search cannot do. suggest: Search suggestions (autocomplete). web: General web search with site restriction, region, time window and paging. ⚠ To **assert a specific fact** (a version, a price, whether an API exists), use crosscheck: it returns verifiable sources and their agreement tier. Failed or empty searches leave no final charge (anything reserved is restored).
| Argument | Type | Description |
|---|---|---|
| tool* | string |
Change console language, time zone and email notification switches. Pass only the fields to change; the others keep their values. Low-balance alerts use fixed tiers ($100, $50, $10, $5, $1, one email the first time the balance drops below each) and can only be turned on or off. Security notifications can be turned on here but only turned off in the console (false returns settings_change_denied). An unknown field returns an error that lists the allowed ones. Returns the full settings after the change: language, timezone, notifications (each switch, low_balance_tiers, recipient_verified) and updated_at; the account email gets a notice that settings changed. Example: {"timezone": "Asia/Singapore", "weekly_usage_digest": true}. Needs the settings:write account scope, which is off by default and can only be granted by the account owner in the console.
| Argument | Type | Description |
|---|---|---|
| language | string | Console and email language, default zh-CN |
| timezone | string | IANA name, e.g. Asia/Singapore, default Asia/Shanghai |
| product_updates | boolean | New platforms and features, default off |
| service_notices | boolean | Notice when an API you called had a problem and is fixed, default on |
| marketing_emails | boolean | Offers and promotions, default off |
| weekly_usage_digest | boolean | Weekly calls and spend summary, default off |
Solve a CAPTCHA or bot challenge and get a ready-to-use solution. USD 0.000139/call–0.004583/call, **charged per successful solve; failed or empty attempts leave no final charge (anything reserved is restored)**. Use it when a target site is blocked by Turnstile / reCAPTCHA / hCaptcha / a Cloudflare challenge page / GeeTest and the like. Params differ per type — check them with everyinfra_list_captcha_types first.
| Argument | Type | Description |
|---|---|---|
| type* | string | CAPTCHA type, e.g. turnstile / recaptcha_v2 / image |
| params | object | Params for that type, e.g. {"website_url":"https://…","website_key":"0x…"}. ⚠ A few types need your own proxy: they deliver a cookie bound to the IP the challenge was solved from, so a solution from our exit IP would not work for you |
{
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"enum": [
"akamai_bmp",
"akamai_sec_cpt",
"akamai_web",
"alibaba",
"altcha",
"anubis",
"atb_captcha",
"audio",
"aws_waf",
"aws_waf_classify",
"basilisk",
"binance",
"botdeflector",
"bounding_box",
"captchafox",
"capy",
"castle",
"cloudflare_challenge",
"coordinates",
"cutcaptcha",
"cybersiara",
"datadome",
"datadome_interstitial",
"f5_shape",
"f5_tspd",
"friendly_captcha",
"funcaptcha",
"geetest",
"hcaptcha",
"hunt",
"image",
"imperva",
"kasada",
"kasada_cd",
"lemin",
"mtcaptcha",
"perimeterx",
"prosopo",
"recaptcha_grid",
"recaptcha_v2",
"recaptcha_v2_enterprise",
"recaptcha_v3",
"recaptcha_v3_enterprise",
"rotate",
"shein",
"slider",
"temu",
"tencent_tendi",
"text_captcha",
"turnstile",
"yandex_smartcaptcha",
"yidun"
],
"type": "string",
"description": "CAPTCHA type, e.g. turnstile / recaptcha_v2 / image"
},
"params": {
"type": "object",
"description": "Params for that type, e.g. {\"website_url\":\"https://…\",\"website_key\":\"0x…\"}. ⚠ A few types need your own proxy: they deliver a cookie bound to the IP the challenge was solved from, so a solution from our exit IP would not work for you"
}
}
}Open a ticket with human support. At most 10 per account per UTC day this way; replies come from staff, not from an AI. Reuse the same idempotency_key when retrying. Needs the support:write account scope, which is off by default and can only be granted by the account owner in the console.
| Argument | Type | Description |
|---|---|---|
| title* | string | |
| message* | string | |
| idempotency_key | string | 8-128 characters; keep it when retrying |
{
"type": "object",
"required": [
"title",
"message"
],
"properties": {
"title": {
"type": "string",
"maxLength": 160
},
"message": {
"type": "string",
"maxLength": 4000
},
"idempotency_key": {
"type": "string",
"description": "8-128 characters; keep it when retrying"
}
}
}Add a message to one of this account's own support tickets; human support staff answer it, never an AI. Returns object ticket.reply with the ticket as support recorded it. Replies come later: read them with everyinfra_tickets and the same ticket_id. Without idempotency_key, the same message to the same ticket is sent once per UTC day, so a retry does not post it twice. Example: {"ticket_id": 42, "message": "Still failing for request_id req_abc123, see the error above."}. Needs the support:write account scope, which is off by default and can only be granted by the account owner in the console.
| Argument | Type | Description |
|---|---|---|
| message* | string | Plain text, 1-4000 characters; include request_id values when relevant |
| ticket_id* | integer | Ticket number from everyinfra_tickets or everyinfra_ticket_create |
| idempotency_key | string | Optional, 8-128 letters, digits or _.:@-; keep it when retrying |
{
"type": "object",
"required": [
"ticket_id",
"message"
],
"properties": {
"message": {
"type": "string",
"maxLength": 4000,
"description": "Plain text, 1-4000 characters; include request_id values when relevant"
},
"ticket_id": {
"type": "integer",
"minimum": 1,
"description": "Ticket number from everyinfra_tickets or everyinfra_ticket_create"
},
"idempotency_key": {
"type": "string",
"description": "Optional, 8-128 letters, digits or _.:@-; keep it when retrying"
}
}
}The account's support tickets: without ticket_id, the latest tickets; with it, that ticket and its messages. Needs the account read permission "support:read" on this key (off by default; the account owner turns it on in the console). Free.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Tickets to list, default 10 |
| ticket_id | integer | Ticket number; omit it for the list |
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"maximum": 25,
"minimum": 1,
"description": "Tickets to list, default 10"
},
"ticket_id": {
"type": "integer",
"minimum": 1,
"description": "Ticket number; omit it for the list"
}
}
}Returns the console top-up page link and the current balance. The account owner pays in the console; this tool creates no order and charges nothing. Any key can use it. Free.
No arguments.
{
"type": "object",
"properties": {}
}Calls per day for the last N days (UTC days, all keys combined, MCP handshakes excluded). For spend use everyinfra_billing. Needs the account read permission "requests:read" on this key: keys not limited to product lines have the three read permissions by default; for a key limited to product lines, the account owner turns it on in the console (API Keys → permissions). Free.
| Argument | Type | Description |
|---|---|---|
| days | integer | Number of days, default 7 |
{
"type": "object",
"properties": {
"days": {
"type": "integer",
"maximum": 90,
"minimum": 1,
"description": "Number of days, default 7"
}
}
}Create or change the webhook endpoint (public HTTPS only) and its events: balance.low (needs balance_threshold_usd) and job.finished. The signing secret is returned only when the webhook is first created. Needs the settings:write account scope, which is off by default and can only be granted by the account owner in the console.
| Argument | Type | Description |
|---|---|---|
| url* | string | |
| events* | array | |
| balance_threshold_usd | number |
{
"type": "object",
"required": [
"url",
"events"
],
"properties": {
"url": {
"type": "string",
"maxLength": 2000
},
"events": {
"type": "array",
"items": {
"enum": [
"balance.low",
"job.finished"
],
"type": "string"
}
},
"balance_threshold_usd": {
"type": "number",
"minimum": 0
}
}
}Send one signed webhook.test event to the configured endpoint now and report the HTTP status and latency. Not retried; at most 5 per minute. Needs the settings:write account scope, which is off by default and can only be granted by the account owner in the console.
No arguments.
{
"type": "object",
"properties": {}
}| request_id |
| string |
| The request_id (X-Request-Id) of the call this ticket is about |
| description* | string | What you called, when (UTC), the error code and message, what you expected; no API keys or passwords |
| contact_email | string | Optional extra address for support to reach you; reply emails still go to the account's verified email |
| idempotency_key | string | Optional; keep it when retrying. Without it, the same subject and description sent again within 24 hours return the same ticket |
{
"type": "object",
"required": [
"subject",
"description"
],
"properties": {
"job_id": {
"type": "string",
"pattern": "^job_[a-f0-9]{16,64}$",
"description": "The job_id of the async job this ticket is about"
},
"subject": {
"type": "string",
"maxLength": 160,
"description": "One line, e.g. \"douyin/comments returns 503 since 10:20 UTC\""
},
"category": {
"enum": [
"general",
"product",
"integration",
"billing",
"order",
"incident"
],
"type": "string",
"description": "Optional: incident (looks like an outage), integration (a call returns an error; parameters, auth, SDK or MCP setup), product (questions about data, platforms and fields, or asking for new ones), billing (top-ups, charges, refunds), order (resources such as proxies or numbers), general"
},
"request_id": {
"type": "string",
"pattern": "^req_[a-f0-9]{16,64}$",
"description": "The request_id (X-Request-Id) of the call this ticket is about"
},
"description": {
"type": "string",
"maxLength": 3500,
"description": "What you called, when (UTC), the error code and message, what you expected; no API keys or passwords"
},
"contact_email": {
"type": "string",
"maxLength": 254,
"description": "Optional extra address for support to reach you; reply emails still go to the account's verified email"
},
"idempotency_key": {
"type": "string",
"maxLength": 255,
"description": "Optional; keep it when retrying. Without it, the same subject and description sent again within 24 hours return the same ticket"
}
}
}| Retrieval tool |
| params | object | The tool's params, e.g. {"q":"EU AI Act","num":10} |
{
"type": "object",
"required": [
"tool"
],
"properties": {
"tool": {
"enum": [
"crawl",
"crosscheck",
"deep",
"forum",
"harvest",
"lens",
"map",
"media",
"news",
"places",
"read",
"scholar",
"semantic",
"shopping",
"similar",
"suggest",
"web"
],
"type": "string",
"description": "Retrieval tool"
},
"params": {
"type": "object",
"description": "The tool's params, e.g. {\"q\":\"EU AI Act\",\"num\":10}"
}
}
}| billing_notifications |
| boolean |
| Spend-threshold and rate-package emails, default on |
| partner_notifications | boolean | Referral partner emails (welcome, first click, sign-up, commission, payout), default on |
| security_notifications | boolean | First use of a key and sign-in from a new country, default on; can only be set true here |
| low_balance_notifications | boolean | Email at each fixed low-balance tier, default on |
{
"type": "object",
"properties": {
"language": {
"enum": [
"zh-CN",
"en",
"es"
],
"type": "string",
"description": "Console and email language, default zh-CN"
},
"timezone": {
"type": "string",
"description": "IANA name, e.g. Asia/Singapore, default Asia/Shanghai"
},
"product_updates": {
"type": "boolean",
"description": "New platforms and features, default off"
},
"service_notices": {
"type": "boolean",
"description": "Notice when an API you called had a problem and is fixed, default on"
},
"marketing_emails": {
"type": "boolean",
"description": "Offers and promotions, default off"
},
"weekly_usage_digest": {
"type": "boolean",
"description": "Weekly calls and spend summary, default off"
},
"billing_notifications": {
"type": "boolean",
"description": "Spend-threshold and rate-package emails, default on"
},
"partner_notifications": {
"type": "boolean",
"description": "Referral partner emails (welcome, first click, sign-up, commission, payout), default on"
},
"security_notifications": {
"type": "boolean",
"description": "First use of a key and sign-in from a new country, default on; can only be set true here"
},
"low_balance_notifications": {
"type": "boolean",
"description": "Email at each fixed low-balance tier, default on"
}
}
}