curl --request GET \
--url https://api.getanyapi.com/v1/apis/{sku} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.getanyapi.com/v1/apis/{sku}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.getanyapi.com/v1/apis/{sku}', 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/v1/apis/{sku}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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/v1/apis/{sku}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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/v1/apis/{sku}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getanyapi.com/v1/apis/{sku}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"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>"
}
}
],
"latency": {
"basis": "service_time_excludes_caller_requested_delay",
"p50Ms": 123,
"p95Ms": 123,
"p99Ms": 123,
"sample": 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,
"howItWorks": "<string>",
"inputSchema": {},
"outputSchema": {},
"tryMaxItems": 123
}{
"error": "<string>",
"code": "<string>",
"payment": {
"costUsd": 1,
"rail": "<string>",
"settlementState": "charged_undelivered"
},
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"error": "<string>",
"code": "<string>",
"payment": {
"costUsd": 1,
"rail": "<string>",
"settlementState": "charged_undelivered"
},
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}Get one API
One API’s full contract: its normalized inputSchema and outputSchema, its USD pricing, the sources behind it, and its trailing-30-day latency distribution. Build your input from inputSchema rather than from the description: the schema is strict, so an invented field name fails the call. The latency percentiles are observations of past successful runs, not execution ceilings.
curl --request GET \
--url https://api.getanyapi.com/v1/apis/{sku} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.getanyapi.com/v1/apis/{sku}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.getanyapi.com/v1/apis/{sku}', 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/v1/apis/{sku}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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/v1/apis/{sku}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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/v1/apis/{sku}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getanyapi.com/v1/apis/{sku}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"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>"
}
}
],
"latency": {
"basis": "service_time_excludes_caller_requested_delay",
"p50Ms": 123,
"p95Ms": 123,
"p99Ms": 123,
"sample": 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,
"howItWorks": "<string>",
"inputSchema": {},
"outputSchema": {},
"tryMaxItems": 123
}{
"error": "<string>",
"code": "<string>",
"payment": {
"costUsd": 1,
"rail": "<string>",
"settlementState": "charged_undelivered"
},
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"error": "<string>",
"code": "<string>",
"payment": {
"costUsd": 1,
"rail": "<string>",
"settlementState": "charged_undelivered"
},
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}Authorizations
Your AnyAPI key as a Bearer token.
Path Parameters
The API's slug, as published by discovery (for example reddit.search).
Response
The API's full contract.
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.
Trailing-window distribution of successful runs, or null when there are too few observations to publish.
Hide child attributes
Hide child attributes
Machine-readable definition of what these percentiles measure.
"service_time_excludes_caller_requested_delay"Median successful end-to-end service time, in milliseconds.
95th percentile successful end-to-end service time, in milliseconds.
99th percentile successful end-to-end service time, in milliseconds. An observation, not a maximum.
Successful executions behind these percentiles.
The trailing window these percentiles 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.
Authored prose explaining how this API produces its result. Absent when unauthored.
This API's normalized input as a JSON Schema document. It is strict: build the run body from it, because an invented field name fails the call.
This API's normalized output as a JSON Schema document.
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.