AnyAPI

io.github.getanyapi-comPublished by GitHub account getanyapi-comv0.1.5Updated Oct 27, 2026

Hundreds of scraping & data APIs through one key. USD pay-per-request, normalized schemas, failover.

Overview

AI-generated overview

Gateway to hundreds of scraping and data APIs through one key, letting an assistant search the catalog, price a call, and run it pay-per-request in USD.

What you can do
  • Search and browse the API catalog by meaning, keyword, category or platform, and read one API's full input/output schemas, pricing and latency
  • Get an exact input-aware price quote for a proposed call without charging or executing anything
  • Execute an API with a normalized input payload and get back output, cost and items, with field selection, item limits, summaries and jq reshaping
  • Inspect or resume a durable request by ID, and re-read or reshape an already paid result without paying again
  • Check the remaining USD wallet balance for the key
  • Report bad data as a bug, or send free feedback about missing APIs, fields or confusing docs
When to use it
Useful when an assistant needs web scraping or data lookups across many providers but you would rather not integrate each one separately, and when per-call USD pricing, normalized schemas and failover matter. A keyless install is enough to explore the catalog and price calls before committing.
Requirements
Runs as a remote Streamable HTTP endpoint, or locally over stdio via npx (anyapi-mcp) or Docker for clients that only launch local servers. An AnyAPI API key in ANYAPI_API_KEY or as an Authorization Bearer token is needed to run APIs and use account tools; catalog tools work without one. Network access to the hosted endpoint is required.
Before you install
run_api spends real money from a prepaid USD wallet, so check the balance and quote the call first; failed calls are stated not to be charged. The API key is a billable credential and should be kept out of shared configs. run_api sends your input payload to third-party API providers, and results are cached briefly and private to the account. Bug and feedback tools send text to the vendor.

Installation

In SourceWeft

  1. Open AnyAPI in the dashboard and add it to a workspace.
  2. Connect Authorization token credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.getanyapi-com%2Fanyapi/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "anyapi": {
      "type": "http",
      "url": "https://api.getanyapi.com/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_TOKEN>"
      }
    }
  }
}

README

AnyAPI MCP server

Hundreds of scraping and data APIs through one gateway: one key, USD pay-per-request, normalized schemas, automatic failover.

This package is a local stdio MCP server that proxies to the hosted AnyAPI MCP server at https://api.getanyapi.com/mcp. Clients that speak remote Streamable HTTP can point at that URL directly and skip this package entirely. Use this one when your client only launches local MCP servers over stdio.

Install

With npx, no clone and no build:

json
{  "mcpServers": {    "anyapi": {      "command": "npx",      "args": ["-y", "anyapi-mcp"],      "env": { "ANYAPI_API_KEY": "aa_live_..." }    }  }}

With Docker, no clone and no build:

json
{  "mcpServers": {    "anyapi": {      "command": "docker",      "args": ["run", "-i", "--rm", "-e", "ANYAPI_API_KEY", "ghcr.io/getanyapi-com/mcp"],      "env": { "ANYAPI_API_KEY": "aa_live_..." }    }  }}

Get a key at https://getanyapi.com/dashboard/keys. Agents can mint their own free-trial key with no dashboard and no email:

bash
curl -s -X POST https://api.getanyapi.com/agent/signup

Configuration

VariableRequiredDefaultMeaning
ANYAPI_API_KEYNononeYour AnyAPI key. Running an API needs it. Connecting, listing the tools, and the four catalog tools do not.
ANYAPI_MCP_URLNohttps://api.getanyapi.com/mcpThe hosted endpoint to proxy to.

The key is optional on purpose, but be precise about what that buys. The hosted server answers initialize and tools/list without a credential, so a client connects and sees the ten tools with no account. It also answers the four catalog tools without one - search_apis, list_apis, get_api and quote_api - so a keyless install can find an API, read its input schema and price a call. run_api and the account tools return 401 without a key.

The same catalog is public over REST as well: GET https://api.getanyapi.com/catalog and GET https://api.getanyapi.com/catalog/search.

Tools

Ten tools, read live from the hosted server rather than declared in this package, so a catalog or schema change reaches you without a release here.

ToolWhat it does
search_apisSearch APIs by meaning and keyword. Takes any combination of query, category and platform; a scope on its own is a complete search.
list_apisBrowse the catalog as lightweight summaries (id, name, category, USD pricing), with an optional category.
get_apiThe full definition of one API: normalized input/output JSON Schemas, per-lane USD pricing, and trailing-30-day latency.
quote_apiThe exact USD price of a run_api call before running it. Nothing is charged or executed.
run_apiExecute an API by SKU with normalized input. Returns the output, costUsd, and items. Supports fields, max_items, summary and jq.
get_requestInspect or resume a durable request. Reads stored state and never repeats the paid dispatch.
read_resultRe-shape a prior run's output without re-running or paying again.
get_balanceThe remaining USD wallet balance for the key.
report_bugReport wrong, empty, or malformed data for input you believe is valid. Free.
send_feedbackReport a missing API, a missing field, or anything confusing. Free.

