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>",
"baseUsd": 123,
"perUnitUsd": 123
},
"source": {
"artworkKey": "<string>",
"id": "<string>",
"kind": "anonymous",
"name": "<string>"
},
"health": {
"latencyP50Ms": 123,
"latencySample": 123,
"requests": 123,
"servedRequests": 123,
"uptimePct": 123,
"uptimeSample": 123,
"window": "30d"
}
}
],
"method": "<string>",
"name": "<string>",
"path": "<string>",
"pricing": {
"failoverMaxPer1kUsd": 123,
"failoverMaxUsd": 123,
"from": {
"maxPer1kUsd": 123,
"maxUsd": 123,
"model": "flat",
"unit": "<string>",
"baseUsd": 123,
"perUnitUsd": 123
}
},
"provider": "AnyAPI",
"slug": "<string>",
"tryEligible": true,
"beta": true,
"excludesCallerDelay": true,
"heavy": true,
"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>",
"baseUsd": 123,
"perUnitUsd": 123
},
"source": {
"artworkKey": "<string>",
"id": "<string>",
"kind": "anonymous",
"name": "<string>"
},
"health": {
"latencyP50Ms": 123,
"latencySample": 123,
"requests": 123,
"servedRequests": 123,
"uptimePct": 123,
"uptimeSample": 123,
"window": "30d"
}
}
],
"method": "<string>",
"name": "<string>",
"path": "<string>",
"pricing": {
"failoverMaxPer1kUsd": 123,
"failoverMaxUsd": 123,
"from": {
"maxPer1kUsd": 123,
"maxUsd": 123,
"model": "flat",
"unit": "<string>",
"baseUsd": 123,
"perUnitUsd": 123
}
},
"provider": "AnyAPI",
"slug": "<string>",
"tryEligible": true,
"beta": true,
"excludesCallerDelay": true,
"heavy": true,
"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".
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.
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"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.
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".
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.
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.