curl --request GET \
--url https://api.getanyapi.com/catalogimport requests
url = "https://api.getanyapi.com/catalog"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.getanyapi.com/catalog', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.getanyapi.com/catalog",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.getanyapi.com/catalog"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.getanyapi.com/catalog")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getanyapi.com/catalog")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"apis": [
{
"category": "<string>",
"description": "<string>",
"execution": {
"mode": "sync"
},
"failover": true,
"id": "<string>",
"lanes": [
{
"pricing": {
"maxPer1kUsd": 123,
"maxUsd": 123,
"model": "flat",
"unit": "<string>",
"addons": [
{
"field": "<string>",
"id": "<string>",
"label": "<string>",
"usd": 123
}
],
"baseUsd": 123,
"perUnitUsd": 123
},
"source": {
"artworkKey": "<string>",
"id": "<string>",
"kind": "anonymous",
"name": "<string>"
},
"fields": [
"<string>"
],
"health": {
"latencyP50Ms": 123,
"latencySample": 123,
"requests": 123,
"servedRequests": 123,
"uptimePct": 123,
"uptimeSample": 123,
"window": "30d",
"blockedPct": 123
}
}
],
"method": "<string>",
"name": "<string>",
"path": "<string>",
"pricing": {
"failoverMaxPer1kUsd": 123,
"failoverMaxUsd": 123,
"from": {
"maxPer1kUsd": 123,
"maxUsd": 123,
"model": "flat",
"unit": "<string>",
"addons": [
{
"field": "<string>",
"id": "<string>",
"label": "<string>",
"usd": 123
}
],
"baseUsd": 123,
"perUnitUsd": 123
}
},
"provider": "AnyAPI",
"slug": "<string>",
"tryEligible": true,
"beta": true,
"excludesCallerDelay": true,
"heavy": true,
"notServingSources": [
{
"pricing": {
"maxPer1kUsd": 123,
"maxUsd": 123,
"model": "flat",
"unit": "<string>",
"addons": [
{
"field": "<string>",
"id": "<string>",
"label": "<string>",
"usd": 123
}
],
"baseUsd": 123,
"perUnitUsd": 123
},
"source": {
"artworkKey": "<string>",
"id": "<string>",
"kind": "anonymous",
"name": "<string>"
},
"fields": [
"<string>"
],
"health": {
"latencyP50Ms": 123,
"latencySample": 123,
"requests": 123,
"servedRequests": 123,
"uptimePct": 123,
"uptimeSample": 123,
"window": "30d",
"blockedPct": 123
}
}
],
"tryMaxItems": 123
}
]
}Browse the API catalog
Every API AnyAPI can serve right now, with its normalized input and output contract’s location, its USD pricing, and the sources behind it. Reading the catalog is free and needs no key. Each entry’s method and path are the gateway’s own authority on how to call it: use them rather than rebuilding a route from the slug. Schemas are omitted here to keep the response small; GET /v1/apis/ returns them for one API.
curl --request GET \
--url https://api.getanyapi.com/catalogimport requests
url = "https://api.getanyapi.com/catalog"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.getanyapi.com/catalog', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.getanyapi.com/catalog",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.getanyapi.com/catalog"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.getanyapi.com/catalog")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getanyapi.com/catalog")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"apis": [
{
"category": "<string>",
"description": "<string>",
"execution": {
"mode": "sync"
},
"failover": true,
"id": "<string>",
"lanes": [
{
"pricing": {
"maxPer1kUsd": 123,
"maxUsd": 123,
"model": "flat",
"unit": "<string>",
"addons": [
{
"field": "<string>",
"id": "<string>",
"label": "<string>",
"usd": 123
}
],
"baseUsd": 123,
"perUnitUsd": 123
},
"source": {
"artworkKey": "<string>",
"id": "<string>",
"kind": "anonymous",
"name": "<string>"
},
"fields": [
"<string>"
],
"health": {
"latencyP50Ms": 123,
"latencySample": 123,
"requests": 123,
"servedRequests": 123,
"uptimePct": 123,
"uptimeSample": 123,
"window": "30d",
"blockedPct": 123
}
}
],
"method": "<string>",
"name": "<string>",
"path": "<string>",
"pricing": {
"failoverMaxPer1kUsd": 123,
"failoverMaxUsd": 123,
"from": {
"maxPer1kUsd": 123,
"maxUsd": 123,
"model": "flat",
"unit": "<string>",
"addons": [
{
"field": "<string>",
"id": "<string>",
"label": "<string>",
"usd": 123
}
],
"baseUsd": 123,
"perUnitUsd": 123
}
},
"provider": "AnyAPI",
"slug": "<string>",
"tryEligible": true,
"beta": true,
"excludesCallerDelay": true,
"heavy": true,
"notServingSources": [
{
"pricing": {
"maxPer1kUsd": 123,
"maxUsd": 123,
"model": "flat",
"unit": "<string>",
"addons": [
{
"field": "<string>",
"id": "<string>",
"label": "<string>",
"usd": 123
}
],
"baseUsd": 123,
"perUnitUsd": 123
},
"source": {
"artworkKey": "<string>",
"id": "<string>",
"kind": "anonymous",
"name": "<string>"
},
"fields": [
"<string>"
],
"health": {
"latencyP50Ms": 123,
"latencySample": 123,
"requests": 123,
"servedRequests": 123,
"uptimePct": 123,
"uptimeSample": 123,
"window": "30d",
"blockedPct": 123
}
}
],
"tryMaxItems": 123
}
]
}Query Parameters
Restrict the response to one category, using an entry's category.
Response
The customer-safe catalog.
Hide child attributes
Hide child attributes
The API's category, accepted back as the category scope.
One-line summary of what this API returns.
True when more than one source can serve this API, so a failed attempt is retried on another. Derived from the published sources, never authored.
Stable identifier for this API.
The sources that can serve this API, cheapest customer charge first. Each carries its own price and its own public identity.
Hide child attributes
Hide child attributes
This source's own customer price.
Hide child attributes
Hide child attributes
The same maximum in the per-1,000-request denomination AnyAPI quotes customers in. It is published rather than left to the client, so display this figure instead of scaling a price yourself.
The most one request on this offer can be billed, in USD.
Pricing model. A flat offer is one price per request; a linear offer also carries baseUsd and perUnitUsd.
flat, linear The billable unit. A flat offer always publishes "request".
Optional extras this offer sells, absent when it sells none. Each is switched on by a field in the request, so its price is known before the call and never moves. maxUsd bounds the metered charge alone: an extra the caller asked for is billed ON TOP of it, so the most one request can cost is maxUsd plus the extras it switched on.
Hide child attributes
Hide child attributes
The input field that switches it on.
Stable identifier for the extra.
What the money buys, in the customer's words.
USD added to the request when that field is set.
Linear offers only: USD charged for the call before per-unit billing.
Linear offers only: USD charged for each billable unit inside the call.
This source's public identity.
Hide child attributes
Hide child attributes
Key for this source's artwork.
Stable identifier for this source.
anonymous is a stable identity for an unattributed source; brand names the dataset that supplies the data.
anonymous, brand Display name for this source.
The output fields this source returns, so you can see before calling which requireFields combinations one source can serve together. Absent when the set is not known for the source.
Measured health for this source. Absent when it has too little traffic to publish.
Hide child attributes
Hide child attributes
Median successful service time for this source, in milliseconds.
Requests behind latencyP50Ms.
Requests routed to this source in the window.
Requests this source served in the window.
Share of requests this source served successfully, as a percentage.
Requests behind uptimePct.
The trailing window these measurements cover.
"30d"Share of this source's attempts the target site refused, as a percentage. Left out of uptimePct. Sent only for web.scrape, where later sources see only the pages earlier ones failed on.
HTTP method for this API's concrete operation. Gateway authority: use it rather than assuming one.
Display name.
Concrete gateway path for this API. Gateway authority: use it rather than rebuilding a route from the slug.
Static USD pricing for this API.
Hide child attributes
Hide child attributes
failoverMaxUsd in the per-1,000-request denomination.
The greatest customer-price maximum across those same sources, in USD, including every optional extra a source sells.
The complete offer for the first source that will be tried, where sources are ordered by the customer charge, cheapest first.
Hide child attributes
Hide child attributes
The same maximum in the per-1,000-request denomination AnyAPI quotes customers in. It is published rather than left to the client, so display this figure instead of scaling a price yourself.
The most one request on this offer can be billed, in USD.
Pricing model. A flat offer is one price per request; a linear offer also carries baseUsd and perUnitUsd.
flat, linear The billable unit. A flat offer always publishes "request".
Optional extras this offer sells, absent when it sells none. Each is switched on by a field in the request, so its price is known before the call and never moves. maxUsd bounds the metered charge alone: an extra the caller asked for is billed ON TOP of it, so the most one request can cost is maxUsd plus the extras it switched on.
Hide child attributes
Hide child attributes
The input field that switches it on.
Stable identifier for the extra.
What the money buys, in the customer's words.
USD added to the request when that field is set.
Linear offers only: USD charged for the call before per-unit billing.
Linear offers only: USD charged for each billable unit inside the call.
Always "AnyAPI". AnyAPI is the provider of record for every API in the catalog.
"AnyAPI"The API's slug. Use it as {sku} on GET /v1/apis/{sku} and POST /v1/run/{sku}.
True when this API can be run from the free public try surface.
Present when this API is published as beta. A maturity label only: a beta API routes, serves and bills exactly like any other.
Present when this API accepts a caller-requested wait. The published latency is net of that wait, so a caller who uses it measures a longer time.
True when a typical response is large enough to strain an agent's context window. Reach for the run response-budget controls (fields, max_items, summary, jq) before the first call.
Sources that belong to this API but are not being called right now: each served until it was withdrawn after failures, and each returns on its own once it passes again. Absent when every source is serving. Never merge these into the list above: the prices here cannot be charged and a failed call is not retried on them.
Hide child attributes
Hide child attributes
This source's own customer price.
Hide child attributes
Hide child attributes
The same maximum in the per-1,000-request denomination AnyAPI quotes customers in. It is published rather than left to the client, so display this figure instead of scaling a price yourself.
The most one request on this offer can be billed, in USD.
Pricing model. A flat offer is one price per request; a linear offer also carries baseUsd and perUnitUsd.
flat, linear The billable unit. A flat offer always publishes "request".
Optional extras this offer sells, absent when it sells none. Each is switched on by a field in the request, so its price is known before the call and never moves. maxUsd bounds the metered charge alone: an extra the caller asked for is billed ON TOP of it, so the most one request can cost is maxUsd plus the extras it switched on.
Hide child attributes
Hide child attributes
The input field that switches it on.
Stable identifier for the extra.
What the money buys, in the customer's words.
USD added to the request when that field is set.
Linear offers only: USD charged for the call before per-unit billing.
Linear offers only: USD charged for each billable unit inside the call.
This source's public identity.
Hide child attributes
Hide child attributes
Key for this source's artwork.
Stable identifier for this source.
anonymous is a stable identity for an unattributed source; brand names the dataset that supplies the data.
anonymous, brand Display name for this source.
The output fields this source returns, so you can see before calling which requireFields combinations one source can serve together. Absent when the set is not known for the source.
Measured health for this source. Absent when it has too little traffic to publish.
Hide child attributes
Hide child attributes
Median successful service time for this source, in milliseconds.
Requests behind latencyP50Ms.
Requests routed to this source in the window.
Requests this source served in the window.
Share of requests this source served successfully, as a percentage.
Requests behind uptimePct.
The trailing window these measurements cover.
"30d"Share of this source's attempts the target site refused, as a percentage. Left out of uptimePct. Sent only for web.scrape, where later sources see only the pages earlier ones failed on.
The most items the free try returns. Present only when tryEligible is true, so a limit is never advertised for an API the public tool will refuse.