Failed calls are never charged.

Develop

bash
npm installnpm run check   # build, then unit tests

npm run check needs no network and no API key. To drive the built server against production by hand:

bash
npm run buildANYAPI_API_KEY=aa_live_... node dist/index.js

License

Apache-2.0

Source: README.md at commit 5b75122

Tools

10

get_api

Get API details

Get the full definition of one API by API slug, including its normalized input/output JSON schemas, per-request and per-1,000-request USD pricing on every source, and nullable trailing-30-day latency p50/p95/p99 with the successful sample count. Latency percentiles describe observed successful requests; p99 is an observation, not a maximum or a client timeout guarantee. Entries with heavy:true produce large API responses.

Parameterssku_idrequiredcontextrequired

get_balance

Check wallet balance

Get the remaining wallet balance (in USD) for the AnyAPI key supplied as a Bearer token. Requires a valid AnyAPI key.

Parameterscontextrequired

get_request

Check a request

Inspect or resume a durable AnyAPI request by request_id. This reads AnyAPI's stored state and never repeats the paid provider dispatch. While status is queued or running, retryAfterSeconds gives the minimum interval between status checks.

Parameterscontextrequiredrequest_idrequired

list_apis

Browse APIs

Browse available AnyAPI APIs as lightweight summaries (id, name, category, USD pricing), optionally filtered by category. Descriptions and schemas are omitted to keep catalog responses small. Each pricing offer carries both `maxUsd` (billed per request) and `maxPer1kUsd` (the same price per 1,000 requests).

Parameterscontextrequiredcategory

quote_api

Quote a price

Get the exact input-aware execution price for an API, free and without a key. Nothing is charged or executed. `sku_id` and `input` identify the proposed execution; pricing resolves exactly as it does for execution, and input validation can return invalid_input without a charge. Returns maxCostUsd (the ceiling reserved), minCostUsd (the likely charge), and the base/per-item breakdown explaining why they differ. These are USD amounts for this one call, not per-1,000-request catalog comparison rates.

Parametersinputrequiredsku_idrequiredcontextrequired

read_result

Read a saved result

Read or reshape a previously paid API result without executing or paying again. `result_id` identifies the full cached result; fields/max_items/summary/jq control its presentation, including row selection and slicing large fields. Results are cached ~15 min and are private to the authenticated account; an expired id returns result_expired.

Parametersjqfieldscontextrequiredsummarymax_itemsresult_idrequired

report_bug

Report a bug

Submit a defect report to AnyAPI about wrong, empty, or malformed API data for valid input, misleading or unactionable errors, incorrect prices or schemas, or retries that failed unexpectedly. Free, never charged. `summary` is required and contains one line; optional `request_id` identifies the stored request and its upstream error body without requiring the payload in the report.

Parametersskucontactcontextrequireddetailssummaryrequiredrequest_id

run_api

Run an API

Execute an API by API slug with a normalized input payload. Every input schema is strict: unknown fields are rejected, not ignored, and field names can differ between related APIs. Inputs must conform to the endpoint's schema, not its description. Published latency p50/p95/p99 and sample counts describe observed successful requests; p99 is an observation, not a maximum or a client timeout guarantee. Requires a valid AnyAPI key as a Bearer token. Charges the USD wallet. Some failed wallet-funded requests incur processing charges passed through at cost, with no markup; the error message shows the amount charged. Results can be large. `fields` keeps selected keys, `max_items` caps returned rows, and `summary` returns an outline; these controls reduce response size without changing the charge.

Parametersjqinputrequiredfieldssku_idrequiredcontextrequiredsummarymax_items

search_apis

Search APIs

Search APIs by meaning and keyword across name, slug, and description, returning matches with their descriptions but without schemas, ranked most relevant first. At least one of `query`, `category`, or `platform` is required, in any combination; `category` or `platform` without `query` enumerates that scope. `limit` caps matches (default 25, maximum 50). Each result carries a `relevance` score in (0,1] relative to the top match; a relevance floor drops weak matches, so `total` counts relevant matches before the limit. `ranking` identifies meaning-based ('semantic') or substring ('keyword') matching. Entries with heavy:true produce large API responses. Search results omit input schemas; API inputs require the endpoint's strict schema, whose field names can differ between related APIs.

Parameterslimitquerycontextrequiredcategoryplatform

send_feedback

Send feedback

Submit non-defect feedback to AnyAPI about an API you could not find in the catalog, a missing result field, confusing documentation or tool descriptions, or an improvement that would make a task easier. Free, never charged. `summary` is required and contains one line; optional `details` describes the task or suggestion.

Parametersskucontactcontextrequireddetailssummaryrequiredrequest_id

Version history

1
  1. v0.1.5LatestSep 16, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts