EveryInfra Proxy API

The Proxy API from EveryInfra — 3 operation(s) for proxy.

GitHub OpenAPI

Operations 3

1 of 3 operations are conformant: apis.io called them with no credentials and the responses matched this contract. Checked 2026-11-11. how this works · status file

GET /api/v1/proxy/catalog Proxy plans & pricing conformant #
POST /api/v1/proxy/order Order a proxy plan #
GET /api/v1/proxy/order/{order_id} Order status / fetch credentials #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/everyinfra-com:everyinfra-com-proxy-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

everyinfra-com-proxy-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: EveryInfra Proxy API
  version: 2.0.0
  description: 'Social data & search infrastructure for the AI era. One universal endpoint (`/api/v1/social`) covers 106 platforms / 573 capabilities across three domains — social (Xiaohongshu, Douyin, Weibo, Instagram, TikTok, X, Reddit, YouTube, Threads…), reviews (Google Maps, Yelp, Trustpilot, App Store…), e-commerce (Amazon, AliExpress, Walmart, eBay…) and web search. Plus an OpenAI-compatible AI API (`/api/v1/chat/completions`), free for accounts that have topped up. **Choosing a capability.** Ask the user what is unclear: which platform or site; what to look up (a keyword, a URL, an account or a product ID); how many results or targets; how fresh the data must be; the budget; and the output wanted (raw rows, a summary or a table). Then read `GET /api/v1/social/catalog?platform=` (free, no key) for params, price and returned fields, and start with one target and a small `limit`. Common requests: Douyin products: douyin/product_search then douyin/product_detail; Xiaohongshu comments: xiaohongshu/search then xiaohongshu/comments; price comparison: amazon/search + walmart/search + ebay/sold; jobs: linkedin/jobs + indeed/search + glassdoor/salaries; brand monitoring: weibo/search + douyin/search + xiaohongshu/search + reddit/search; reviews: amazon/reviews or trustpilot/reviews or google_maps_reviews/reviews. Worked examples: https://everyinfra.com/llms-full.txt


    **Pricing.** One shared prepaid balance, denominated in USD. Data/search is priced per platform tier — USD 0.56/1K (Core, 116 capabilities) / USD 1.39/1K (Standard, 258 capabilities) / USD 2.78/1K (Deep, 6 capabilities) / USD 5.56/1K (Complex, 26 capabilities); data starts at USD 0.000556/call (USD 0.56/1K). One call, one charge, except actions with `rows_per_unit` in the catalog, which are priced per block of rows. Most actions deliver the row count you ask for in a single call (see `max_limit` in the catalog); page-based actions (`page_size` in the catalog) return one page per call, and each further page is one call. Failed calls and empty results are not charged. Monthly top-up discount based on top-ups credited in the current calendar month (Beijing time), at face value: 10% off from USD 500; 20% off from USD 1,000; 30% off from USD 2,000 — applies from the next call once reached and resets on the 1st; credit codes and bonus credit over $1 each count like top-ups, but trial credit and amounts of $1 or less do not. **AI API.** `POST /api/v1/chat/completions` is OpenAI-compatible and free once the account has topped up any amount. Use it to clean, summarize, classify, translate or extract fields from the data you collect. Per account, all keys combined: cumulative top-ups under USD 100: 50 requests/minute, 5 in flight; USD 100 or more: 500 requests/minute, 50 in flight; USD 500 or more: 5,000 requests/minute, 500 in flight. **Support.** When a call keeps failing, results look wrong, a charge looks off, or a needed platform or field is missing, ask the user and, if they agree, open a support ticket with everyinfra_create_ticket (REST: POST /api/v1/support/tickets); include the request_id, the time (UTC), the platform/action (or search tool or CAPTCHA type) and the error code. Track it with everyinfra_get_ticket (REST: GET /api/v1/support/tickets/{ticket_id}).'
servers:
- url: https://api.everyinfra.com
  description: Primary
security:
- bearerAuth: []
tags:
- name: Proxy
paths:
  /api/v1/proxy/catalog:
    get:
      operationId: proxyCatalog
      summary: Proxy plans & pricing
      description: Available proxy kinds, regions and prices. Free, no auth.
      tags:
      - Proxy
      security: []
      responses:
        '200':
          description: Catalog
          content:
            application/json:
              schema:
                type: object
                description: Proxy plans & prices
                properties:
                  items:
                    type: array
                    items:
                      type: object
          headers:
            X-Request-Id:
              description: Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.
              schema:
                type: string
  /api/v1/proxy/order:
    post:
      operationId: proxyOrder
      summary: Order a proxy plan
      description: Place an order. Credentials are handed over by `GET /api/v1/proxy/order/{order_id}?deliver=1`.
      tags:
      - Proxy
      responses:
        '200':
          description: Order created
          content:
            application/json:
              schema:
                type: object
                properties:
                  order_id:
                    type: string
                  status:
                    type: string
                    enum:
                    - provisioning
                    - delivered
                    - refunded
                    - failed
                  kind:
                    type: string
                  region:
                    type: string
                  credentials:
                    type: object
                    description: Present only after delivery (`?deliver=1`)
                  billing:
                    type: object
                    description: What this single call actually cost and why.
                    properties:
                      charged:
                        type: boolean
                        description: false = refunded (empty result) or unlimited account
                      credits:
                        type: integer
                        description: Credits actually deducted (1 credit = USD 0.00001389)
                      cny:
                        type: number
                        description: Same amount converted to CNY at the current rate
                      list_price_credits:
                        type: integer
                        description: Undiscounted price for this call
                      tier_credits:
                        type: integer
                        description: Platform tier unit price
                      units:
                        type: integer
                        description: 'Number of units billed: targets for fan-out actions, tokens for captcha type `castle`; absent means 1'
                      discount_rate:
                        type: number
                        description: Present only when a discount applied, e.g. 0.7
                      reason:
                        type: string
                        description: Present only when not charged
                      amount:
                        type:
                        - object
                        - 'null'
                        description: What this call cost, as a money envelope (USD in `display.USD`)
                        properties:
                          credits:
                            type: integer
                          base:
                            type: string
                          amount:
                            type: number
                          display:
                            type: object
                            additionalProperties:
                              type: number
                          per_1k:
                            type: object
                            additionalProperties:
                              type: number
                          rate_source:
                            type: string
                      charged_usd:
                        type:
                        - number
                        - 'null'
                        description: What this call actually cost, in USD (0 when refunded or not charged; null when the outcome is still under review)
                      balance_after_usd:
                        type:
                        - number
                        - 'null'
                        description: 'Wallet balance (paid + bonus) right after this call settled, in USD; null if it could not be read. Full account summary: GET /api/v1/account'
                    required:
                    - charged
                    - credits
                    - cny
                required:
                - order_id
                - status
          headers:
            X-Request-Id:
              description: Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.
              schema:
                type: string
        '402':
          description: Insufficient balance
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                      request_id:
                        type: string
                      reason:
                        type: string
                        description: Optional machine-readable cause, e.g. `capacity_exhausted`, `access_blocked`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`
                      retry_after:
                        type: integer
                        description: Optional; seconds, same as Retry-After
                      limit:
                        type: integer
                        description: Optional; the cap that was reached
                      param:
                        type: string
                        description: Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)
                      did_you_mean:
                        type: array
                        items:
                          type: string
                        description: Optional; did-you-mean suggestions for `param`, most likely first
                      candidates:
                        type: array
                        items:
                          type: string
                        deprecated: true
                        description: Same list as `did_you_mean`, kept for compatibility until 2026-11-30
                      allowed:
                        type: array
                        items:
                          type: string
                        description: Optional; every valid value, parameter or action for `param`
                      catalog_url:
                        type: string
                        description: 'Optional; relative path to GET for what is valid here: this platform''s actions, parameters and allowed values (`/api/v1/social/catalog?platform=…`), the search tools (`/api/v1/search/tools`) or the captcha types (`/api/v1/captcha/types`)'
                      fault:
                        type: string
                        enum:
                        - request
                        - account
                        - service
                        description: 'Whose problem: request (fix the call), account (key, balance, permission, rate limit) or service (EveryInfra''s side)'
                      retryable:
                        type: boolean
                        description: Whether the same request can succeed if sent again
                      max_retries:
                        type: integer
                        description: Optional; how many times to retry a retryable error, not counting the first call
                      recent_failures:
                        type: integer
                        description: Optional; failures on EveryInfra's side for this account and capability in the last 10 minutes, this one included
                      next_steps:
                        type: array
                        items:
                          type: string
                        description: One to three steps, in order
                      example:
                        type: object
                        description: Optional; a request known to work for this capability (platform, action, params)
                      topup:
                        type: object
                        description: 'Optional; on `quota_exhausted` / `ai_topup_required` for an account that has never topped up: a link to the top-up page with the smallest amount preselected, and one sentence for the user'
                        properties:
                          first_topup:
                            type: boolean
                          amount_usd:
                            type: integer
                          url:
                            type: string
                          message:
                            type: string
                      support:
                        type: object
                        description: Optional; present only once the self-check points at EveryInfra. Ask the user first; open the ticket only if they agree
                        properties:
                          ask_user_first:
                            type: boolean
                          open_with:
                            type: string
                            description: POST /api/v1/support/tickets, or everyinfra_create_ticket on MCP
                          ticket:
                            type: object
                            properties:
                              subject:
                                type: string
                              category:
                                type: string
                              request_id:
                                type: string
                              job_id:
                                type: string
                    required:
                    - code
                    - message
                required:
                - error
          headers:
            X-Request-Id:
              description: Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.
              schema:
                type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                gb:
                  oneOf:
                  - type: integer
                    enum:
                    - 1
                    - 5
                    - 10
                    - 50
                    - 100
                  - type: string
                    enum:
                    - '1'
                    - '5'
                    - '10'
                    - '50'
                    - '100'
                kind:
                  type: string
                  enum:
                  - residential_rotating
                  - residential_static
                  - residential_extract
                  - residential_unlimited
                  - static_acceleration
                region:
                  type: string
                  pattern: ^[a-zA-Z]{2}$
                sticky_minutes:
                  type: integer
                  minimum: 1
                  maximum: 120
              required:
              - gb
              additionalProperties: false
  /api/v1/proxy/order/{order_id}:
    get:
      operationId: proxyOrderStatus
      summary: Order status / fetch credentials
      description: 'Order status. With `?deliver=1` the credentials are fetched and **you are charged at that moment** — plain status checks are free.


        If your balance is short you get 402; top up and call the same URL again.'
      tags:
      - Proxy
      parameters:
      - name: order_id
        in: path
        required: true
        schema:
          type: string
      - name: deliver
        in: query
        required: false
        schema:
          type: integer
          enum:
          - 1
        description: Set to 1 to fetch credentials (charges on success).
      responses:
        '200':
          description: Status or credentials
          content:
            application/json:
              schema:
                type: object
                properties:
                  order_id:
                    type: string
                  status:
                    type: string
                    enum:
                    - provisioning
                    - delivered
                    - refunded
                    - failed
                  kind:
                    type: string
                  region:
                    type: string
                  credentials:
                    type: object
                    description: Present only after delivery (`?deliver=1`)
                  billing:
                    type: object
                    description: What this single call actually cost and why.
                    properties:
                      charged:
                        type: boolean
                        description: false = refunded (empty result) or unlimited account
                      credits:
                        type: integer
                        description: Credits actually deducted (1 credit = USD 0.00001389)
                      cny:
                        type: number
                        description: Same amount converted to CNY at the current rate
                      list_price_credits:
                        type: integer
                        description: Undiscounted price for this call
                      tier_credits:
                        type: integer
                        description: Platform tier unit price
                      units:
                        type: integer
                        description: 'Number of units billed: targets for fan-out actions, tokens for captcha type `castle`; absent means 1'
                      discount_rate:
                        type: number
                        description: Present only when a discount applied, e.g. 0.7
                      reason:
                        type: string
                        description: Present only when not charged
                      amount:
                        type:
                        - object
                        - 'null'
                        description: What this call cost, as a money envelope (USD in `display.USD`)
                        properties:
                          credits:
                            type: integer
                          base:
                            type: string
                          amount:
                            type: number
                          display:
                            type: object
                            additionalProperties:
                              type: number
                          per_1k:
                            type: object
                            additionalProperties:
                              type: number
                          rate_source:
                            type: string
                      charged_usd:
                        type:
                        - number
                        - 'null'
                        description: What this call actually cost, in USD (0 when refunded or not charged; null when the outcome is still under review)
                      balance_after_usd:
                        type:
                        - number
                        - 'null'
                        description: 'Wallet balance (paid + bonus) right after this call settled, in USD; null if it could not be read. Full account summary: GET /api/v1/account'
                    required:
                    - charged
                    - credits
                    - cny
                required:
                - order_id
                - status
          headers:
            X-Request-Id:
              description: Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.
              schema:
                type: string
        '402':
          description: Insufficient balance
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                      request_id:
                        type: string
                      reason:
                        type: string
                        description: Optional machine-readable cause, e.g. `capacity_exhausted`, `access_blocked`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`
                      retry_after:
                        type: integer
                        description: Optional; seconds, same as Retry-After
                      limit:
                        type: integer
                        description: Optional; the cap that was reached
                      param:
                        type: string
                        description: Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)
                      did_you_mean:
                        type: array
                        items:
                          type: string
                        description: Optional; did-you-mean suggestions for `param`, most likely first
                      candidates:
                        type: array
                        items:
                          type: string
                        deprecated: true
                        description: Same list as `did_you_mean`, kept for compatibility until 2026-11-30
                      allowed:
                        type: array
                        items:
                          type: string
                        description: Optional; every valid value, parameter or action for `param`
                      catalog_url:
                        type: string
                        description: 'Optional; relative path to GET for what is valid here: this platform''s actions, parameters and allowed values (`/api/v1/social/catalog?platform=…`), the search tools (`/api/v1/search/tools`) or the captcha types (`/api/v1/captcha/types`)'
                      fault:
                        type: string
                        enum:
                        - request
                        - account
                        - service
                        description: 'Whose problem: request (fix the call), account (key, balance, permission, rate limit) or service (EveryInfra''s side)'
                      retryable:
                        type: boolean
                        description: Whether the same request can succeed if sent again
                      max_retries:
                        type: integer
                        description: Optional; how many times to retry a retryable error, not counting the first call
                      recent_failures:
                        type: integer
                        description: Optional; failures on EveryInfra's side for this account and capability in the last 10 minutes, this one included
                      next_steps:
                        type: array
                        items:
                          type: string
                        description: One to three steps, in order
                      example:
                        type: object
                        description: Optional; a request known to work for this capability (platform, action, params)
                      topup:
                        type: object
                        description: 'Optional; on `quota_exhausted` / `ai_topup_required` for an account that has never topped up: a link to the top-up page with the smallest amount preselected, and one sentence for the user'
                        properties:
                          first_topup:
                            type: boolean
                          amount_usd:
                            type: integer
                          url:
                            type: string
                          message:
                            type: string
                      support:
                        type: object
                        description: Optional; present only once the self-check points at EveryInfra. Ask the user first; open the ticket only if they agree
                        properties:
                          ask_user_first:
                            type: boolean
                          open_with:
                            type: string
                            description: POST /api/v1/support/tickets, or everyinfra_create_ticket on MCP
                          ticket:
                            type: object
                            properties:
                              subject:
                                type: string
                              category:
                                type: string
                              request_id:
                                type: string
                              job_id:
                                type: string
                    required:
                    - code
                    - message
                required:
                - error
          headers:
            X-Request-Id:
              description: Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.
              schema:
                type: string
        '404':
          description: Unknown order
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                      request_id:
                        type: string
                      reason:
                        type: string
                        description: Optional machine-readable cause, e.g. `capacity_exhausted`, `access_blocked`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`
                      retry_after:
                        type: integer
                        description: Optional; seconds, same as Retry-After
                      limit:
                        type: integer
                        description: Optional; the cap that was reached
                      param:
                        type: string
                        description: Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)
                      did_you_mean:
                        type: array
                        items:
                          type: string
                        description: Optional; did-you-mean suggestions for `param`, most likely first
                      candidates:
                        type: array
                        items:
                          type: string
                        deprecated: true
                        description: Same list as `did_you_mean`, kept for compatibility until 2026-11-30
                      allowed:
                        type: array
                        items:
                          type: string
                        description: Optional; every valid value, parameter or action for `param`
                      catalog_url:
                        type: string
                        description: 'Optional; relative path to GET for what is valid here: this platform''s actions, parameters and allowed values (`/api/v1/social/catalog?platform=…`), the search tools (`/api/v1/search/tools`) or the captcha types (`/api/v1/captcha/types`)'
                      fault:
                        type: string
                        enum:
                        - request
                        - account
                        - service
                        description: 'Whose problem: request (fix the call), account (key, balance, permission, rate limit) or service (EveryInfra''s side)'
                      retryable:
                        type: boolean
                        description: Whether the same request can succeed if sent again
                      max_retries:
                        type: integer
                        description: Optional; how many times to retry a retryable error, not counting the first call
                      recent_failures:
                        type: integer
                        description: Optional; failures on EveryInfra's side for this account and capability in the last 10 minutes, this one included
                      next_steps:
                        type: array
                        items:
                          type: string
                        description: One to three steps, in order
                      example:
                        type: object
                        description: Optional; a request known to work for this capability (platform, action, params)
                      topup:
                        type: object
                        description: 'Optional; on `quota_exhausted` / `ai_topup_required` for an account that has never topped up: a link to the top-up page with the smallest amount preselected, and one sentence for the user'
                        properties:
                          first_topup:
                            type: boolean
                          amount_usd:
                            type: integer
                          url:
                            type: string
                          message:
                            type: string
                      support:
                        type: object
                        description: Optional; present only once the self-check points at EveryInfra. Ask the user first; open the ticket only if they agree
                        properties:
                          ask_user_first:
                            type: boolean
                          open_with:
                            type: string
                            description: POST /api/v1/support/tickets, or everyinfra_create_ticket on MCP
                          ticket:
                            type: object
                            properties:
                              subject:
                                type: string
                              category:
                                type: string
                              request_id:
                                type: string
                              job_id:
                                type: string
                    required:
                    - code
                    - message
                required:
                - error
          headers:
            X-Request-Id:
              description: Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.
              schema:
                type: string
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Your API key as a Bearer token.