From 69ad2a400b0c44d0e7e16a47ef4a8465da960df5 Mon Sep 17 00:00:00 2001 From: Kevin Wang Date: Sun, 6 Sep 2026 00:02:51 -0700 Subject: [PATCH] chore(release): catalog refresh v0.37.0 Accepts the blocked classification that has stopped every regen run since 2026-09-01T06:55Z. All eleven surface changes trace to a deliberate merged AnyAPI change, so the fail-closed gate did its job and this is the review it was waiting for. Minor bump, following the v0.34.0 precedent for a reviewed narrowing (getanyapi-com/sdks#29). Breaking, in the order a customer will hit them: twitter.search input.lang is gone. X honours "lang:" inside the query, and declaring lang collapsed the SKU to one apify lane at 9x the price, so it was retired upstream (anyapi#940). Put it in the query: query: "coffee lang:en". The gateway still folds a sent lang into the query, so an untyped caller keeps working; the SDK type no longer offers it. youtube.search_hashtag input.type no longer accepts "shorts", only "all". No source we buy returns a hashtag Shorts row with the channel and publish time this endpoint requires, so the filter was unpublished (anyapi#961). youtube.search_shorts new SKU, and the replacement for the Shorts rows above: client.youtube.searchShorts({ query }) / client.youtube.search_shorts(query=...), cursor-paginated, $0.002 per request (anyapi#965). company_enrichment.crustdata_v3 output name is now optional. A single null title aborted the whole transform and threw away every good row beside it (anyapi#1044). youtube.channel_shorts output.shorts[].title is now optional, same reason (anyapi#1023). tiktok.video input.url is now optional because input.id was added: the SKU accepts either (anyapi#1030). Existing url callers are unaffected. The IR carries no anyOf, so both read as optional in the emitted types; send one. tiktok.video_transcript_full output.segments[].words[].confidence lost its 0..1 bounds. On audio the recognizer could not align, it reports a negative log-scale score, and the old bound rejected real responses (anyapi#1023). Read the sign before treating the number as a probability. yelp.search input.limit now documents its default of 20, which is what the gateway already applied (anyapi#1003). Also in this refresh: threads.search gains optional startDate and endDate (anyapi#940), and eleven SKUs reprice, most of them down - maps.reviews $0.0441 -> $0.0035, yelp.search $0.0605 -> $0.0035, perplexity.search $0.0111 -> $0.0036, youtube.video_transcript_full $0.00308 -> $0.001. Co-Authored-By: Claude Opus 5 (1M context) --- catalog.json | 3637 ++++---- generator/fixtures.json | 24 +- generator/ir.json | 308 +- openapi.json | 7790 +++++++++++++---- packages/python/pyproject.toml | 2 +- packages/python/src/getanyapi/__init__.py | 2 +- .../getanyapi/platforms/company_enrichment.py | 2 +- .../python/src/getanyapi/platforms/google.py | 4 +- .../src/getanyapi/platforms/instagram.py | 18 +- .../python/src/getanyapi/platforms/maps.py | 12 +- .../src/getanyapi/platforms/perplexity.py | 4 +- .../python/src/getanyapi/platforms/reddit.py | 8 +- .../python/src/getanyapi/platforms/threads.py | 6 +- .../python/src/getanyapi/platforms/tiktok.py | 6 +- .../src/getanyapi/platforms/tripadvisor.py | 8 +- .../src/getanyapi/platforms/trustpilot.py | 10 +- .../python/src/getanyapi/platforms/twitter.py | 2 - .../python/src/getanyapi/platforms/yelp.py | 6 +- .../python/src/getanyapi/platforms/youtube.py | 196 +- packages/typescript/package.json | 2 +- .../generated/platforms/company_enrichment.ts | 2 +- .../src/generated/platforms/google.ts | 2 +- .../src/generated/platforms/instagram.ts | 8 +- .../src/generated/platforms/maps.ts | 9 +- .../src/generated/platforms/perplexity.ts | 2 +- .../src/generated/platforms/reddit.ts | 4 +- .../src/generated/platforms/threads.ts | 10 +- .../src/generated/platforms/tiktok.ts | 9 +- .../src/generated/platforms/tripadvisor.ts | 4 +- .../src/generated/platforms/trustpilot.ts | 10 +- .../src/generated/platforms/twitter.ts | 4 - .../src/generated/platforms/yelp.ts | 3 +- .../src/generated/platforms/youtube.ts | 143 +- packages/typescript/src/generated/sku-map.ts | 7 + 34 files changed, 8917 insertions(+), 3347 deletions(-) diff --git a/catalog.json b/catalog.json index 8d22d65..140867d 100644 --- a/catalog.json +++ b/catalog.json @@ -43,11 +43,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 21598, - "uptimeSample": 4, - "latencySample": 4, - "requests": 4, - "servedRequests": 4 + "latencyP50Ms": 19910, + "uptimeSample": 8, + "latencySample": 8, + "requests": 8, + "servedRequests": 8 } } ], @@ -153,11 +153,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 9844, - "uptimeSample": 42, - "latencySample": 42, - "requests": 42, - "servedRequests": 42 + "latencyP50Ms": 12379, + "uptimeSample": 16, + "latencySample": 16, + "requests": 16, + "servedRequests": 16 } } ], @@ -207,12 +207,12 @@ }, "health": { "window": "30d", - "uptimePct": 100, - "latencyP50Ms": 13715, - "uptimeSample": 34, - "latencySample": 34, - "requests": 34, - "servedRequests": 34 + "uptimePct": 98.9010989010989, + "latencyP50Ms": 10386, + "uptimeSample": 273, + "latencySample": 270, + "requests": 273, + "servedRequests": 270 } } ], @@ -318,11 +318,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 8564, - "uptimeSample": 9, - "latencySample": 9, - "requests": 9, - "servedRequests": 9 + "latencyP50Ms": 9577, + "uptimeSample": 7, + "latencySample": 7, + "requests": 7, + "servedRequests": 7 } } ], @@ -491,11 +491,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 10664, - "uptimeSample": 34, - "latencySample": 34, - "requests": 34, - "servedRequests": 34 + "latencyP50Ms": 10897, + "uptimeSample": 44, + "latencySample": 44, + "requests": 44, + "servedRequests": 44 } }, { @@ -591,11 +591,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 5139, - "uptimeSample": 5, - "latencySample": 5, - "requests": 5, - "servedRequests": 5 + "latencyP50Ms": 5377, + "uptimeSample": 4, + "latencySample": 4, + "requests": 4, + "servedRequests": 4 } }, { @@ -639,11 +639,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 57185, - "uptimeSample": 3, - "latencySample": 3, - "requests": 3, - "servedRequests": 3 + "latencyP50Ms": 57527, + "uptimeSample": 2, + "latencySample": 2, + "requests": 2, + "servedRequests": 2 } } ], @@ -689,12 +689,12 @@ }, "health": { "window": "30d", - "uptimePct": 96.66666666666667, - "latencyP50Ms": 4978, - "uptimeSample": 210, - "latencySample": 203, - "requests": 210, - "servedRequests": 203 + "uptimePct": 96.80365296803653, + "latencyP50Ms": 4941, + "uptimeSample": 219, + "latencySample": 212, + "requests": 219, + "servedRequests": 212 } }, { @@ -715,11 +715,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 9408, - "uptimeSample": 7, - "latencySample": 7, - "requests": 7, - "servedRequests": 7 + "latencyP50Ms": 9657, + "uptimeSample": 6, + "latencySample": 6, + "requests": 6, + "servedRequests": 6 } } ], @@ -808,11 +808,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 1875, - "uptimeSample": 83, - "latencySample": 83, - "requests": 83, - "servedRequests": 83 + "latencyP50Ms": 1739, + "uptimeSample": 73, + "latencySample": 73, + "requests": 73, + "servedRequests": 73 } } ], @@ -858,12 +858,12 @@ }, "health": { "window": "30d", - "uptimePct": 95.91836734693878, - "latencyP50Ms": 5706, - "uptimeSample": 49, - "latencySample": 47, - "requests": 49, - "servedRequests": 47 + "uptimePct": 96.07843137254902, + "latencyP50Ms": 5578, + "uptimeSample": 51, + "latencySample": 49, + "requests": 51, + "servedRequests": 49 } } ], @@ -909,12 +909,12 @@ }, "health": { "window": "30d", - "uptimePct": 95.65217391304348, - "latencyP50Ms": 1014, - "uptimeSample": 23, - "latencySample": 22, - "requests": 25, - "servedRequests": 22 + "uptimePct": 95.83333333333333, + "latencyP50Ms": 1022, + "uptimeSample": 24, + "latencySample": 23, + "requests": 26, + "servedRequests": 23 } } ], @@ -961,11 +961,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 4092, - "uptimeSample": 86, - "latencySample": 86, - "requests": 86, - "servedRequests": 86 + "latencyP50Ms": 1842, + "uptimeSample": 58, + "latencySample": 58, + "requests": 58, + "servedRequests": 58 } } ], @@ -1011,11 +1011,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 3802, - "uptimeSample": 46, - "latencySample": 46, - "requests": 46, - "servedRequests": 46 + "latencyP50Ms": 1984, + "uptimeSample": 39, + "latencySample": 39, + "requests": 39, + "servedRequests": 39 } } ], @@ -1062,11 +1062,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 633, - "uptimeSample": 121, - "latencySample": 121, - "requests": 121, - "servedRequests": 121 + "latencyP50Ms": 649, + "uptimeSample": 115, + "latencySample": 115, + "requests": 115, + "servedRequests": 115 } } ], @@ -1113,11 +1113,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 2201, - "uptimeSample": 150, - "latencySample": 150, - "requests": 150, - "servedRequests": 150 + "latencyP50Ms": 1823, + "uptimeSample": 140, + "latencySample": 140, + "requests": 140, + "servedRequests": 140 } } ], @@ -1545,11 +1545,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 76320, - "uptimeSample": 4, - "latencySample": 4, - "requests": 4, - "servedRequests": 4 + "latencyP50Ms": 76802, + "uptimeSample": 5, + "latencySample": 5, + "requests": 5, + "servedRequests": 5 } }, { @@ -1567,12 +1567,12 @@ }, "health": { "window": "30d", - "uptimePct": 53.211009174311926, - "latencyP50Ms": 34872, - "uptimeSample": 327, - "latencySample": 174, - "requests": 327, - "servedRequests": 174 + "uptimePct": 51.55807365439094, + "latencyP50Ms": 35152, + "uptimeSample": 353, + "latencySample": 182, + "requests": 353, + "servedRequests": 182 } }, { @@ -1590,12 +1590,12 @@ }, "health": { "window": "30d", - "uptimePct": 92.55319148936171, - "latencyP50Ms": 19588, - "uptimeSample": 188, - "latencySample": 174, - "requests": 188, - "servedRequests": 174 + "uptimePct": 92.61083743842364, + "latencyP50Ms": 20218, + "uptimeSample": 203, + "latencySample": 188, + "requests": 203, + "servedRequests": 188 } } ], @@ -1867,6 +1867,15 @@ "name": "Dolphin", "kind": "anonymous", "artworkKey": "dolphin" + }, + "health": { + "window": "30d", + "uptimePct": 100, + "latencyP50Ms": 1152, + "uptimeSample": 12, + "latencySample": 12, + "requests": 12, + "servedRequests": 12 } } ], @@ -1916,11 +1925,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 2031, - "uptimeSample": 11, - "latencySample": 11, - "requests": 11, - "servedRequests": 11 + "latencyP50Ms": 1925, + "uptimeSample": 10, + "latencySample": 10, + "requests": 10, + "servedRequests": 10 } } ], @@ -2348,15 +2357,6 @@ "name": "Tiger", "kind": "anonymous", "artworkKey": "tiger" - }, - "health": { - "window": "30d", - "uptimePct": 100, - "latencyP50Ms": 868, - "uptimeSample": 1, - "latencySample": 1, - "requests": 1, - "servedRequests": 1 } } ], @@ -2403,11 +2403,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 3677, - "uptimeSample": 2, - "latencySample": 2, - "requests": 2, - "servedRequests": 2 + "latencyP50Ms": 2966, + "uptimeSample": 3, + "latencySample": 3, + "requests": 3, + "servedRequests": 3 } } ], @@ -2492,15 +2492,6 @@ "name": "Tiger", "kind": "anonymous", "artworkKey": "tiger" - }, - "health": { - "window": "30d", - "uptimePct": 100, - "latencyP50Ms": 3207, - "uptimeSample": 1, - "latencySample": 1, - "requests": 1, - "servedRequests": 1 } } ], @@ -2598,11 +2589,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 3083, - "uptimeSample": 1, - "latencySample": 1, - "requests": 1, - "servedRequests": 1 + "latencyP50Ms": 3553, + "uptimeSample": 2, + "latencySample": 2, + "requests": 2, + "servedRequests": 2 } } ], @@ -2831,11 +2822,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 7020, - "uptimeSample": 9, - "latencySample": 9, - "requests": 9, - "servedRequests": 9 + "latencyP50Ms": 4353, + "uptimeSample": 96, + "latencySample": 96, + "requests": 97, + "servedRequests": 96 } }, { @@ -2854,11 +2845,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 4288, - "uptimeSample": 1, - "latencySample": 1, - "requests": 1, - "servedRequests": 1 + "latencyP50Ms": 4868, + "uptimeSample": 34, + "latencySample": 34, + "requests": 35, + "servedRequests": 34 } }, { @@ -2877,11 +2868,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 11304, - "uptimeSample": 1, - "latencySample": 1, - "requests": 1, - "servedRequests": 1 + "latencyP50Ms": 5492, + "uptimeSample": 14, + "latencySample": 14, + "requests": 15, + "servedRequests": 14 } } ], @@ -2919,19 +2910,19 @@ "maxPer1kUsd": 6.6 }, "source": { - "id": "anonymous-octopus", - "name": "Octopus", + "id": "anonymous-salamander-35d35ea6", + "name": "Salamander", "kind": "anonymous", - "artworkKey": "octopus" + "artworkKey": "salamander" }, "health": { "window": "30d", - "uptimePct": 99.47693770803613, - "latencyP50Ms": 4524, - "uptimeSample": 2103, - "latencySample": 2092, - "requests": 2103, - "servedRequests": 2092 + "uptimePct": 100, + "latencyP50Ms": 3330, + "uptimeSample": 292, + "latencySample": 292, + "requests": 292, + "servedRequests": 292 } }, { @@ -2942,19 +2933,19 @@ "maxPer1kUsd": 6.6 }, "source": { - "id": "anonymous-salamander-35d35ea6", - "name": "Salamander", + "id": "anonymous-octopus", + "name": "Octopus", "kind": "anonymous", - "artworkKey": "salamander" + "artworkKey": "octopus" }, "health": { "window": "30d", - "uptimePct": 100, - "latencyP50Ms": 6042, - "uptimeSample": 30, - "latencySample": 30, - "requests": 30, - "servedRequests": 30 + "uptimePct": 99.41302027748132, + "latencyP50Ms": 4572, + "uptimeSample": 1874, + "latencySample": 1863, + "requests": 1874, + "servedRequests": 1863 } } ], @@ -3106,11 +3097,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 1888, - "uptimeSample": 189, - "latencySample": 189, - "requests": 189, - "servedRequests": 189 + "latencyP50Ms": 1891, + "uptimeSample": 190, + "latencySample": 190, + "requests": 190, + "servedRequests": 190 } } ], @@ -3414,12 +3405,12 @@ }, "health": { "window": "30d", - "uptimePct": 100, - "latencyP50Ms": 4628, - "uptimeSample": 5, - "latencySample": 5, - "requests": 5, - "servedRequests": 5 + "uptimePct": 54.716981132075475, + "latencyP50Ms": 5663, + "uptimeSample": 53, + "latencySample": 29, + "requests": 53, + "servedRequests": 29 } } ], @@ -3634,8 +3625,8 @@ "maxUsd": 0.002, "maxPer1kUsd": 2 }, - "failoverMaxUsd": 0.002, - "failoverMaxPer1kUsd": 2 + "failoverMaxUsd": 0.036, + "failoverMaxPer1kUsd": 36 }, "lanes": [ { @@ -3654,17 +3645,30 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 6780, - "uptimeSample": 99, - "latencySample": 99, - "requests": 101, - "servedRequests": 99 + "latencyP50Ms": 6848, + "uptimeSample": 76, + "latencySample": 76, + "requests": 78, + "servedRequests": 76 + } + }, + { + "pricing": { + "model": "flat", + "unit": "request", + "maxUsd": 0.036, + "maxPer1kUsd": 36 + }, + "source": { + "id": "anonymous-fox", + "name": "Fox", + "kind": "anonymous", + "artworkKey": "fox" } } ], - "tryEligible": true, - "tryMaxItems": 3, - "failover": false + "tryEligible": false, + "failover": true }, { "id": "facebook.ads_search", @@ -3685,8 +3689,8 @@ "maxUsd": 0.002, "maxPer1kUsd": 2 }, - "failoverMaxUsd": 0.002, - "failoverMaxPer1kUsd": 2 + "failoverMaxUsd": 0.018, + "failoverMaxPer1kUsd": 18 }, "lanes": [ { @@ -3704,18 +3708,32 @@ }, "health": { "window": "30d", - "uptimePct": 98.14126394052045, - "latencyP50Ms": 2965, - "uptimeSample": 269, - "latencySample": 264, - "requests": 269, - "servedRequests": 264 + "uptimePct": 96.3917525773196, + "latencyP50Ms": 3165, + "uptimeSample": 388, + "latencySample": 374, + "requests": 388, + "servedRequests": 374 + } + }, + { + "pricing": { + "model": "flat", + "unit": "request", + "maxUsd": 0.018, + "maxPer1kUsd": 18 + }, + "source": { + "id": "anonymous-fox", + "name": "Fox", + "kind": "anonymous", + "artworkKey": "fox" } } ], "tryEligible": true, "tryMaxItems": 3, - "failover": false + "failover": true }, { "id": "facebook.comment_replies", @@ -3806,12 +3824,12 @@ }, "health": { "window": "30d", - "uptimePct": 99.50738916256158, - "latencyP50Ms": 2431, - "uptimeSample": 203, - "latencySample": 202, - "requests": 203, - "servedRequests": 202 + "uptimePct": 90.68673565380998, + "latencyP50Ms": 2975, + "uptimeSample": 1063, + "latencySample": 964, + "requests": 1063, + "servedRequests": 964 } } ], @@ -3922,8 +3940,8 @@ "maxUsd": 0.002, "maxPer1kUsd": 2 }, - "failoverMaxUsd": 0.002, - "failoverMaxPer1kUsd": 2 + "failoverMaxUsd": 0.0036, + "failoverMaxPer1kUsd": 3.6 }, "lanes": [ { @@ -3939,11 +3957,25 @@ "kind": "anonymous", "artworkKey": "giraffe" } - } - ], - "tryEligible": true, + }, + { + "pricing": { + "model": "flat", + "unit": "request", + "maxUsd": 0.0036, + "maxPer1kUsd": 3.6 + }, + "source": { + "id": "anonymous-fox", + "name": "Fox", + "kind": "anonymous", + "artworkKey": "fox" + } + } + ], + "tryEligible": true, "tryMaxItems": 3, - "failover": false + "failover": true }, { "id": "facebook.followers", @@ -4019,8 +4051,8 @@ "maxUsd": 0.002, "maxPer1kUsd": 2 }, - "failoverMaxUsd": 0.002, - "failoverMaxPer1kUsd": 2 + "failoverMaxUsd": 0.0036, + "failoverMaxPer1kUsd": 3.6 }, "lanes": [ { @@ -4038,18 +4070,32 @@ }, "health": { "window": "30d", - "uptimePct": 98.58215179316096, - "latencyP50Ms": 5322, - "uptimeSample": 1199, - "latencySample": 1182, - "requests": 1199, - "servedRequests": 1182 + "uptimePct": 98.45070422535211, + "latencyP50Ms": 5164, + "uptimeSample": 1420, + "latencySample": 1398, + "requests": 1420, + "servedRequests": 1398 + } + }, + { + "pricing": { + "model": "flat", + "unit": "request", + "maxUsd": 0.0036, + "maxPer1kUsd": 3.6 + }, + "source": { + "id": "anonymous-fox", + "name": "Fox", + "kind": "anonymous", + "artworkKey": "fox" } } ], "tryEligible": true, "tryMaxItems": 3, - "failover": false + "failover": true }, { "id": "facebook.marketplace", @@ -4070,8 +4116,8 @@ "maxUsd": 0.002, "maxPer1kUsd": 2 }, - "failoverMaxUsd": 0.002, - "failoverMaxPer1kUsd": 2 + "failoverMaxUsd": 0.0036, + "failoverMaxPer1kUsd": 3.6 }, "lanes": [ { @@ -4096,11 +4142,25 @@ "requests": 38, "servedRequests": 38 } + }, + { + "pricing": { + "model": "flat", + "unit": "request", + "maxUsd": 0.0036, + "maxPer1kUsd": 3.6 + }, + "source": { + "id": "anonymous-fox", + "name": "Fox", + "kind": "anonymous", + "artworkKey": "fox" + } } ], "tryEligible": true, "tryMaxItems": 3, - "failover": false + "failover": true }, { "id": "facebook.marketplace_item", @@ -4172,8 +4232,8 @@ "maxUsd": 0.002, "maxPer1kUsd": 2 }, - "failoverMaxUsd": 0.002, - "failoverMaxPer1kUsd": 2 + "failoverMaxUsd": 0.0036, + "failoverMaxPer1kUsd": 3.6 }, "lanes": [ { @@ -4189,11 +4249,25 @@ "kind": "anonymous", "artworkKey": "giraffe" } + }, + { + "pricing": { + "model": "flat", + "unit": "request", + "maxUsd": 0.0036, + "maxPer1kUsd": 3.6 + }, + "source": { + "id": "anonymous-fox", + "name": "Fox", + "kind": "anonymous", + "artworkKey": "fox" + } } ], "tryEligible": true, "tryMaxItems": 3, - "failover": false + "failover": true }, { "id": "facebook.page_contact", @@ -4234,11 +4308,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 3002, - "uptimeSample": 20, - "latencySample": 20, - "requests": 23, - "servedRequests": 20 + "latencyP50Ms": 3079, + "uptimeSample": 51, + "latencySample": 51, + "requests": 54, + "servedRequests": 51 } }, { @@ -4365,12 +4439,12 @@ }, "health": { "window": "30d", - "uptimePct": 100, - "latencyP50Ms": 11246, - "uptimeSample": 2, - "latencySample": 2, - "requests": 2, - "servedRequests": 2 + "uptimePct": 99.84532095901005, + "latencyP50Ms": 2576, + "uptimeSample": 1293, + "latencySample": 1291, + "requests": 1293, + "servedRequests": 1291 } }, { @@ -4392,7 +4466,7 @@ "latencyP50Ms": 3280, "uptimeSample": 2, "latencySample": 2, - "requests": 2, + "requests": 4, "servedRequests": 2 } } @@ -4436,6 +4510,15 @@ "name": "Giraffe", "kind": "anonymous", "artworkKey": "giraffe" + }, + "health": { + "window": "30d", + "uptimePct": 100, + "latencyP50Ms": 3713, + "uptimeSample": 46, + "latencySample": 46, + "requests": 60, + "servedRequests": 46 } }, { @@ -4531,8 +4614,8 @@ "maxUsd": 0.002, "maxPer1kUsd": 2 }, - "failoverMaxUsd": 0.002, - "failoverMaxPer1kUsd": 2 + "failoverMaxUsd": 0.0036, + "failoverMaxPer1kUsd": 3.6 }, "lanes": [ { @@ -4550,18 +4633,41 @@ }, "health": { "window": "30d", - "uptimePct": 98.6842105263158, - "latencyP50Ms": 2463, - "uptimeSample": 76, - "latencySample": 75, - "requests": 82, - "servedRequests": 75 + "uptimePct": 98.73417721518987, + "latencyP50Ms": 2552, + "uptimeSample": 79, + "latencySample": 78, + "requests": 83, + "servedRequests": 78 + } + }, + { + "pricing": { + "model": "flat", + "unit": "request", + "maxUsd": 0.0036, + "maxPer1kUsd": 3.6 + }, + "source": { + "id": "anonymous-fox", + "name": "Fox", + "kind": "anonymous", + "artworkKey": "fox" + }, + "health": { + "window": "30d", + "uptimePct": 100, + "latencyP50Ms": 3823, + "uptimeSample": 1, + "latencySample": 1, + "requests": 1, + "servedRequests": 1 } } ], "tryEligible": true, "tryMaxItems": 3, - "failover": false + "failover": true }, { "id": "facebook.profile_events", @@ -4666,12 +4772,12 @@ }, "health": { "window": "30d", - "uptimePct": 98.88888888888889, - "latencyP50Ms": 2912, - "uptimeSample": 90, - "latencySample": 89, - "requests": 94, - "servedRequests": 89 + "uptimePct": 99.71367215461704, + "latencyP50Ms": 2691, + "uptimeSample": 1397, + "latencySample": 1393, + "requests": 1399, + "servedRequests": 1393 } }, { @@ -4690,11 +4796,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 3111, - "uptimeSample": 7, - "latencySample": 7, + "latencyP50Ms": 3418, + "uptimeSample": 8, + "latencySample": 8, "requests": 9, - "servedRequests": 7 + "servedRequests": 8 } } ], @@ -4741,11 +4847,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 3510, - "uptimeSample": 2, - "latencySample": 2, - "requests": 2, - "servedRequests": 2 + "latencyP50Ms": 4406, + "uptimeSample": 1, + "latencySample": 1, + "requests": 1, + "servedRequests": 1 } }, { @@ -4806,11 +4912,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 2710, - "uptimeSample": 31, - "latencySample": 31, - "requests": 31, - "servedRequests": 31 + "latencyP50Ms": 762, + "uptimeSample": 80, + "latencySample": 80, + "requests": 80, + "servedRequests": 80 } } ], @@ -4861,11 +4967,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 14415, - "uptimeSample": 25, - "latencySample": 25, - "requests": 25, - "servedRequests": 25 + "latencyP50Ms": 15481, + "uptimeSample": 55, + "latencySample": 55, + "requests": 55, + "servedRequests": 55 } } ], @@ -4914,12 +5020,12 @@ }, "health": { "window": "30d", - "uptimePct": 98.27586206896552, + "uptimePct": 99.2063492063492, "latencyP50Ms": 16213, - "uptimeSample": 116, - "latencySample": 114, - "requests": 116, - "servedRequests": 114 + "uptimeSample": 252, + "latencySample": 250, + "requests": 252, + "servedRequests": 250 } } ], @@ -5015,12 +5121,12 @@ }, "health": { "window": "30d", - "uptimePct": 100, - "latencyP50Ms": 5603, - "uptimeSample": 38, - "latencySample": 38, - "requests": 38, - "servedRequests": 38 + "uptimePct": 98, + "latencyP50Ms": 5338, + "uptimeSample": 50, + "latencySample": 49, + "requests": 50, + "servedRequests": 49 } }, { @@ -5037,6 +5143,15 @@ "name": "Octopus", "kind": "anonymous", "artworkKey": "octopus" + }, + "health": { + "window": "30d", + "uptimePct": 0, + "latencyP50Ms": 0, + "uptimeSample": 1, + "latencySample": 0, + "requests": 1, + "servedRequests": 0 } } ], @@ -5082,11 +5197,11 @@ }, "health": { "window": "30d", - "uptimePct": 57.69230769230769, + "uptimePct": 55.55555555555556, "latencyP50Ms": 28614, - "uptimeSample": 26, + "uptimeSample": 27, "latencySample": 15, - "requests": 26, + "requests": 27, "servedRequests": 15 } }, @@ -5106,11 +5221,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 17048, - "uptimeSample": 12, - "latencySample": 12, - "requests": 12, - "servedRequests": 12 + "latencyP50Ms": 16591, + "uptimeSample": 13, + "latencySample": 13, + "requests": 13, + "servedRequests": 13 } } ], @@ -5156,12 +5271,12 @@ }, "health": { "window": "30d", - "uptimePct": 84.61538461538461, - "latencyP50Ms": 784, - "uptimeSample": 13, - "latencySample": 11, - "requests": 13, - "servedRequests": 11 + "uptimePct": 90.9090909090909, + "latencyP50Ms": 782, + "uptimeSample": 11, + "latencySample": 10, + "requests": 11, + "servedRequests": 10 } } ], @@ -5250,11 +5365,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 5596, - "uptimeSample": 2, - "latencySample": 2, - "requests": 2, - "servedRequests": 2 + "latencyP50Ms": 5183, + "uptimeSample": 93, + "latencySample": 93, + "requests": 93, + "servedRequests": 93 } } ], @@ -5301,11 +5416,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 2980, - "uptimeSample": 10, - "latencySample": 10, - "requests": 10, - "servedRequests": 10 + "latencyP50Ms": 3990, + "uptimeSample": 9, + "latencySample": 9, + "requests": 9, + "servedRequests": 9 } }, { @@ -5446,15 +5561,6 @@ "name": "Giraffe", "kind": "anonymous", "artworkKey": "giraffe" - }, - "health": { - "window": "30d", - "uptimePct": 100, - "latencyP50Ms": 1375, - "uptimeSample": 5, - "latencySample": 5, - "requests": 5, - "servedRequests": 5 } } ], @@ -5497,15 +5603,6 @@ "name": "Giraffe", "kind": "anonymous", "artworkKey": "giraffe" - }, - "health": { - "window": "30d", - "uptimePct": 100, - "latencyP50Ms": 944, - "uptimeSample": 6, - "latencySample": 6, - "requests": 6, - "servedRequests": 6 } } ], @@ -5548,15 +5645,6 @@ "name": "Giraffe", "kind": "anonymous", "artworkKey": "giraffe" - }, - "health": { - "window": "30d", - "uptimePct": 100, - "latencyP50Ms": 1260, - "uptimeSample": 18, - "latencySample": 18, - "requests": 18, - "servedRequests": 18 } } ], @@ -5599,15 +5687,6 @@ "name": "Giraffe", "kind": "anonymous", "artworkKey": "giraffe" - }, - "health": { - "window": "30d", - "uptimePct": 100, - "latencyP50Ms": 985, - "uptimeSample": 12, - "latencySample": 12, - "requests": 12, - "servedRequests": 12 } } ], @@ -5708,12 +5787,12 @@ }, "health": { "window": "30d", - "uptimePct": 42.857142857142854, - "latencyP50Ms": 16842, - "uptimeSample": 7, - "latencySample": 3, - "requests": 7, - "servedRequests": 3 + "uptimePct": 40, + "latencyP50Ms": 14357, + "uptimeSample": 10, + "latencySample": 4, + "requests": 11, + "servedRequests": 4 } }, { @@ -5734,11 +5813,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 39262, - "uptimeSample": 5, - "latencySample": 5, - "requests": 5, - "servedRequests": 5 + "latencyP50Ms": 38602, + "uptimeSample": 6, + "latencySample": 6, + "requests": 6, + "servedRequests": 6 } } ], @@ -5784,12 +5863,12 @@ }, "health": { "window": "30d", - "uptimePct": 93.29073482428115, + "uptimePct": 92.76729559748428, "latencyP50Ms": 100344, - "uptimeSample": 313, - "latencySample": 292, - "requests": 313, - "servedRequests": 292 + "uptimeSample": 318, + "latencySample": 295, + "requests": 318, + "servedRequests": 295 } }, { @@ -5809,12 +5888,12 @@ }, "health": { "window": "30d", - "uptimePct": 96.42857142857143, - "latencyP50Ms": 45485, - "uptimeSample": 140, - "latencySample": 135, - "requests": 140, - "servedRequests": 135 + "uptimePct": 96.47887323943662, + "latencyP50Ms": 45713, + "uptimeSample": 142, + "latencySample": 137, + "requests": 142, + "servedRequests": 137 } } ], @@ -5862,10 +5941,10 @@ "window": "30d", "uptimePct": 100, "latencyP50Ms": 397, - "uptimeSample": 459, - "latencySample": 459, - "requests": 459, - "servedRequests": 459 + "uptimeSample": 464, + "latencySample": 464, + "requests": 464, + "servedRequests": 464 } } ], @@ -6018,11 +6097,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 763, - "uptimeSample": 395, - "latencySample": 395, - "requests": 395, - "servedRequests": 395 + "latencyP50Ms": 782, + "uptimeSample": 475, + "latencySample": 475, + "requests": 475, + "servedRequests": 475 } } ], @@ -6148,8 +6227,8 @@ "from": { "model": "flat", "unit": "request", - "maxUsd": 0.00099, - "maxPer1kUsd": 0.99 + "maxUsd": 0.0009, + "maxPer1kUsd": 0.9 }, "failoverMaxUsd": 0.00126, "failoverMaxPer1kUsd": 1.26 @@ -6159,8 +6238,8 @@ "pricing": { "model": "flat", "unit": "request", - "maxUsd": 0.00099, - "maxPer1kUsd": 0.99 + "maxUsd": 0.0009, + "maxPer1kUsd": 0.9 }, "source": { "id": "anonymous-meerkat", @@ -6171,11 +6250,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 873, - "uptimeSample": 5128, - "latencySample": 5128, - "requests": 5128, - "servedRequests": 5128 + "latencyP50Ms": 885, + "uptimeSample": 4845, + "latencySample": 4845, + "requests": 4845, + "servedRequests": 4845 } }, { @@ -6235,12 +6314,12 @@ }, "health": { "window": "30d", - "uptimePct": 100, - "latencyP50Ms": 80814, - "uptimeSample": 25, - "latencySample": 25, - "requests": 25, - "servedRequests": 25 + "uptimePct": 98.30508474576271, + "latencyP50Ms": 100460, + "uptimeSample": 177, + "latencySample": 174, + "requests": 177, + "servedRequests": 174 } } ], @@ -6338,11 +6417,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 1780, - "uptimeSample": 13, - "latencySample": 13, - "requests": 13, - "servedRequests": 13 + "latencyP50Ms": 1974, + "uptimeSample": 16, + "latencySample": 16, + "requests": 16, + "servedRequests": 16 } } ], @@ -6389,11 +6468,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 701, - "uptimeSample": 3, - "latencySample": 3, - "requests": 3, - "servedRequests": 3 + "latencyP50Ms": 832, + "uptimeSample": 9, + "latencySample": 9, + "requests": 9, + "servedRequests": 9 } } ], @@ -6439,12 +6518,12 @@ }, "health": { "window": "30d", - "uptimePct": 97.72727272727273, - "latencyP50Ms": 1083, - "uptimeSample": 88, - "latencySample": 86, - "requests": 89, - "servedRequests": 86 + "uptimePct": 98.3739837398374, + "latencyP50Ms": 1069, + "uptimeSample": 123, + "latencySample": 121, + "requests": 124, + "servedRequests": 121 } } ], @@ -6617,11 +6696,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 5852, - "uptimeSample": 8, - "latencySample": 8, - "requests": 10, - "servedRequests": 8 + "latencyP50Ms": 4257, + "uptimeSample": 4, + "latencySample": 4, + "requests": 5, + "servedRequests": 4 } } ], @@ -6667,11 +6746,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 219, - "uptimeSample": 1, - "latencySample": 1, - "requests": 1, - "servedRequests": 1 + "latencyP50Ms": 82, + "uptimeSample": 25, + "latencySample": 25, + "requests": 25, + "servedRequests": 25 } }, { @@ -6732,11 +6811,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 335, - "uptimeSample": 137, - "latencySample": 137, - "requests": 137, - "servedRequests": 137 + "latencyP50Ms": 330, + "uptimeSample": 171, + "latencySample": 171, + "requests": 171, + "servedRequests": 171 } }, { @@ -6793,6 +6872,15 @@ "name": "Raccoon", "kind": "anonymous", "artworkKey": "raccoon" + }, + "health": { + "window": "30d", + "uptimePct": 100, + "latencyP50Ms": 55, + "uptimeSample": 39, + "latencySample": 39, + "requests": 39, + "servedRequests": 39 } }, { @@ -6853,11 +6941,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 296, - "uptimeSample": 2, - "latencySample": 2, - "requests": 2, - "servedRequests": 2 + "latencyP50Ms": 291, + "uptimeSample": 29, + "latencySample": 29, + "requests": 29, + "servedRequests": 29 } }, { @@ -6922,11 +7010,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 4312, - "uptimeSample": 284, - "latencySample": 284, - "requests": 290, - "servedRequests": 284 + "latencyP50Ms": 4350, + "uptimeSample": 270, + "latencySample": 270, + "requests": 276, + "servedRequests": 270 } } ], @@ -6972,12 +7060,12 @@ }, "health": { "window": "30d", - "uptimePct": 66.66666666666667, - "latencyP50Ms": 1674, - "uptimeSample": 3, - "latencySample": 2, - "requests": 3, - "servedRequests": 2 + "uptimePct": 0, + "latencyP50Ms": 0, + "uptimeSample": 1, + "latencySample": 0, + "requests": 1, + "servedRequests": 0 } }, { @@ -7043,6 +7131,15 @@ "name": "Lynx", "kind": "anonymous", "artworkKey": "lynx" + }, + "health": { + "window": "30d", + "uptimePct": 100, + "latencyP50Ms": 1972, + "uptimeSample": 6, + "latencySample": 6, + "requests": 6, + "servedRequests": 6 } }, { @@ -7127,15 +7224,6 @@ "name": "Giraffe", "kind": "anonymous", "artworkKey": "giraffe" - }, - "health": { - "window": "30d", - "uptimePct": 100, - "latencyP50Ms": 2699, - "uptimeSample": 3, - "latencySample": 3, - "requests": 3, - "servedRequests": 3 } }, { @@ -7404,11 +7492,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 5668, - "uptimeSample": 50, - "latencySample": 50, - "requests": 50, - "servedRequests": 50 + "latencyP50Ms": 5634, + "uptimeSample": 67, + "latencySample": 67, + "requests": 67, + "servedRequests": 67 } } ], @@ -7451,6 +7539,15 @@ "name": "Lynx", "kind": "anonymous", "artworkKey": "lynx" + }, + "health": { + "window": "30d", + "uptimePct": 100, + "latencyP50Ms": 7006, + "uptimeSample": 30, + "latencySample": 30, + "requests": 30, + "servedRequests": 30 } }, { @@ -7516,6 +7613,15 @@ "name": "Lynx", "kind": "anonymous", "artworkKey": "lynx" + }, + "health": { + "window": "30d", + "uptimePct": 100, + "latencyP50Ms": 6283, + "uptimeSample": 34, + "latencySample": 34, + "requests": 34, + "servedRequests": 34 } }, { @@ -7626,12 +7732,12 @@ }, "health": { "window": "30d", - "uptimePct": 89.1304347826087, - "latencyP50Ms": 13064, - "uptimeSample": 92, - "latencySample": 82, - "requests": 106, - "servedRequests": 82 + "uptimePct": 89.77272727272727, + "latencyP50Ms": 11333, + "uptimeSample": 88, + "latencySample": 79, + "requests": 95, + "servedRequests": 79 } }, { @@ -7653,7 +7759,7 @@ "latencyP50Ms": 18294, "uptimeSample": 18, "latencySample": 12, - "requests": 20, + "requests": 23, "servedRequests": 12 } } @@ -7677,36 +7783,13 @@ "from": { "model": "flat", "unit": "request", - "maxUsd": 0.0009, - "maxPer1kUsd": 0.9 + "maxUsd": 0.0015, + "maxPer1kUsd": 1.5 }, "failoverMaxUsd": 0.0036, "failoverMaxPer1kUsd": 3.6 }, "lanes": [ - { - "pricing": { - "model": "flat", - "unit": "request", - "maxUsd": 0.0009, - "maxPer1kUsd": 0.9 - }, - "source": { - "id": "anonymous-badger", - "name": "Badger", - "kind": "anonymous", - "artworkKey": "badger" - }, - "health": { - "window": "30d", - "uptimePct": 78.06463595839524, - "latencyP50Ms": 7220, - "uptimeSample": 5384, - "latencySample": 4203, - "requests": 5384, - "servedRequests": 4203 - } - }, { "pricing": { "model": "flat", @@ -7722,12 +7805,12 @@ }, "health": { "window": "30d", - "uptimePct": 100, - "latencyP50Ms": 1937, - "uptimeSample": 82, - "latencySample": 82, - "requests": 82, - "servedRequests": 82 + "uptimePct": 99.98065015479877, + "latencyP50Ms": 922, + "uptimeSample": 5168, + "latencySample": 5167, + "requests": 5168, + "servedRequests": 5167 } }, { @@ -7745,12 +7828,12 @@ }, "health": { "window": "30d", - "uptimePct": 91.71875, - "latencyP50Ms": 1808, - "uptimeSample": 640, - "latencySample": 587, - "requests": 932, - "servedRequests": 587 + "uptimePct": 89.27125506072875, + "latencyP50Ms": 2473, + "uptimeSample": 494, + "latencySample": 441, + "requests": 786, + "servedRequests": 441 } }, { @@ -7797,8 +7880,8 @@ "from": { "model": "flat", "unit": "request", - "maxUsd": 0.0015, - "maxPer1kUsd": 1.5 + "maxUsd": 0.00144, + "maxPer1kUsd": 1.44 }, "failoverMaxUsd": 0.018, "failoverMaxPer1kUsd": 18 @@ -7808,46 +7891,46 @@ "pricing": { "model": "flat", "unit": "request", - "maxUsd": 0.0015, - "maxPer1kUsd": 1.5 + "maxUsd": 0.00144, + "maxPer1kUsd": 1.44 }, "source": { - "id": "anonymous-lynx", - "name": "Lynx", + "id": "anonymous-badger", + "name": "Badger", "kind": "anonymous", - "artworkKey": "lynx" + "artworkKey": "badger" }, "health": { "window": "30d", - "uptimePct": 100, - "latencyP50Ms": 2112, - "uptimeSample": 8, - "latencySample": 8, - "requests": 8, - "servedRequests": 8 + "uptimePct": 97.74358974358974, + "latencyP50Ms": 2046, + "uptimeSample": 975, + "latencySample": 953, + "requests": 976, + "servedRequests": 953 } }, { "pricing": { "model": "flat", "unit": "request", - "maxUsd": 0.00144, - "maxPer1kUsd": 1.44 + "maxUsd": 0.0015, + "maxPer1kUsd": 1.5 }, "source": { - "id": "anonymous-badger", - "name": "Badger", + "id": "anonymous-lynx", + "name": "Lynx", "kind": "anonymous", - "artworkKey": "badger" + "artworkKey": "lynx" }, "health": { "window": "30d", - "uptimePct": 92.9245283018868, - "latencyP50Ms": 3337, - "uptimeSample": 212, - "latencySample": 197, - "requests": 212, - "servedRequests": 197 + "uptimePct": 100, + "latencyP50Ms": 2306, + "uptimeSample": 19, + "latencySample": 19, + "requests": 19, + "servedRequests": 19 } }, { @@ -7865,12 +7948,12 @@ }, "health": { "window": "30d", - "uptimePct": 98.54014598540147, + "uptimePct": 100, "latencyP50Ms": 2812, - "uptimeSample": 137, - "latencySample": 135, - "requests": 137, - "servedRequests": 135 + "uptimeSample": 25, + "latencySample": 25, + "requests": 25, + "servedRequests": 25 } }, { @@ -7930,12 +8013,12 @@ }, "health": { "window": "30d", - "uptimePct": 69.80319803198032, - "latencyP50Ms": 3342, - "uptimeSample": 1626, - "latencySample": 1135, - "requests": 1631, - "servedRequests": 1135 + "uptimePct": 77.06909643128321, + "latencyP50Ms": 3844, + "uptimeSample": 2634, + "latencySample": 2030, + "requests": 2648, + "servedRequests": 2030 } }, { @@ -7953,12 +8036,12 @@ }, "health": { "window": "30d", - "uptimePct": 97.86729857819905, - "latencyP50Ms": 3588, - "uptimeSample": 844, - "latencySample": 826, - "requests": 844, - "servedRequests": 826 + "uptimePct": 96.44859813084112, + "latencyP50Ms": 4202, + "uptimeSample": 2140, + "latencySample": 2064, + "requests": 2140, + "servedRequests": 2064 } }, { @@ -7976,12 +8059,12 @@ }, "health": { "window": "30d", - "uptimePct": 96.84418145956607, - "latencyP50Ms": 3863, - "uptimeSample": 507, - "latencySample": 491, - "requests": 509, - "servedRequests": 491 + "uptimePct": 96.96969696969697, + "latencyP50Ms": 3645, + "uptimeSample": 396, + "latencySample": 384, + "requests": 397, + "servedRequests": 384 } } ], @@ -8032,11 +8115,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 4208, - "uptimeSample": 3, - "latencySample": 3, - "requests": 3, - "servedRequests": 3 + "latencyP50Ms": 3463, + "uptimeSample": 2080, + "latencySample": 2080, + "requests": 2080, + "servedRequests": 2080 } } ], @@ -8086,12 +8169,12 @@ }, "health": { "window": "30d", - "uptimePct": 98.18181818181819, - "latencyP50Ms": 34513, - "uptimeSample": 55, - "latencySample": 54, - "requests": 55, - "servedRequests": 54 + "uptimePct": 98.6842105263158, + "latencyP50Ms": 33678, + "uptimeSample": 76, + "latencySample": 75, + "requests": 76, + "servedRequests": 75 } } ], @@ -8137,12 +8220,12 @@ }, "health": { "window": "30d", - "uptimePct": 100, - "latencyP50Ms": 6798, - "uptimeSample": 24, - "latencySample": 24, - "requests": 24, - "servedRequests": 24 + "uptimePct": 99.36305732484077, + "latencyP50Ms": 6168, + "uptimeSample": 157, + "latencySample": 156, + "requests": 157, + "servedRequests": 156 } }, { @@ -8160,12 +8243,12 @@ }, "health": { "window": "30d", - "uptimePct": 98.03586678052946, - "latencyP50Ms": 6667, - "uptimeSample": 1171, - "latencySample": 1148, - "requests": 1173, - "servedRequests": 1148 + "uptimePct": 97.35849056603773, + "latencyP50Ms": 4688, + "uptimeSample": 795, + "latencySample": 774, + "requests": 797, + "servedRequests": 774 } } ], @@ -8211,12 +8294,12 @@ }, "health": { "window": "30d", - "uptimePct": 85.71428571428571, - "latencyP50Ms": 10496, - "uptimeSample": 7, - "latencySample": 6, - "requests": 7, - "servedRequests": 6 + "uptimePct": 100, + "latencyP50Ms": 10200, + "uptimeSample": 10, + "latencySample": 10, + "requests": 10, + "servedRequests": 10 } }, { @@ -8254,7 +8337,7 @@ "slug": "instagram.search_hashtag", "category": "social", "name": "Instagram Hashtag Search", - "description": "Search posts under an Instagram hashtag through a web search index rather than Instagram's own hashtag feed. That is what lets it filter by date and media type and return reels whose like counts have settled, and it is also why results skew older (median around three months) and stop at roughly 110 per hashtag. For Instagram's own live ranking of a tag use instagram.hashtag_top_posts, and for the chronological feed use instagram.hashtag_recent_posts.", + "description": "Search posts under an Instagram hashtag through a web search index rather than Instagram's own hashtag feed. That is what lets it filter by date and media type and return reels whose like counts have settled, and it is also why results skew older (median around three months) and stop at roughly 110 per hashtag. If that web search index is unavailable, a first-page request that sets no date and no media type is served from Instagram's own live top feed instead. For Instagram's own live ranking of a tag use instagram.hashtag_top_posts, and for the chronological feed use instagram.hashtag_recent_posts.", "method": "POST", "path": "/v1/run/instagram.search_hashtag", "provider": "AnyAPI", @@ -8268,8 +8351,8 @@ "maxUsd": 0.002, "maxPer1kUsd": 2 }, - "failoverMaxUsd": 0.002, - "failoverMaxPer1kUsd": 2 + "failoverMaxUsd": 0.00312, + "failoverMaxPer1kUsd": 3.12 }, "lanes": [ { @@ -8287,18 +8370,32 @@ }, "health": { "window": "30d", - "uptimePct": 97.21337579617834, - "latencyP50Ms": 4982, - "uptimeSample": 1256, - "latencySample": 1221, - "requests": 1257, - "servedRequests": 1221 + "uptimePct": 97.26541554959786, + "latencyP50Ms": 5036, + "uptimeSample": 1865, + "latencySample": 1814, + "requests": 1866, + "servedRequests": 1814 + } + }, + { + "pricing": { + "model": "flat", + "unit": "request", + "maxUsd": 0.00312, + "maxPer1kUsd": 3.12 + }, + "source": { + "id": "anonymous-lynx", + "name": "Lynx", + "kind": "anonymous", + "artworkKey": "lynx" } } ], "tryEligible": true, "tryMaxItems": 3, - "failover": false + "failover": true }, { "id": "instagram.search_profiles", @@ -8338,12 +8435,12 @@ }, "health": { "window": "30d", - "uptimePct": 86.79245283018868, - "latencyP50Ms": 10166, - "uptimeSample": 106, - "latencySample": 92, - "requests": 106, - "servedRequests": 92 + "uptimePct": 94.3089430894309, + "latencyP50Ms": 10936, + "uptimeSample": 246, + "latencySample": 232, + "requests": 246, + "servedRequests": 232 } }, { @@ -8409,6 +8506,15 @@ "name": "Tiger", "kind": "anonymous", "artworkKey": "tiger" + }, + "health": { + "window": "30d", + "uptimePct": 100, + "latencyP50Ms": 3296, + "uptimeSample": 1, + "latencySample": 1, + "requests": 1, + "servedRequests": 1 } } ], @@ -8451,6 +8557,15 @@ "name": "Lynx", "kind": "anonymous", "artworkKey": "lynx" + }, + "health": { + "window": "30d", + "uptimePct": 100, + "latencyP50Ms": 2642, + "uptimeSample": 1, + "latencySample": 1, + "requests": 1, + "servedRequests": 1 } }, { @@ -8520,11 +8635,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 8702, - "uptimeSample": 3, - "latencySample": 3, - "requests": 3, - "servedRequests": 3 + "latencyP50Ms": 6342, + "uptimeSample": 14, + "latencySample": 14, + "requests": 14, + "servedRequests": 14 } }, { @@ -8542,12 +8657,12 @@ }, "health": { "window": "30d", - "uptimePct": 90, - "latencyP50Ms": 7614, - "uptimeSample": 30, - "latencySample": 27, - "requests": 32, - "servedRequests": 27 + "uptimePct": 100, + "latencyP50Ms": 7765, + "uptimeSample": 19, + "latencySample": 19, + "requests": 21, + "servedRequests": 19 } }, { @@ -8566,11 +8681,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 4023, - "uptimeSample": 5, - "latencySample": 5, - "requests": 5, - "servedRequests": 5 + "latencyP50Ms": 6599, + "uptimeSample": 2, + "latencySample": 2, + "requests": 2, + "servedRequests": 2 } } ], @@ -8617,11 +8732,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 2844, - "uptimeSample": 20, - "latencySample": 20, - "requests": 20, - "servedRequests": 20 + "latencyP50Ms": 2887, + "uptimeSample": 23, + "latencySample": 23, + "requests": 23, + "servedRequests": 23 } } ], @@ -8732,12 +8847,12 @@ }, "health": { "window": "30d", - "uptimePct": 86.74653687757394, - "latencyP50Ms": 1325, - "uptimeSample": 2671, - "latencySample": 2317, - "requests": 2671, - "servedRequests": 2317 + "uptimePct": 82.65625, + "latencyP50Ms": 1316, + "uptimeSample": 3840, + "latencySample": 3174, + "requests": 3840, + "servedRequests": 3174 } }, { @@ -8756,11 +8871,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 3021, - "uptimeSample": 1270, - "latencySample": 1270, - "requests": 1270, - "servedRequests": 1270 + "latencyP50Ms": 3585, + "uptimeSample": 2054, + "latencySample": 2054, + "requests": 2054, + "servedRequests": 2054 } }, { @@ -8778,12 +8893,12 @@ }, "health": { "window": "30d", - "uptimePct": 98.68023095958208, - "latencyP50Ms": 1873, - "uptimeSample": 7274, - "latencySample": 7178, - "requests": 7274, - "servedRequests": 7178 + "uptimePct": 98.69661674986135, + "latencyP50Ms": 1870, + "uptimeSample": 7212, + "latencySample": 7118, + "requests": 7212, + "servedRequests": 7118 } }, { @@ -8801,12 +8916,12 @@ }, "health": { "window": "30d", - "uptimePct": 99.82307843522705, - "latencyP50Ms": 4282, - "uptimeSample": 5087, - "latencySample": 5078, - "requests": 5117, - "servedRequests": 5078 + "uptimePct": 99.82304364923318, + "latencyP50Ms": 4280, + "uptimeSample": 5086, + "latencySample": 5077, + "requests": 5116, + "servedRequests": 5077 } }, { @@ -8875,12 +8990,12 @@ }, "health": { "window": "30d", - "uptimePct": 94.40654843110505, - "latencyP50Ms": 764, - "uptimeSample": 733, - "latencySample": 692, - "requests": 733, - "servedRequests": 692 + "uptimePct": 96.58371994938844, + "latencyP50Ms": 731, + "uptimeSample": 7113, + "latencySample": 6870, + "requests": 7113, + "servedRequests": 6870 } }, { @@ -8899,11 +9014,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 2221, - "uptimeSample": 41, - "latencySample": 41, - "requests": 41, - "servedRequests": 41 + "latencyP50Ms": 2173, + "uptimeSample": 243, + "latencySample": 243, + "requests": 243, + "servedRequests": 243 } }, { @@ -8921,12 +9036,12 @@ }, "health": { "window": "30d", - "uptimePct": 98.67549668874172, - "latencyP50Ms": 2750, - "uptimeSample": 3926, - "latencySample": 3874, - "requests": 3926, - "servedRequests": 3874 + "uptimePct": 98.71926229508196, + "latencyP50Ms": 2744, + "uptimeSample": 3904, + "latencySample": 3854, + "requests": 3904, + "servedRequests": 3854 } }, { @@ -9063,11 +9178,11 @@ }, "health": { "window": "30d", - "uptimePct": 100, + "uptimePct": 50, "latencyP50Ms": 991, - "uptimeSample": 1, + "uptimeSample": 2, "latencySample": 1, - "requests": 1, + "requests": 2, "servedRequests": 1 } } @@ -9119,11 +9234,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 9591, - "uptimeSample": 34, - "latencySample": 34, - "requests": 34, - "servedRequests": 34 + "latencyP50Ms": 9734, + "uptimeSample": 43, + "latencySample": 43, + "requests": 43, + "servedRequests": 43 } } ], @@ -9170,11 +9285,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 1552, - "uptimeSample": 26, - "latencySample": 26, - "requests": 27, - "servedRequests": 26 + "latencyP50Ms": 1502, + "uptimeSample": 25, + "latencySample": 25, + "requests": 30, + "servedRequests": 25 } } ], @@ -9226,10 +9341,10 @@ "window": "30d", "uptimePct": 100, "latencyP50Ms": 6315, - "uptimeSample": 2, - "latencySample": 2, - "requests": 2, - "servedRequests": 2 + "uptimeSample": 4, + "latencySample": 4, + "requests": 4, + "servedRequests": 4 } } ], @@ -9280,11 +9395,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 6630, - "uptimeSample": 144, - "latencySample": 144, - "requests": 144, - "servedRequests": 144 + "latencyP50Ms": 6176, + "uptimeSample": 109, + "latencySample": 109, + "requests": 109, + "servedRequests": 109 } }, { @@ -9373,12 +9488,12 @@ }, "health": { "window": "30d", - "uptimePct": 99.65753424657534, - "latencyP50Ms": 9272, - "uptimeSample": 584, - "latencySample": 582, - "requests": 584, - "servedRequests": 582 + "uptimePct": 99.2619926199262, + "latencyP50Ms": 8864, + "uptimeSample": 542, + "latencySample": 538, + "requests": 542, + "servedRequests": 538 } } ], @@ -9423,12 +9538,12 @@ }, "health": { "window": "30d", - "uptimePct": 100, - "latencyP50Ms": 2150, - "uptimeSample": 10, - "latencySample": 10, - "requests": 10, - "servedRequests": 10 + "uptimePct": 97.61904761904762, + "latencyP50Ms": 2074, + "uptimeSample": 42, + "latencySample": 41, + "requests": 42, + "servedRequests": 41 } }, { @@ -9449,11 +9564,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 5804, - "uptimeSample": 119, - "latencySample": 119, - "requests": 119, - "servedRequests": 119 + "latencyP50Ms": 5920, + "uptimeSample": 110, + "latencySample": 110, + "requests": 110, + "servedRequests": 110 } } ], @@ -9567,11 +9682,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 1765, - "uptimeSample": 9, - "latencySample": 9, - "requests": 9, - "servedRequests": 9 + "latencyP50Ms": 2257, + "uptimeSample": 29, + "latencySample": 29, + "requests": 29, + "servedRequests": 29 } }, { @@ -9637,12 +9752,12 @@ }, "health": { "window": "30d", - "uptimePct": 99.55357142857143, - "latencyP50Ms": 8754, - "uptimeSample": 224, - "latencySample": 223, - "requests": 224, - "servedRequests": 223 + "uptimePct": 99.34210526315789, + "latencyP50Ms": 10443, + "uptimeSample": 152, + "latencySample": 151, + "requests": 152, + "servedRequests": 151 } } ], @@ -9693,11 +9808,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 9720, - "uptimeSample": 413, - "latencySample": 413, - "requests": 413, - "servedRequests": 413 + "latencyP50Ms": 9644, + "uptimeSample": 459, + "latencySample": 459, + "requests": 459, + "servedRequests": 459 } } ], @@ -9744,11 +9859,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 1085, - "uptimeSample": 2, - "latencySample": 2, - "requests": 2, - "servedRequests": 2 + "latencyP50Ms": 2768, + "uptimeSample": 23, + "latencySample": 23, + "requests": 23, + "servedRequests": 23 } }, { @@ -9899,11 +10014,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 1722, - "uptimeSample": 17, - "latencySample": 17, - "requests": 17, - "servedRequests": 17 + "latencyP50Ms": 1958, + "uptimeSample": 60, + "latencySample": 60, + "requests": 60, + "servedRequests": 60 } }, { @@ -9925,10 +10040,10 @@ "window": "30d", "uptimePct": 100, "latencyP50Ms": 4812, - "uptimeSample": 87, - "latencySample": 87, - "requests": 89, - "servedRequests": 87 + "uptimeSample": 85, + "latencySample": 85, + "requests": 87, + "servedRequests": 85 } }, { @@ -9949,11 +10064,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 5700, - "uptimeSample": 6, - "latencySample": 6, - "requests": 6, - "servedRequests": 6 + "latencyP50Ms": 5300, + "uptimeSample": 10, + "latencySample": 10, + "requests": 10, + "servedRequests": 10 } } ], @@ -10000,11 +10115,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 3621, - "uptimeSample": 1, - "latencySample": 1, - "requests": 1, - "servedRequests": 1 + "latencyP50Ms": 3336, + "uptimeSample": 24, + "latencySample": 24, + "requests": 24, + "servedRequests": 24 } }, { @@ -10126,12 +10241,12 @@ }, "health": { "window": "30d", - "uptimePct": 100, - "latencyP50Ms": 2926, - "uptimeSample": 8, - "latencySample": 8, - "requests": 8, - "servedRequests": 8 + "uptimePct": 99.8570611778159, + "latencyP50Ms": 3093, + "uptimeSample": 3498, + "latencySample": 3493, + "requests": 3498, + "servedRequests": 3493 } }, { @@ -10146,6 +10261,15 @@ "name": "Honeybee", "kind": "anonymous", "artworkKey": "honeybee" + }, + "health": { + "window": "30d", + "uptimePct": 80, + "latencyP50Ms": 3782, + "uptimeSample": 5, + "latencySample": 4, + "requests": 5, + "servedRequests": 4 } } ], @@ -10192,11 +10316,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 2765, - "uptimeSample": 2, - "latencySample": 2, - "requests": 2, - "servedRequests": 2 + "latencyP50Ms": 3028, + "uptimeSample": 11, + "latencySample": 11, + "requests": 11, + "servedRequests": 11 } }, { @@ -10218,10 +10342,10 @@ "window": "30d", "uptimePct": 100, "latencyP50Ms": 5373, - "uptimeSample": 11, - "latencySample": 11, - "requests": 11, - "servedRequests": 11 + "uptimeSample": 9, + "latencySample": 9, + "requests": 9, + "servedRequests": 9 } } ], @@ -10268,11 +10392,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 3214, - "uptimeSample": 2, - "latencySample": 2, - "requests": 2, - "servedRequests": 2 + "latencyP50Ms": 1797, + "uptimeSample": 5, + "latencySample": 5, + "requests": 5, + "servedRequests": 5 } }, { @@ -10293,11 +10417,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 6219, - "uptimeSample": 127, - "latencySample": 127, - "requests": 127, - "servedRequests": 127 + "latencyP50Ms": 6284, + "uptimeSample": 66, + "latencySample": 66, + "requests": 66, + "servedRequests": 66 } }, { @@ -10359,12 +10483,12 @@ }, "health": { "window": "30d", - "uptimePct": 59.375, - "latencyP50Ms": 4482, - "uptimeSample": 32, - "latencySample": 19, - "requests": 36, - "servedRequests": 19 + "uptimePct": 81.81818181818181, + "latencyP50Ms": 7444, + "uptimeSample": 11, + "latencySample": 9, + "requests": 11, + "servedRequests": 9 } }, { @@ -10383,11 +10507,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 1401, - "uptimeSample": 82, - "latencySample": 82, - "requests": 83, - "servedRequests": 82 + "latencyP50Ms": 1059, + "uptimeSample": 2, + "latencySample": 2, + "requests": 2, + "servedRequests": 2 } } ], @@ -10430,6 +10554,15 @@ "name": "Hedgehog", "kind": "anonymous", "artworkKey": "hedgehog" + }, + "health": { + "window": "30d", + "uptimePct": 100, + "latencyP50Ms": 912, + "uptimeSample": 28, + "latencySample": 28, + "requests": 28, + "servedRequests": 28 } }, { @@ -10450,11 +10583,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 4138, - "uptimeSample": 158, - "latencySample": 158, - "requests": 158, - "servedRequests": 158 + "latencyP50Ms": 4225, + "uptimeSample": 151, + "latencySample": 151, + "requests": 151, + "servedRequests": 151 } } ], @@ -10500,12 +10633,12 @@ }, "health": { "window": "30d", - "uptimePct": 99.54941423851007, - "latencyP50Ms": 3498, - "uptimeSample": 3329, - "latencySample": 3314, - "requests": 3329, - "servedRequests": 3314 + "uptimePct": 99.64994165694283, + "latencyP50Ms": 3240, + "uptimeSample": 4285, + "latencySample": 4270, + "requests": 4285, + "servedRequests": 4270 } }, { @@ -10575,11 +10708,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 3191, - "uptimeSample": 307, - "latencySample": 307, - "requests": 307, - "servedRequests": 307 + "latencyP50Ms": 3122, + "uptimeSample": 1379, + "latencySample": 1379, + "requests": 1379, + "servedRequests": 1379 } }, { @@ -10734,11 +10867,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 12232, - "uptimeSample": 8, - "latencySample": 8, - "requests": 8, - "servedRequests": 8 + "latencyP50Ms": 10649, + "uptimeSample": 2, + "latencySample": 2, + "requests": 2, + "servedRequests": 2 } } ], @@ -10783,12 +10916,12 @@ }, "health": { "window": "30d", - "uptimePct": 97.94520547945206, - "latencyP50Ms": 788, - "uptimeSample": 146, - "latencySample": 143, - "requests": 146, - "servedRequests": 143 + "uptimePct": 97.95918367346938, + "latencyP50Ms": 789, + "uptimeSample": 147, + "latencySample": 144, + "requests": 147, + "servedRequests": 144 } } ], @@ -10837,12 +10970,12 @@ }, "health": { "window": "30d", - "uptimePct": 85.56149732620321, - "latencyP50Ms": 51440, - "uptimeSample": 374, - "latencySample": 320, - "requests": 374, - "servedRequests": 320 + "uptimePct": 86.64987405541562, + "latencyP50Ms": 53698, + "uptimeSample": 397, + "latencySample": 344, + "requests": 397, + "servedRequests": 344 } } ], @@ -10889,11 +11022,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 1892, - "uptimeSample": 25, - "latencySample": 25, - "requests": 25, - "servedRequests": 25 + "latencyP50Ms": 2305, + "uptimeSample": 119, + "latencySample": 119, + "requests": 119, + "servedRequests": 119 } }, { @@ -10912,11 +11045,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 1649, - "uptimeSample": 523, - "latencySample": 523, - "requests": 523, - "servedRequests": 523 + "latencyP50Ms": 1630, + "uptimeSample": 496, + "latencySample": 496, + "requests": 496, + "servedRequests": 496 } }, { @@ -10936,12 +11069,12 @@ }, "health": { "window": "30d", - "uptimePct": 99.17127071823204, - "latencyP50Ms": 17900, - "uptimeSample": 362, - "latencySample": 359, - "requests": 362, - "servedRequests": 359 + "uptimePct": 99.31972789115646, + "latencyP50Ms": 17722, + "uptimeSample": 294, + "latencySample": 292, + "requests": 294, + "servedRequests": 292 } } ], @@ -10963,17 +11096,54 @@ }, "pricing": { "from": { - "model": "linear", - "unit": "result", - "baseUsd": 0.00006, - "perUnitUsd": 0.00044, - "maxUsd": 0.0441, - "maxPer1kUsd": 44.1 + "model": "flat", + "unit": "request", + "maxUsd": 0.0035, + "maxPer1kUsd": 3.5 + }, + "failoverMaxUsd": 0.0441, + "failoverMaxPer1kUsd": 44.1 + }, + "lanes": [ + { + "pricing": { + "model": "flat", + "unit": "request", + "maxUsd": 0.0035, + "maxPer1kUsd": 3.5 + }, + "source": { + "id": "anonymous-ibex", + "name": "Ibex", + "kind": "anonymous", + "artworkKey": "ibex" + }, + "health": { + "window": "30d", + "uptimePct": 100, + "latencyP50Ms": 11922, + "uptimeSample": 1, + "latencySample": 1, + "requests": 1, + "servedRequests": 1 + } + }, + { + "pricing": { + "model": "linear", + "unit": "result", + "baseUsd": 0.00605, + "perUnitUsd": 0.00005, + "maxUsd": 0.0105, + "maxPer1kUsd": 10.5 + }, + "source": { + "id": "anonymous-giraffe-6dd45a57", + "name": "Giraffe", + "kind": "anonymous", + "artworkKey": "giraffe" + } }, - "failoverMaxUsd": 0.0441, - "failoverMaxPer1kUsd": 44.1 - }, - "lanes": [ { "pricing": { "model": "linear", @@ -10991,18 +11161,18 @@ }, "health": { "window": "30d", - "uptimePct": 99.93909866017053, - "latencyP50Ms": 7510, - "uptimeSample": 3284, - "latencySample": 3282, - "requests": 3284, - "servedRequests": 3282 + "uptimePct": 99.92190550566185, + "latencyP50Ms": 7497, + "uptimeSample": 2561, + "latencySample": 2559, + "requests": 2561, + "servedRequests": 2559 } } ], "tryEligible": true, "tryMaxItems": 3, - "failover": false + "failover": true }, { "id": "maps.search", @@ -11043,11 +11213,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 2671, - "uptimeSample": 19, - "latencySample": 19, - "requests": 19, - "servedRequests": 19 + "latencyP50Ms": 2270, + "uptimeSample": 30, + "latencySample": 30, + "requests": 30, + "servedRequests": 30 } }, { @@ -11066,11 +11236,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 2160, - "uptimeSample": 745, - "latencySample": 745, - "requests": 745, - "servedRequests": 745 + "latencyP50Ms": 2110, + "uptimeSample": 667, + "latencySample": 667, + "requests": 667, + "servedRequests": 667 } }, { @@ -11090,12 +11260,12 @@ }, "health": { "window": "30d", - "uptimePct": 99.57627118644068, - "latencyP50Ms": 15031, - "uptimeSample": 236, - "latencySample": 235, - "requests": 236, - "servedRequests": 235 + "uptimePct": 98.3739837398374, + "latencyP50Ms": 16721, + "uptimeSample": 246, + "latencySample": 242, + "requests": 246, + "servedRequests": 242 } } ], @@ -11141,11 +11311,11 @@ }, "health": { "window": "30d", - "uptimePct": 75, + "uptimePct": 100, "latencyP50Ms": 1334, - "uptimeSample": 4, + "uptimeSample": 3, "latencySample": 3, - "requests": 4, + "requests": 3, "servedRequests": 3 } } @@ -11640,6 +11810,15 @@ "name": "Dolphin", "kind": "anonymous", "artworkKey": "dolphin" + }, + "health": { + "window": "30d", + "uptimePct": 100, + "latencyP50Ms": 1896, + "uptimeSample": 1, + "latencySample": 1, + "requests": 1, + "servedRequests": 1 } } ], @@ -11736,11 +11915,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 1082, - "uptimeSample": 4, - "latencySample": 4, - "requests": 4, - "servedRequests": 4 + "latencyP50Ms": 1192, + "uptimeSample": 17, + "latencySample": 17, + "requests": 17, + "servedRequests": 17 } } ], @@ -11762,17 +11941,38 @@ }, "pricing": { "from": { - "model": "linear", - "unit": "result", - "baseUsd": 0.00006, - "perUnitUsd": 0.011, - "maxUsd": 0.0111, - "maxPer1kUsd": 11.1 + "model": "flat", + "unit": "request", + "maxUsd": 0.0036, + "maxPer1kUsd": 3.6 }, "failoverMaxUsd": 0.0111, "failoverMaxPer1kUsd": 11.1 }, "lanes": [ + { + "pricing": { + "model": "flat", + "unit": "request", + "maxUsd": 0.0036, + "maxPer1kUsd": 3.6 + }, + "source": { + "id": "anonymous-badger", + "name": "Badger", + "kind": "anonymous", + "artworkKey": "badger" + }, + "health": { + "window": "30d", + "uptimePct": 42.10526315789474, + "latencyP50Ms": 12766, + "uptimeSample": 38, + "latencySample": 16, + "requests": 38, + "servedRequests": 16 + } + }, { "pricing": { "model": "linear", @@ -11790,18 +11990,18 @@ }, "health": { "window": "30d", - "uptimePct": 96, - "latencyP50Ms": 18424, - "uptimeSample": 75, - "latencySample": 72, - "requests": 75, - "servedRequests": 72 + "uptimePct": 96.15384615384616, + "latencyP50Ms": 18531, + "uptimeSample": 78, + "latencySample": 75, + "requests": 78, + "servedRequests": 75 } } ], "tryEligible": true, "tryMaxItems": 3, - "failover": false + "failover": true }, { "id": "person.skip_trace", @@ -11842,6 +12042,15 @@ "name": "Octopus", "kind": "anonymous", "artworkKey": "octopus" + }, + "health": { + "window": "30d", + "uptimePct": 100, + "latencyP50Ms": 5761, + "uptimeSample": 1, + "latencySample": 1, + "requests": 1, + "servedRequests": 1 } } ], @@ -11888,11 +12097,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 2216, - "uptimeSample": 11, - "latencySample": 11, - "requests": 11, - "servedRequests": 11 + "latencyP50Ms": 2204, + "uptimeSample": 10, + "latencySample": 10, + "requests": 10, + "servedRequests": 10 } } ], @@ -12169,11 +12378,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 953, - "uptimeSample": 3, - "latencySample": 3, - "requests": 3, - "servedRequests": 3 + "latencyP50Ms": 983, + "uptimeSample": 24, + "latencySample": 24, + "requests": 24, + "servedRequests": 24 } } ], @@ -12219,11 +12428,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 569, - "uptimeSample": 1, - "latencySample": 1, - "requests": 1, - "servedRequests": 1 + "latencyP50Ms": 549, + "uptimeSample": 21, + "latencySample": 21, + "requests": 21, + "servedRequests": 21 } } ], @@ -12269,12 +12478,12 @@ }, "health": { "window": "30d", - "uptimePct": 97.68211920529801, - "latencyP50Ms": 2549, - "uptimeSample": 302, - "latencySample": 295, - "requests": 302, - "servedRequests": 295 + "uptimePct": 99.31972789115646, + "latencyP50Ms": 2540, + "uptimeSample": 294, + "latencySample": 292, + "requests": 294, + "servedRequests": 292 } } ], @@ -12325,11 +12534,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 3098, - "uptimeSample": 8, - "latencySample": 8, - "requests": 8, - "servedRequests": 8 + "latencyP50Ms": 3175, + "uptimeSample": 9, + "latencySample": 9, + "requests": 9, + "servedRequests": 9 } }, { @@ -12394,11 +12603,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 9711, - "uptimeSample": 1, - "latencySample": 1, - "requests": 2, - "servedRequests": 1 + "latencyP50Ms": 6890, + "uptimeSample": 9, + "latencySample": 9, + "requests": 10, + "servedRequests": 9 } } ], @@ -12467,36 +12676,13 @@ "from": { "model": "flat", "unit": "request", - "maxUsd": 0.0009, - "maxPer1kUsd": 0.9 + "maxUsd": 0.0012, + "maxPer1kUsd": 1.2 }, "failoverMaxUsd": 0.0036, "failoverMaxPer1kUsd": 3.6 }, "lanes": [ - { - "pricing": { - "model": "flat", - "unit": "request", - "maxUsd": 0.0009, - "maxPer1kUsd": 0.9 - }, - "source": { - "id": "anonymous-badger", - "name": "Badger", - "kind": "anonymous", - "artworkKey": "badger" - }, - "health": { - "window": "30d", - "uptimePct": 96.61556838542704, - "latencyP50Ms": 587, - "uptimeSample": 5023, - "latencySample": 4853, - "requests": 5026, - "servedRequests": 4853 - } - }, { "pricing": { "model": "flat", @@ -12512,12 +12698,12 @@ }, "health": { "window": "30d", - "uptimePct": 94.23076923076923, - "latencyP50Ms": 334, - "uptimeSample": 364, - "latencySample": 343, - "requests": 370, - "servedRequests": 343 + "uptimePct": 96.54605263157895, + "latencyP50Ms": 958, + "uptimeSample": 608, + "latencySample": 587, + "requests": 614, + "servedRequests": 587 } }, { @@ -12602,12 +12788,12 @@ }, "health": { "window": "30d", - "uptimePct": 98.45758354755785, - "latencyP50Ms": 2594, - "uptimeSample": 778, - "latencySample": 766, - "requests": 781, - "servedRequests": 766 + "uptimePct": 98.5042735042735, + "latencyP50Ms": 2367, + "uptimeSample": 936, + "latencySample": 922, + "requests": 936, + "servedRequests": 922 } }, { @@ -12627,10 +12813,10 @@ "window": "30d", "uptimePct": 100, "latencyP50Ms": 5565, - "uptimeSample": 91, - "latencySample": 91, - "requests": 114, - "servedRequests": 91 + "uptimeSample": 93, + "latencySample": 93, + "requests": 113, + "servedRequests": 93 } } ], @@ -12677,11 +12863,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 2062, - "uptimeSample": 20, - "latencySample": 20, - "requests": 20, - "servedRequests": 20 + "latencyP50Ms": 2219, + "uptimeSample": 27, + "latencySample": 27, + "requests": 27, + "servedRequests": 27 } } ], @@ -12728,11 +12914,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 339, - "uptimeSample": 5, - "latencySample": 5, - "requests": 5, - "servedRequests": 5 + "latencyP50Ms": 1175, + "uptimeSample": 161, + "latencySample": 161, + "requests": 161, + "servedRequests": 161 } }, { @@ -12772,36 +12958,13 @@ "from": { "model": "flat", "unit": "request", - "maxUsd": 0.0009, - "maxPer1kUsd": 0.9 + "maxUsd": 0.0012, + "maxPer1kUsd": 1.2 }, "failoverMaxUsd": 0.0036, "failoverMaxPer1kUsd": 3.6 }, "lanes": [ - { - "pricing": { - "model": "flat", - "unit": "request", - "maxUsd": 0.0009, - "maxPer1kUsd": 0.9 - }, - "source": { - "id": "anonymous-badger", - "name": "Badger", - "kind": "anonymous", - "artworkKey": "badger" - }, - "health": { - "window": "30d", - "uptimePct": 98.54694485842028, - "latencyP50Ms": 1609, - "uptimeSample": 2684, - "latencySample": 2645, - "requests": 2684, - "servedRequests": 2645 - } - }, { "pricing": { "model": "flat", @@ -12817,12 +12980,12 @@ }, "health": { "window": "30d", - "uptimePct": 100, - "latencyP50Ms": 1040, - "uptimeSample": 333, - "latencySample": 333, - "requests": 340, - "servedRequests": 333 + "uptimePct": 99.84472049689441, + "latencyP50Ms": 2335, + "uptimeSample": 644, + "latencySample": 643, + "requests": 676, + "servedRequests": 643 } }, { @@ -12841,11 +13004,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 9936, - "uptimeSample": 8, - "latencySample": 8, - "requests": 8, - "servedRequests": 8 + "latencyP50Ms": 8706, + "uptimeSample": 19, + "latencySample": 19, + "requests": 19, + "servedRequests": 19 } }, { @@ -12905,12 +13068,12 @@ }, "health": { "window": "30d", - "uptimePct": 94.4055944055944, - "latencyP50Ms": 403, - "uptimeSample": 143, - "latencySample": 135, - "requests": 190, - "servedRequests": 135 + "uptimePct": 98.125, + "latencyP50Ms": 1017, + "uptimeSample": 160, + "latencySample": 157, + "requests": 177, + "servedRequests": 157 } }, { @@ -12929,11 +13092,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 2006, - "uptimeSample": 108, - "latencySample": 108, - "requests": 108, - "servedRequests": 108 + "latencyP50Ms": 2292, + "uptimeSample": 18, + "latencySample": 18, + "requests": 18, + "servedRequests": 18 } }, { @@ -13002,12 +13165,12 @@ }, "health": { "window": "30d", - "uptimePct": 98.15852682145717, - "latencyP50Ms": 2146, - "uptimeSample": 1249, - "latencySample": 1226, - "requests": 1255, - "servedRequests": 1226 + "uptimePct": 97.81591263650546, + "latencyP50Ms": 2185, + "uptimeSample": 1282, + "latencySample": 1254, + "requests": 1285, + "servedRequests": 1254 } }, { @@ -13026,11 +13189,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 2068, - "uptimeSample": 297, - "latencySample": 297, - "requests": 300, - "servedRequests": 297 + "latencyP50Ms": 2106, + "uptimeSample": 174, + "latencySample": 174, + "requests": 180, + "servedRequests": 174 } } ], @@ -13076,12 +13239,35 @@ }, "health": { "window": "30d", - "uptimePct": 98.3739837398374, - "latencyP50Ms": 632, - "uptimeSample": 246, - "latencySample": 242, - "requests": 246, - "servedRequests": 242 + "uptimePct": 94.41997063142438, + "latencyP50Ms": 694, + "uptimeSample": 681, + "latencySample": 643, + "requests": 682, + "servedRequests": 643 + } + }, + { + "pricing": { + "model": "flat", + "unit": "request", + "maxUsd": 0.0012, + "maxPer1kUsd": 1.2 + }, + "source": { + "id": "anonymous-tiger", + "name": "Tiger", + "kind": "anonymous", + "artworkKey": "tiger" + }, + "health": { + "window": "30d", + "uptimePct": 100, + "latencyP50Ms": 1839, + "uptimeSample": 1, + "latencySample": 1, + "requests": 1, + "servedRequests": 1 } }, { @@ -13099,12 +13285,12 @@ }, "health": { "window": "30d", - "uptimePct": 99.44664031620553, - "latencyP50Ms": 1044, - "uptimeSample": 1265, - "latencySample": 1258, - "requests": 1265, - "servedRequests": 1258 + "uptimePct": 99.39341421143847, + "latencyP50Ms": 1022, + "uptimeSample": 1154, + "latencySample": 1147, + "requests": 1154, + "servedRequests": 1147 } }, { @@ -13174,11 +13360,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 1224, - "uptimeSample": 5, - "latencySample": 5, - "requests": 5, - "servedRequests": 5 + "latencyP50Ms": 1475, + "uptimeSample": 7, + "latencySample": 7, + "requests": 7, + "servedRequests": 7 } } ], @@ -13222,14 +13408,14 @@ "kind": "anonymous", "artworkKey": "tiger" }, - "health": { - "window": "30d", - "uptimePct": 100, - "latencyP50Ms": 803, - "uptimeSample": 11, - "latencySample": 11, - "requests": 11, - "servedRequests": 11 + "health": { + "window": "30d", + "uptimePct": 100, + "latencyP50Ms": 1556, + "uptimeSample": 19, + "latencySample": 19, + "requests": 19, + "servedRequests": 19 } } ], @@ -13276,11 +13462,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 820, - "uptimeSample": 5, - "latencySample": 5, - "requests": 10, - "servedRequests": 5 + "latencyP50Ms": 1162, + "uptimeSample": 4, + "latencySample": 4, + "requests": 4, + "servedRequests": 4 } }, { @@ -13299,11 +13485,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 1728, - "uptimeSample": 9, - "latencySample": 9, - "requests": 9, - "servedRequests": 9 + "latencyP50Ms": 2474, + "uptimeSample": 4, + "latencySample": 4, + "requests": 4, + "servedRequests": 4 } } ], @@ -13396,11 +13582,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 1074, - "uptimeSample": 1, - "latencySample": 1, - "requests": 19, - "servedRequests": 1 + "latencyP50Ms": 1276, + "uptimeSample": 40, + "latencySample": 40, + "requests": 58, + "servedRequests": 40 } } ], @@ -13548,12 +13734,12 @@ }, "health": { "window": "30d", - "uptimePct": 95.83333333333333, - "latencyP50Ms": 1891, - "uptimeSample": 24, - "latencySample": 23, - "requests": 24, - "servedRequests": 23 + "uptimePct": 98.9247311827957, + "latencyP50Ms": 2151, + "uptimeSample": 93, + "latencySample": 92, + "requests": 93, + "servedRequests": 92 } } ], @@ -13651,11 +13837,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 1166, - "uptimeSample": 34, - "latencySample": 34, - "requests": 34, - "servedRequests": 34 + "latencyP50Ms": 1283, + "uptimeSample": 40, + "latencySample": 40, + "requests": 40, + "servedRequests": 40 } } ], @@ -13762,11 +13948,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 9726, - "uptimeSample": 28, - "latencySample": 28, - "requests": 28, - "servedRequests": 28 + "latencyP50Ms": 7456, + "uptimeSample": 50, + "latencySample": 50, + "requests": 50, + "servedRequests": 50 } } ], @@ -13817,11 +14003,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 14400, - "uptimeSample": 14, - "latencySample": 14, - "requests": 14, - "servedRequests": 14 + "latencyP50Ms": 20846, + "uptimeSample": 19, + "latencySample": 19, + "requests": 19, + "servedRequests": 19 } } ], @@ -13871,12 +14057,12 @@ }, "health": { "window": "30d", - "uptimePct": 89.47368421052632, - "latencyP50Ms": 729, - "uptimeSample": 57, - "latencySample": 51, - "requests": 57, - "servedRequests": 51 + "uptimePct": 92.10526315789474, + "latencyP50Ms": 660, + "uptimeSample": 76, + "latencySample": 70, + "requests": 76, + "servedRequests": 70 } } ], @@ -13973,11 +14159,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 534, - "uptimeSample": 16, - "latencySample": 16, - "requests": 16, - "servedRequests": 16 + "latencyP50Ms": 554, + "uptimeSample": 21, + "latencySample": 21, + "requests": 21, + "servedRequests": 21 } } ], @@ -14079,11 +14265,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 572, - "uptimeSample": 31, - "latencySample": 31, - "requests": 31, - "servedRequests": 31 + "latencyP50Ms": 602, + "uptimeSample": 37, + "latencySample": 37, + "requests": 37, + "servedRequests": 37 } } ], @@ -14244,11 +14430,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 501, - "uptimeSample": 30, - "latencySample": 30, - "requests": 30, - "servedRequests": 30 + "latencyP50Ms": 438, + "uptimeSample": 27, + "latencySample": 27, + "requests": 27, + "servedRequests": 27 } } ], @@ -14299,11 +14485,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 411, - "uptimeSample": 385, - "latencySample": 385, - "requests": 385, - "servedRequests": 385 + "latencyP50Ms": 392, + "uptimeSample": 514, + "latencySample": 514, + "requests": 514, + "servedRequests": 514 } } ], @@ -14354,11 +14540,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 2797, - "uptimeSample": 15, - "latencySample": 15, - "requests": 15, - "servedRequests": 15 + "latencyP50Ms": 2053, + "uptimeSample": 17, + "latencySample": 17, + "requests": 17, + "servedRequests": 17 } } ], @@ -14408,12 +14594,12 @@ }, "health": { "window": "30d", - "uptimePct": 100, - "latencyP50Ms": 1266, - "uptimeSample": 13, - "latencySample": 13, - "requests": 13, - "servedRequests": 13 + "uptimePct": 96.875, + "latencyP50Ms": 1108, + "uptimeSample": 32, + "latencySample": 31, + "requests": 32, + "servedRequests": 31 } } ], @@ -14565,11 +14751,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 2893, - "uptimeSample": 10, - "latencySample": 10, - "requests": 10, - "servedRequests": 10 + "latencyP50Ms": 3216, + "uptimeSample": 14, + "latencySample": 14, + "requests": 14, + "servedRequests": 14 } } ], @@ -14674,11 +14860,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 12482, - "uptimeSample": 43, - "latencySample": 43, - "requests": 48, - "servedRequests": 43 + "latencyP50Ms": 12517, + "uptimeSample": 39, + "latencySample": 39, + "requests": 43, + "servedRequests": 39 } } ], @@ -15023,6 +15209,15 @@ "name": "Octopus", "kind": "anonymous", "artworkKey": "octopus" + }, + "health": { + "window": "30d", + "uptimePct": 100, + "latencyP50Ms": 2980, + "uptimeSample": 6, + "latencySample": 6, + "requests": 6, + "servedRequests": 6 } } ], @@ -15110,15 +15305,6 @@ "name": "Giraffe", "kind": "anonymous", "artworkKey": "giraffe" - }, - "health": { - "window": "30d", - "uptimePct": 100, - "latencyP50Ms": 3248, - "uptimeSample": 7, - "latencySample": 7, - "requests": 7, - "servedRequests": 7 } }, { @@ -15179,11 +15365,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 3183, - "uptimeSample": 11, - "latencySample": 11, - "requests": 11, - "servedRequests": 11 + "latencyP50Ms": 2688, + "uptimeSample": 10, + "latencySample": 10, + "requests": 10, + "servedRequests": 10 } }, { @@ -15243,12 +15429,12 @@ }, "health": { "window": "30d", - "uptimePct": 99.47089947089947, - "latencyP50Ms": 848, - "uptimeSample": 189, - "latencySample": 188, - "requests": 189, - "servedRequests": 188 + "uptimePct": 99.62121212121212, + "latencyP50Ms": 866, + "uptimeSample": 264, + "latencySample": 263, + "requests": 264, + "servedRequests": 263 } }, { @@ -15314,15 +15500,6 @@ "name": "Giraffe", "kind": "anonymous", "artworkKey": "giraffe" - }, - "health": { - "window": "30d", - "uptimePct": 100, - "latencyP50Ms": 1516, - "uptimeSample": 5, - "latencySample": 5, - "requests": 5, - "servedRequests": 5 } }, { @@ -15383,11 +15560,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 4550, - "uptimeSample": 2, - "latencySample": 2, - "requests": 2, - "servedRequests": 2 + "latencyP50Ms": 5073, + "uptimeSample": 4, + "latencySample": 4, + "requests": 4, + "servedRequests": 4 } }, { @@ -15512,12 +15689,12 @@ }, "health": { "window": "30d", - "uptimePct": 90, - "latencyP50Ms": 1706, - "uptimeSample": 20, - "latencySample": 18, - "requests": 20, - "servedRequests": 18 + "uptimePct": 83.33333333333333, + "latencyP50Ms": 1720, + "uptimeSample": 12, + "latencySample": 10, + "requests": 12, + "servedRequests": 10 } } ], @@ -15615,11 +15792,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 317, - "uptimeSample": 1, - "latencySample": 1, - "requests": 1, - "servedRequests": 1 + "latencyP50Ms": 2681, + "uptimeSample": 2, + "latencySample": 2, + "requests": 2, + "servedRequests": 2 } }, { @@ -15735,11 +15912,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 2093, - "uptimeSample": 8, - "latencySample": 8, - "requests": 8, - "servedRequests": 8 + "latencyP50Ms": 2071, + "uptimeSample": 9, + "latencySample": 9, + "requests": 9, + "servedRequests": 9 } }, { @@ -15873,12 +16050,12 @@ }, "health": { "window": "30d", - "uptimePct": 56.58914728682171, - "latencyP50Ms": 18201, - "uptimeSample": 129, - "latencySample": 73, - "requests": 129, - "servedRequests": 73 + "uptimePct": 58.59872611464968, + "latencyP50Ms": 17272, + "uptimeSample": 157, + "latencySample": 92, + "requests": 157, + "servedRequests": 92 } }, { @@ -15896,12 +16073,12 @@ }, "health": { "window": "30d", - "uptimePct": 98.61111111111111, - "latencyP50Ms": 1957, - "uptimeSample": 72, - "latencySample": 71, - "requests": 72, - "servedRequests": 71 + "uptimePct": 98.76543209876543, + "latencyP50Ms": 2109, + "uptimeSample": 81, + "latencySample": 80, + "requests": 81, + "servedRequests": 80 } }, { @@ -16029,11 +16206,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 697, - "uptimeSample": 2, - "latencySample": 2, - "requests": 2, - "servedRequests": 2 + "latencyP50Ms": 590, + "uptimeSample": 3, + "latencySample": 3, + "requests": 3, + "servedRequests": 3 } }, { @@ -16093,12 +16270,12 @@ }, "health": { "window": "30d", - "uptimePct": 95.39007092198581, - "latencyP50Ms": 10659, - "uptimeSample": 282, - "latencySample": 269, - "requests": 347, - "servedRequests": 269 + "uptimePct": 91.95933456561923, + "latencyP50Ms": 10556, + "uptimeSample": 1082, + "latencySample": 995, + "requests": 1166, + "servedRequests": 995 } }, { @@ -16116,12 +16293,12 @@ }, "health": { "window": "30d", - "uptimePct": 100, - "latencyP50Ms": 476, - "uptimeSample": 81, - "latencySample": 81, - "requests": 81, - "servedRequests": 81 + "uptimePct": 87.87878787878788, + "latencyP50Ms": 491, + "uptimeSample": 165, + "latencySample": 145, + "requests": 166, + "servedRequests": 145 } }, { @@ -16140,11 +16317,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 1080, - "uptimeSample": 2, - "latencySample": 2, - "requests": 2, - "servedRequests": 2 + "latencyP50Ms": 936, + "uptimeSample": 29, + "latencySample": 29, + "requests": 29, + "servedRequests": 29 } } ], @@ -16194,12 +16371,12 @@ }, "health": { "window": "30d", - "uptimePct": 100, - "latencyP50Ms": 7184, - "uptimeSample": 1, - "latencySample": 1, - "requests": 1, - "servedRequests": 1 + "uptimePct": 90, + "latencyP50Ms": 6439, + "uptimeSample": 10, + "latencySample": 9, + "requests": 10, + "servedRequests": 9 } }, { @@ -16216,6 +16393,15 @@ "name": "Tiger", "kind": "anonymous", "artworkKey": "tiger" + }, + "health": { + "window": "30d", + "uptimePct": 100, + "latencyP50Ms": 19788, + "uptimeSample": 1, + "latencySample": 1, + "requests": 1, + "servedRequests": 1 } } ], @@ -16262,11 +16448,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 3464, - "uptimeSample": 1, - "latencySample": 1, - "requests": 1, - "servedRequests": 1 + "latencyP50Ms": 2873, + "uptimeSample": 3, + "latencySample": 3, + "requests": 3, + "servedRequests": 3 } }, { @@ -16326,12 +16512,12 @@ }, "health": { "window": "30d", - "uptimePct": 100, - "latencyP50Ms": 2657, - "uptimeSample": 237, - "latencySample": 237, - "requests": 237, - "servedRequests": 237 + "uptimePct": 99.51690821256038, + "latencyP50Ms": 2667, + "uptimeSample": 1035, + "latencySample": 1030, + "requests": 1035, + "servedRequests": 1030 } }, { @@ -16346,6 +16532,15 @@ "name": "Giraffe", "kind": "anonymous", "artworkKey": "giraffe" + }, + "health": { + "window": "30d", + "uptimePct": 100, + "latencyP50Ms": 3066, + "uptimeSample": 14, + "latencySample": 14, + "requests": 14, + "servedRequests": 14 } }, { @@ -16402,15 +16597,15 @@ "name": "Giraffe", "kind": "anonymous", "artworkKey": "giraffe" - }, - "health": { - "window": "30d", - "uptimePct": 96.15384615384616, - "latencyP50Ms": 4845, - "uptimeSample": 26, - "latencySample": 25, - "requests": 26, - "servedRequests": 25 + }, + "health": { + "window": "30d", + "uptimePct": 98, + "latencyP50Ms": 5129, + "uptimeSample": 50, + "latencySample": 49, + "requests": 50, + "servedRequests": 49 } }, { @@ -16479,12 +16674,12 @@ }, "health": { "window": "30d", - "uptimePct": 100, - "latencyP50Ms": 1652, - "uptimeSample": 532, - "latencySample": 532, - "requests": 532, - "servedRequests": 532 + "uptimePct": 99.5798319327731, + "latencyP50Ms": 1666, + "uptimeSample": 714, + "latencySample": 711, + "requests": 714, + "servedRequests": 711 } }, { @@ -16499,6 +16694,15 @@ "name": "Giraffe", "kind": "anonymous", "artworkKey": "giraffe" + }, + "health": { + "window": "30d", + "uptimePct": 100, + "latencyP50Ms": 4805, + "uptimeSample": 3, + "latencySample": 3, + "requests": 3, + "servedRequests": 3 } }, { @@ -16558,12 +16762,12 @@ }, "health": { "window": "30d", - "uptimePct": 99.38900203665987, - "latencyP50Ms": 4045, - "uptimeSample": 491, - "latencySample": 488, - "requests": 491, - "servedRequests": 488 + "uptimePct": 99.45945945945945, + "latencyP50Ms": 4091, + "uptimeSample": 740, + "latencySample": 736, + "requests": 740, + "servedRequests": 736 } }, { @@ -16633,11 +16837,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 2156, - "uptimeSample": 13, - "latencySample": 13, - "requests": 13, - "servedRequests": 13 + "latencyP50Ms": 1842, + "uptimeSample": 22, + "latencySample": 22, + "requests": 22, + "servedRequests": 22 } }, { @@ -16874,12 +17078,12 @@ }, "health": { "window": "30d", - "uptimePct": 100, - "latencyP50Ms": 5395, - "uptimeSample": 21, - "latencySample": 21, - "requests": 21, - "servedRequests": 21 + "uptimePct": 96.42857142857143, + "latencyP50Ms": 5456, + "uptimeSample": 28, + "latencySample": 27, + "requests": 28, + "servedRequests": 27 } } ], @@ -17000,12 +17204,12 @@ }, "health": { "window": "30d", - "uptimePct": 100, - "latencyP50Ms": 2827, - "uptimeSample": 7, - "latencySample": 7, - "requests": 8, - "servedRequests": 7 + "uptimePct": 96.7741935483871, + "latencyP50Ms": 3186, + "uptimeSample": 31, + "latencySample": 30, + "requests": 53, + "servedRequests": 30 } }, { @@ -17024,11 +17228,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 779, - "uptimeSample": 7, - "latencySample": 7, - "requests": 8, - "servedRequests": 7 + "latencyP50Ms": 742, + "uptimeSample": 9, + "latencySample": 9, + "requests": 33, + "servedRequests": 9 } }, { @@ -17047,11 +17251,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 5089, - "uptimeSample": 1, - "latencySample": 1, - "requests": 1, - "servedRequests": 1 + "latencyP50Ms": 3864, + "uptimeSample": 24, + "latencySample": 24, + "requests": 24, + "servedRequests": 24 } }, { @@ -17111,12 +17315,12 @@ }, "health": { "window": "30d", - "uptimePct": 82.70547945205479, - "latencyP50Ms": 2509, - "uptimeSample": 584, - "latencySample": 483, - "requests": 584, - "servedRequests": 483 + "uptimePct": 85.32863849765258, + "latencyP50Ms": 2259, + "uptimeSample": 852, + "latencySample": 727, + "requests": 852, + "servedRequests": 727 } }, { @@ -17135,11 +17339,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 915, - "uptimeSample": 309, - "latencySample": 309, - "requests": 309, - "servedRequests": 309 + "latencyP50Ms": 916, + "uptimeSample": 326, + "latencySample": 326, + "requests": 326, + "servedRequests": 326 } }, { @@ -17200,11 +17404,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 590, - "uptimeSample": 3, - "latencySample": 3, - "requests": 3, - "servedRequests": 3 + "latencyP50Ms": 626, + "uptimeSample": 5, + "latencySample": 5, + "requests": 5, + "servedRequests": 5 } }, { @@ -17265,11 +17469,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 2445, - "uptimeSample": 63, - "latencySample": 63, - "requests": 63, - "servedRequests": 63 + "latencyP50Ms": 1677, + "uptimeSample": 169, + "latencySample": 169, + "requests": 169, + "servedRequests": 169 } }, { @@ -17334,11 +17538,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 17355, - "uptimeSample": 1, - "latencySample": 1, - "requests": 1, - "servedRequests": 1 + "latencyP50Ms": 18844, + "uptimeSample": 6, + "latencySample": 6, + "requests": 6, + "servedRequests": 6 } } ], @@ -17593,12 +17797,12 @@ }, "health": { "window": "30d", - "uptimePct": 90, + "uptimePct": 91.66666666666667, "latencyP50Ms": 5966, - "uptimeSample": 10, - "latencySample": 9, - "requests": 10, - "servedRequests": 9 + "uptimeSample": 12, + "latencySample": 11, + "requests": 12, + "servedRequests": 11 } } ], @@ -17645,11 +17849,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 1402, - "uptimeSample": 7, - "latencySample": 7, - "requests": 7, - "servedRequests": 7 + "latencyP50Ms": 1252, + "uptimeSample": 3, + "latencySample": 3, + "requests": 3, + "servedRequests": 3 } }, { @@ -17733,11 +17937,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 4004, - "uptimeSample": 14, - "latencySample": 14, - "requests": 14, - "servedRequests": 14 + "latencyP50Ms": 4609, + "uptimeSample": 37, + "latencySample": 37, + "requests": 37, + "servedRequests": 37 } } ], @@ -17919,8 +18123,8 @@ "from": { "model": "flat", "unit": "request", - "maxUsd": 0.0036, - "maxPer1kUsd": 3.6 + "maxUsd": 0.003, + "maxPer1kUsd": 3 }, "failoverMaxUsd": 0.011, "failoverMaxPer1kUsd": 11 @@ -17930,14 +18134,23 @@ "pricing": { "model": "flat", "unit": "request", - "maxUsd": 0.0036, - "maxPer1kUsd": 3.6 + "maxUsd": 0.003, + "maxPer1kUsd": 3 }, "source": { - "id": "anonymous-fox", - "name": "Fox", + "id": "anonymous-ibex", + "name": "Ibex", "kind": "anonymous", - "artworkKey": "fox" + "artworkKey": "ibex" + }, + "health": { + "window": "30d", + "uptimePct": 66.66666666666667, + "latencyP50Ms": 6815, + "uptimeSample": 3, + "latencySample": 2, + "requests": 3, + "servedRequests": 2 } }, { @@ -17954,6 +18167,15 @@ "name": "Octopus", "kind": "anonymous", "artworkKey": "octopus" + }, + "health": { + "window": "30d", + "uptimePct": 100, + "latencyP50Ms": 29262, + "uptimeSample": 4, + "latencySample": 4, + "requests": 4, + "servedRequests": 4 } } ], @@ -17977,8 +18199,8 @@ "from": { "model": "flat", "unit": "request", - "maxUsd": 0.0036, - "maxPer1kUsd": 3.6 + "maxUsd": 0.003, + "maxPer1kUsd": 3 }, "failoverMaxUsd": 0.0551, "failoverMaxPer1kUsd": 55.1 @@ -17988,14 +18210,23 @@ "pricing": { "model": "flat", "unit": "request", - "maxUsd": 0.0036, - "maxPer1kUsd": 3.6 + "maxUsd": 0.003, + "maxPer1kUsd": 3 }, "source": { - "id": "anonymous-fox", - "name": "Fox", + "id": "anonymous-ibex", + "name": "Ibex", "kind": "anonymous", - "artworkKey": "fox" + "artworkKey": "ibex" + }, + "health": { + "window": "30d", + "uptimePct": 66.66666666666667, + "latencyP50Ms": 8940, + "uptimeSample": 3, + "latencySample": 2, + "requests": 3, + "servedRequests": 2 } }, { @@ -18016,11 +18247,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 15302, - "uptimeSample": 1, - "latencySample": 1, - "requests": 1, - "servedRequests": 1 + "latencyP50Ms": 41935, + "uptimeSample": 2, + "latencySample": 2, + "requests": 2, + "servedRequests": 2 } } ], @@ -18066,12 +18297,12 @@ }, "health": { "window": "30d", - "uptimePct": 83.33333333333333, - "latencyP50Ms": 20922, - "uptimeSample": 6, - "latencySample": 5, - "requests": 6, - "servedRequests": 5 + "uptimePct": 87.5, + "latencyP50Ms": 30720, + "uptimeSample": 16, + "latencySample": 14, + "requests": 16, + "servedRequests": 14 } }, { @@ -18091,12 +18322,12 @@ }, "health": { "window": "30d", - "uptimePct": 95.65217391304348, - "latencyP50Ms": 10450, - "uptimeSample": 184, - "latencySample": 176, - "requests": 214, - "servedRequests": 176 + "uptimePct": 93.14516129032258, + "latencyP50Ms": 10522, + "uptimeSample": 248, + "latencySample": 231, + "requests": 281, + "servedRequests": 231 } }, { @@ -18118,10 +18349,10 @@ "window": "30d", "uptimePct": 100, "latencyP50Ms": 53579, - "uptimeSample": 32, - "latencySample": 32, - "requests": 34, - "servedRequests": 32 + "uptimeSample": 34, + "latencySample": 34, + "requests": 37, + "servedRequests": 34 } } ], @@ -18163,15 +18394,6 @@ "name": "Fox", "kind": "anonymous", "artworkKey": "fox" - }, - "health": { - "window": "30d", - "uptimePct": 100, - "latencyP50Ms": 5533, - "uptimeSample": 1, - "latencySample": 1, - "requests": 1, - "servedRequests": 1 } } ], @@ -18214,15 +18436,6 @@ "name": "Fox", "kind": "anonymous", "artworkKey": "fox" - }, - "health": { - "window": "30d", - "uptimePct": 100, - "latencyP50Ms": 1225, - "uptimeSample": 2, - "latencySample": 2, - "requests": 2, - "servedRequests": 2 } } ], @@ -18265,15 +18478,6 @@ "name": "Fox", "kind": "anonymous", "artworkKey": "fox" - }, - "health": { - "window": "30d", - "uptimePct": 100, - "latencyP50Ms": 2470, - "uptimeSample": 1, - "latencySample": 1, - "requests": 1, - "servedRequests": 1 } } ], @@ -18320,11 +18524,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 1460, - "uptimeSample": 126, - "latencySample": 126, - "requests": 126, - "servedRequests": 126 + "latencyP50Ms": 1584, + "uptimeSample": 184, + "latencySample": 184, + "requests": 184, + "servedRequests": 184 } } ], @@ -18451,15 +18655,20 @@ "name": "Giraffe", "kind": "anonymous", "artworkKey": "giraffe" + } + }, + { + "pricing": { + "model": "flat", + "unit": "request", + "maxUsd": 0.0036, + "maxPer1kUsd": 3.6 }, - "health": { - "window": "30d", - "uptimePct": 100, - "latencyP50Ms": 2329, - "uptimeSample": 1, - "latencySample": 1, - "requests": 1, - "servedRequests": 1 + "source": { + "id": "anonymous-fox", + "name": "Fox", + "kind": "anonymous", + "artworkKey": "fox" } }, { @@ -18486,20 +18695,6 @@ "requests": 1, "servedRequests": 1 } - }, - { - "pricing": { - "model": "flat", - "unit": "request", - "maxUsd": 0.0036, - "maxPer1kUsd": 3.6 - }, - "source": { - "id": "anonymous-fox", - "name": "Fox", - "kind": "anonymous", - "artworkKey": "fox" - } } ], "tryEligible": true, @@ -18545,11 +18740,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 2004, - "uptimeSample": 27, - "latencySample": 27, - "requests": 27, - "servedRequests": 27 + "latencyP50Ms": 2253, + "uptimeSample": 79, + "latencySample": 79, + "requests": 79, + "servedRequests": 79 } }, { @@ -18620,12 +18815,12 @@ }, "health": { "window": "30d", - "uptimePct": 99.24812030075188, - "latencyP50Ms": 1372, - "uptimeSample": 133, - "latencySample": 132, - "requests": 136, - "servedRequests": 132 + "uptimePct": 99.34210526315789, + "latencyP50Ms": 1434, + "uptimeSample": 152, + "latencySample": 151, + "requests": 155, + "servedRequests": 151 } }, { @@ -18697,11 +18892,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 1015, - "uptimeSample": 353, - "latencySample": 353, - "requests": 353, - "servedRequests": 353 + "latencyP50Ms": 928, + "uptimeSample": 2675, + "latencySample": 2675, + "requests": 2675, + "servedRequests": 2675 } }, { @@ -18719,12 +18914,12 @@ }, "health": { "window": "30d", - "uptimePct": 99.31282051282051, - "latencyP50Ms": 332, - "uptimeSample": 9750, - "latencySample": 9683, - "requests": 9832, - "servedRequests": 9683 + "uptimePct": 99.30302715073339, + "latencyP50Ms": 333, + "uptimeSample": 9613, + "latencySample": 9546, + "requests": 9694, + "servedRequests": 9546 } }, { @@ -18742,12 +18937,12 @@ }, "health": { "window": "30d", - "uptimePct": 99.93527508090615, - "latencyP50Ms": 766, - "uptimeSample": 1545, - "latencySample": 1544, - "requests": 1545, - "servedRequests": 1544 + "uptimePct": 99.93468321358588, + "latencyP50Ms": 765, + "uptimeSample": 1531, + "latencySample": 1530, + "requests": 1531, + "servedRequests": 1530 } }, { @@ -18831,11 +19026,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 1106, - "uptimeSample": 7, - "latencySample": 7, - "requests": 7, - "servedRequests": 7 + "latencyP50Ms": 1192, + "uptimeSample": 312, + "latencySample": 312, + "requests": 312, + "servedRequests": 312 } }, { @@ -18878,12 +19073,12 @@ }, "health": { "window": "30d", - "uptimePct": 67.76315789473684, - "latencyP50Ms": 623, - "uptimeSample": 304, - "latencySample": 206, - "requests": 304, - "servedRequests": 206 + "uptimePct": 66.77966101694915, + "latencyP50Ms": 614, + "uptimeSample": 295, + "latencySample": 197, + "requests": 295, + "servedRequests": 197 } }, { @@ -18904,11 +19099,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 15684, - "uptimeSample": 110, - "latencySample": 110, - "requests": 110, - "servedRequests": 110 + "latencyP50Ms": 16532, + "uptimeSample": 96, + "latencySample": 96, + "requests": 96, + "servedRequests": 96 } } ], @@ -18955,11 +19150,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 1626, - "uptimeSample": 755, - "latencySample": 755, - "requests": 755, - "servedRequests": 755 + "latencyP50Ms": 1608, + "uptimeSample": 4597, + "latencySample": 4597, + "requests": 4597, + "servedRequests": 4597 } }, { @@ -18977,12 +19172,12 @@ }, "health": { "window": "30d", - "uptimePct": 99.5768296912938, - "latencyP50Ms": 2152, - "uptimeSample": 14415, - "latencySample": 14354, - "requests": 14415, - "servedRequests": 14354 + "uptimePct": 99.54784671262323, + "latencyP50Ms": 2169, + "uptimeSample": 13491, + "latencySample": 13430, + "requests": 13491, + "servedRequests": 13430 } }, { @@ -19002,12 +19197,12 @@ }, "health": { "window": "30d", - "uptimePct": 83.41880341880342, - "latencyP50Ms": 866, - "uptimeSample": 585, - "latencySample": 488, - "requests": 585, - "servedRequests": 488 + "uptimePct": 88.36065573770492, + "latencyP50Ms": 890, + "uptimeSample": 610, + "latencySample": 539, + "requests": 610, + "servedRequests": 539 } }, { @@ -19027,12 +19222,12 @@ }, "health": { "window": "30d", - "uptimePct": 98.98605830164766, - "latencyP50Ms": 15869, - "uptimeSample": 789, - "latencySample": 781, - "requests": 800, - "servedRequests": 781 + "uptimePct": 98.91745602165088, + "latencyP50Ms": 15852, + "uptimeSample": 739, + "latencySample": 731, + "requests": 750, + "servedRequests": 731 } } ], @@ -19133,12 +19328,12 @@ }, "health": { "window": "30d", - "uptimePct": 73.17073170731707, - "latencyP50Ms": 1738, - "uptimeSample": 41, - "latencySample": 30, - "requests": 41, - "servedRequests": 30 + "uptimePct": 72.09302325581395, + "latencyP50Ms": 1808, + "uptimeSample": 43, + "latencySample": 31, + "requests": 43, + "servedRequests": 31 } }, { @@ -19158,12 +19353,12 @@ }, "health": { "window": "30d", - "uptimePct": 45.45454545454545, - "latencyP50Ms": 348, - "uptimeSample": 11, - "latencySample": 5, - "requests": 11, - "servedRequests": 5 + "uptimePct": 50, + "latencyP50Ms": 433, + "uptimeSample": 12, + "latencySample": 6, + "requests": 12, + "servedRequests": 6 } } ], @@ -19210,11 +19405,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 3594, - "uptimeSample": 180, - "latencySample": 180, - "requests": 187, - "servedRequests": 180 + "latencyP50Ms": 3643, + "uptimeSample": 222, + "latencySample": 222, + "requests": 229, + "servedRequests": 222 } } ], @@ -19260,12 +19455,12 @@ }, "health": { "window": "30d", - "uptimePct": 100, - "latencyP50Ms": 262, - "uptimeSample": 20, - "latencySample": 20, - "requests": 20, - "servedRequests": 20 + "uptimePct": 97.05882352941177, + "latencyP50Ms": 268, + "uptimeSample": 34, + "latencySample": 33, + "requests": 34, + "servedRequests": 33 } }, { @@ -19284,11 +19479,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 1725, - "uptimeSample": 39, - "latencySample": 39, - "requests": 43, - "servedRequests": 39 + "latencyP50Ms": 1774, + "uptimeSample": 41, + "latencySample": 41, + "requests": 45, + "servedRequests": 41 } } ], @@ -19335,11 +19530,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 1182, - "uptimeSample": 7, - "latencySample": 7, - "requests": 7, - "servedRequests": 7 + "latencyP50Ms": 1240, + "uptimeSample": 120, + "latencySample": 120, + "requests": 120, + "servedRequests": 120 } }, { @@ -19381,11 +19576,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 1379, - "uptimeSample": 49, - "latencySample": 49, - "requests": 49, - "servedRequests": 49 + "latencyP50Ms": 1114, + "uptimeSample": 6, + "latencySample": 6, + "requests": 6, + "servedRequests": 6 } }, { @@ -19533,12 +19728,12 @@ }, "health": { "window": "30d", - "uptimePct": 86.77248677248677, - "latencyP50Ms": 1868, - "uptimeSample": 189, - "latencySample": 164, - "requests": 189, - "servedRequests": 164 + "uptimePct": 91.02822580645162, + "latencyP50Ms": 1749, + "uptimeSample": 992, + "latencySample": 903, + "requests": 992, + "servedRequests": 903 } }, { @@ -19556,12 +19751,12 @@ }, "health": { "window": "30d", - "uptimePct": 99.49381327334083, - "latencyP50Ms": 2239, - "uptimeSample": 1778, - "latencySample": 1769, - "requests": 1778, - "servedRequests": 1769 + "uptimePct": 99.48571428571428, + "latencyP50Ms": 2224, + "uptimeSample": 1750, + "latencySample": 1741, + "requests": 1750, + "servedRequests": 1741 } }, { @@ -19633,11 +19828,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 1544, - "uptimeSample": 2, - "latencySample": 2, - "requests": 2, - "servedRequests": 2 + "latencyP50Ms": 1238, + "uptimeSample": 2364, + "latencySample": 2364, + "requests": 2364, + "servedRequests": 2364 } }, { @@ -19706,11 +19901,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 12312, - "uptimeSample": 30, - "latencySample": 30, - "requests": 30, - "servedRequests": 30 + "latencyP50Ms": 12291, + "uptimeSample": 31, + "latencySample": 31, + "requests": 31, + "servedRequests": 31 } } ], @@ -19934,12 +20129,12 @@ }, "health": { "window": "30d", - "uptimePct": 98.33333333333333, - "latencyP50Ms": 1336, - "uptimeSample": 60, - "latencySample": 59, - "requests": 60, - "servedRequests": 59 + "uptimePct": 98.82352941176471, + "latencyP50Ms": 1344, + "uptimeSample": 85, + "latencySample": 84, + "requests": 85, + "servedRequests": 84 } } ], @@ -19985,12 +20180,12 @@ }, "health": { "window": "30d", - "uptimePct": 99.05963049009846, - "latencyP50Ms": 2050, - "uptimeSample": 9039, - "latencySample": 8954, - "requests": 9241, - "servedRequests": 8954 + "uptimePct": 98.86898096304591, + "latencyP50Ms": 2026, + "uptimeSample": 8930, + "latencySample": 8829, + "requests": 9115, + "servedRequests": 8829 } }, { @@ -20008,12 +20203,12 @@ }, "health": { "window": "30d", - "uptimePct": 92.67166762839007, - "latencyP50Ms": 2030, - "uptimeSample": 1733, - "latencySample": 1606, - "requests": 1804, - "servedRequests": 1606 + "uptimePct": 91.98542805100182, + "latencyP50Ms": 2094, + "uptimeSample": 1647, + "latencySample": 1515, + "requests": 1720, + "servedRequests": 1515 } }, { @@ -20031,12 +20226,12 @@ }, "health": { "window": "30d", - "uptimePct": 100, - "latencyP50Ms": 1672, - "uptimeSample": 8, - "latencySample": 8, - "requests": 8, - "servedRequests": 8 + "uptimePct": 91.66666666666667, + "latencyP50Ms": 1725, + "uptimeSample": 12, + "latencySample": 11, + "requests": 12, + "servedRequests": 11 } }, { @@ -20054,12 +20249,12 @@ }, "health": { "window": "30d", - "uptimePct": 100, - "latencyP50Ms": 1682, - "uptimeSample": 27, - "latencySample": 27, - "requests": 27, - "servedRequests": 27 + "uptimePct": 83.78378378378379, + "latencyP50Ms": 1667, + "uptimeSample": 37, + "latencySample": 31, + "requests": 37, + "servedRequests": 31 } } ], @@ -20332,11 +20527,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 2148, - "uptimeSample": 2, - "latencySample": 2, - "requests": 2, - "servedRequests": 2 + "latencyP50Ms": 2280, + "uptimeSample": 5, + "latencySample": 5, + "requests": 5, + "servedRequests": 5 } } ], @@ -20456,17 +20651,38 @@ }, "pricing": { "from": { - "model": "linear", - "unit": "result", - "baseUsd": 0.044, - "perUnitUsd": 0.00083, - "maxUsd": 0.0605, - "maxPer1kUsd": 60.5 + "model": "flat", + "unit": "request", + "maxUsd": 0.0035, + "maxPer1kUsd": 3.5 }, "failoverMaxUsd": 0.0605, "failoverMaxPer1kUsd": 60.5 }, "lanes": [ + { + "pricing": { + "model": "flat", + "unit": "request", + "maxUsd": 0.0035, + "maxPer1kUsd": 3.5 + }, + "source": { + "id": "anonymous-ibex", + "name": "Ibex", + "kind": "anonymous", + "artworkKey": "ibex" + }, + "health": { + "window": "30d", + "uptimePct": 100, + "latencyP50Ms": 10883, + "uptimeSample": 2, + "latencySample": 2, + "requests": 2, + "servedRequests": 2 + } + }, { "pricing": { "model": "linear", @@ -20494,7 +20710,7 @@ } ], "tryEligible": false, - "failover": false + "failover": true }, { "id": "youtube.channel", @@ -20534,12 +20750,12 @@ }, "health": { "window": "30d", - "uptimePct": 88.79310344827586, - "latencyP50Ms": 2455, - "uptimeSample": 116, - "latencySample": 103, - "requests": 139, - "servedRequests": 103 + "uptimePct": 90.9090909090909, + "latencyP50Ms": 2700, + "uptimeSample": 198, + "latencySample": 180, + "requests": 229, + "servedRequests": 180 } }, { @@ -20558,11 +20774,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 840, - "uptimeSample": 35, - "latencySample": 35, - "requests": 35, - "servedRequests": 35 + "latencyP50Ms": 811, + "uptimeSample": 47, + "latencySample": 47, + "requests": 47, + "servedRequests": 47 } }, { @@ -20688,6 +20904,15 @@ "name": "Octopus", "kind": "anonymous", "artworkKey": "octopus" + }, + "health": { + "window": "30d", + "uptimePct": 100, + "latencyP50Ms": 21893, + "uptimeSample": 2, + "latencySample": 2, + "requests": 2, + "servedRequests": 2 } } ], @@ -20830,12 +21055,12 @@ }, "health": { "window": "30d", - "uptimePct": 100, - "latencyP50Ms": 5552, - "uptimeSample": 40, - "latencySample": 40, - "requests": 40, - "servedRequests": 40 + "uptimePct": 98.14814814814815, + "latencyP50Ms": 4740, + "uptimeSample": 108, + "latencySample": 106, + "requests": 108, + "servedRequests": 106 } }, { @@ -20855,10 +21080,10 @@ "window": "30d", "uptimePct": 100, "latencyP50Ms": 6324, - "uptimeSample": 8, - "latencySample": 8, - "requests": 8, - "servedRequests": 8 + "uptimeSample": 12, + "latencySample": 12, + "requests": 12, + "servedRequests": 12 } } ], @@ -20904,12 +21129,12 @@ }, "health": { "window": "30d", - "uptimePct": 100, - "latencyP50Ms": 2309, - "uptimeSample": 76, - "latencySample": 76, - "requests": 79, - "servedRequests": 76 + "uptimePct": 97.87234042553192, + "latencyP50Ms": 2274, + "uptimeSample": 188, + "latencySample": 184, + "requests": 192, + "servedRequests": 184 } }, { @@ -20928,11 +21153,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 1288, - "uptimeSample": 4, - "latencySample": 4, - "requests": 4, - "servedRequests": 4 + "latencyP50Ms": 3218, + "uptimeSample": 8, + "latencySample": 8, + "requests": 8, + "servedRequests": 8 } }, { @@ -21031,6 +21256,15 @@ "name": "Giraffe", "kind": "anonymous", "artworkKey": "giraffe" + }, + "health": { + "window": "30d", + "uptimePct": 100, + "latencyP50Ms": 1669, + "uptimeSample": 1, + "latencySample": 1, + "requests": 1, + "servedRequests": 1 } }, { @@ -21142,11 +21376,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 2010, - "uptimeSample": 79, - "latencySample": 79, - "requests": 79, - "servedRequests": 79 + "latencyP50Ms": 2077, + "uptimeSample": 497, + "latencySample": 497, + "requests": 497, + "servedRequests": 497 } }, { @@ -21164,12 +21398,12 @@ }, "health": { "window": "30d", - "uptimePct": 99.25986842105263, - "latencyP50Ms": 2485, - "uptimeSample": 1216, - "latencySample": 1207, - "requests": 1216, - "servedRequests": 1207 + "uptimePct": 99.23076923076923, + "latencyP50Ms": 2502, + "uptimeSample": 1430, + "latencySample": 1419, + "requests": 1430, + "servedRequests": 1419 } }, { @@ -21188,11 +21422,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 1476, - "uptimeSample": 74, - "latencySample": 74, - "requests": 74, - "servedRequests": 74 + "latencyP50Ms": 1393, + "uptimeSample": 14, + "latencySample": 14, + "requests": 14, + "servedRequests": 14 } }, { @@ -21242,8 +21476,8 @@ "maxUsd": 0.002, "maxPer1kUsd": 2 }, - "failoverMaxUsd": 0.0036, - "failoverMaxPer1kUsd": 3.6 + "failoverMaxUsd": 0.002, + "failoverMaxPer1kUsd": 2 }, "lanes": [ { @@ -21262,30 +21496,58 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 1410, - "uptimeSample": 5, - "latencySample": 5, - "requests": 5, - "servedRequests": 5 + "latencyP50Ms": 1416, + "uptimeSample": 7, + "latencySample": 7, + "requests": 7, + "servedRequests": 7 } + } + ], + "tryEligible": true, + "tryMaxItems": 3, + "failover": false + }, + { + "id": "youtube.search_shorts", + "slug": "youtube.search_shorts", + "category": "video", + "name": "YouTube Shorts Search", + "description": "Search YouTube Shorts by keyword and get matching Shorts (title, views, URL) with cursor pagination as normalized JSON.", + "method": "POST", + "path": "/v1/run/youtube.search_shorts", + "provider": "AnyAPI", + "execution": { + "mode": "sync" + }, + "pricing": { + "from": { + "model": "flat", + "unit": "request", + "maxUsd": 0.002, + "maxPer1kUsd": 2 }, + "failoverMaxUsd": 0.002, + "failoverMaxPer1kUsd": 2 + }, + "lanes": [ { "pricing": { "model": "flat", "unit": "request", - "maxUsd": 0.0036, - "maxPer1kUsd": 3.6 + "maxUsd": 0.002, + "maxPer1kUsd": 2 }, "source": { - "id": "anonymous-fox", - "name": "Fox", + "id": "anonymous-giraffe", + "name": "Giraffe", "kind": "anonymous", - "artworkKey": "fox" + "artworkKey": "giraffe" }, "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 1472, + "latencyP50Ms": 1907, "uptimeSample": 1, "latencySample": 1, "requests": 1, @@ -21295,7 +21557,7 @@ ], "tryEligible": true, "tryMaxItems": 3, - "failover": true + "failover": false }, { "id": "youtube.trending_shorts", @@ -21353,7 +21615,7 @@ "slug": "youtube.video", "category": "video", "name": "YouTube Video", - "description": "Fetch a YouTube video's metadata (title, channel, views, likes, duration, publish date) by URL or ID.", + "description": "Fetch a YouTube video or Short's metadata (title, channel, views, likes, duration, publish date) by URL or ID.", "method": "POST", "path": "/v1/run/youtube.video", "provider": "AnyAPI", @@ -21386,12 +21648,12 @@ }, "health": { "window": "30d", - "uptimePct": 100, - "latencyP50Ms": 2492, - "uptimeSample": 20, - "latencySample": 20, - "requests": 20, - "servedRequests": 20 + "uptimePct": 99.9252615844544, + "latencyP50Ms": 2414, + "uptimeSample": 1338, + "latencySample": 1337, + "requests": 1338, + "servedRequests": 1337 } }, { @@ -21409,12 +21671,12 @@ }, "health": { "window": "30d", - "uptimePct": 91.34615384615384, - "latencyP50Ms": 1726, - "uptimeSample": 104, - "latencySample": 95, - "requests": 104, - "servedRequests": 95 + "uptimePct": 90.3225806451613, + "latencyP50Ms": 1775, + "uptimeSample": 93, + "latencySample": 84, + "requests": 93, + "servedRequests": 84 } } ], @@ -21427,7 +21689,7 @@ "slug": "youtube.video_comments", "category": "video", "name": "YouTube Video Comments", - "description": "List the comments on a YouTube video by URL with cursor pagination (text, author, likes, reply count).", + "description": "List the comments on a YouTube video or Short by URL with cursor pagination (text, author, likes, reply count).", "method": "POST", "path": "/v1/run/youtube.video_comments", "provider": "AnyAPI", @@ -21460,12 +21722,12 @@ }, "health": { "window": "30d", - "uptimePct": 99.41176470588235, - "latencyP50Ms": 2157, - "uptimeSample": 340, - "latencySample": 338, - "requests": 340, - "servedRequests": 338 + "uptimePct": 99.84603541185527, + "latencyP50Ms": 2060, + "uptimeSample": 1299, + "latencySample": 1297, + "requests": 1299, + "servedRequests": 1297 } }, { @@ -21552,7 +21814,7 @@ "slug": "youtube.video_transcript", "category": "video", "name": "YouTube Video Transcript", - "description": "Fetch the transcript/captions of a YouTube video by URL or ID.", + "description": "Fetch the transcript/captions of a YouTube video or Short by URL or ID.", "method": "POST", "path": "/v1/run/youtube.video_transcript", "provider": "AnyAPI", @@ -21585,12 +21847,12 @@ }, "health": { "window": "30d", - "uptimePct": 100, - "latencyP50Ms": 9004, - "uptimeSample": 1, - "latencySample": 1, - "requests": 1, - "servedRequests": 1 + "uptimePct": 97.84946236559139, + "latencyP50Ms": 6801, + "uptimeSample": 93, + "latencySample": 91, + "requests": 93, + "servedRequests": 91 } }, { @@ -21609,11 +21871,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 1612, - "uptimeSample": 36, - "latencySample": 36, - "requests": 36, - "servedRequests": 36 + "latencyP50Ms": 1630, + "uptimeSample": 38, + "latencySample": 38, + "requests": 38, + "servedRequests": 38 } } ], @@ -21627,7 +21889,7 @@ "slug": "youtube.video_transcript_full", "category": "video", "name": "YouTube Video Transcript (Provenance)", - "description": "Fetch a YouTube transcript with timed segments and its provenance: whether the words are creator-written captions or machine speech recognition.", + "description": "Fetch a YouTube video or Short transcript with timed segments and its provenance: whether the words are creator-written captions or machine speech recognition.", "method": "POST", "path": "/v1/run/youtube.video_transcript_full", "provider": "AnyAPI", @@ -21636,17 +21898,38 @@ }, "pricing": { "from": { - "model": "linear", - "unit": "result", - "baseUsd": 0.00308, - "perUnitUsd": 0, - "maxUsd": 0.00308, - "maxPer1kUsd": 3.08 + "model": "flat", + "unit": "request", + "maxUsd": 0.001, + "maxPer1kUsd": 1 }, "failoverMaxUsd": 0.00308, "failoverMaxPer1kUsd": 3.08 }, "lanes": [ + { + "pricing": { + "model": "flat", + "unit": "request", + "maxUsd": 0.001, + "maxPer1kUsd": 1 + }, + "source": { + "id": "anonymous-badger-464a3e49", + "name": "Badger", + "kind": "anonymous", + "artworkKey": "badger" + }, + "health": { + "window": "30d", + "uptimePct": 100, + "latencyP50Ms": 14184, + "uptimeSample": 4, + "latencySample": 4, + "requests": 4, + "servedRequests": 4 + } + }, { "pricing": { "model": "linear", @@ -21664,19 +21947,19 @@ }, "health": { "window": "30d", - "uptimePct": 97.22222222222223, - "latencyP50Ms": 18580, - "uptimeSample": 108, - "latencySample": 105, - "requests": 108, - "servedRequests": 105 + "uptimePct": 97.3913043478261, + "latencyP50Ms": 19306, + "uptimeSample": 115, + "latencySample": 112, + "requests": 115, + "servedRequests": 112 } } ], "heavy": true, "tryEligible": true, "tryMaxItems": 3, - "failover": false + "failover": true }, { "id": "zhihu.answer", @@ -21936,11 +22219,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 15620, - "uptimeSample": 2, - "latencySample": 2, - "requests": 6, - "servedRequests": 2 + "latencyP50Ms": 18299, + "uptimeSample": 1, + "latencySample": 1, + "requests": 5, + "servedRequests": 1 } }, { @@ -22013,11 +22296,11 @@ "health": { "window": "30d", "uptimePct": 100, - "latencyP50Ms": 15174, - "uptimeSample": 2, - "latencySample": 2, - "requests": 2, - "servedRequests": 2 + "latencyP50Ms": 5291, + "uptimeSample": 1, + "latencySample": 1, + "requests": 1, + "servedRequests": 1 } }, { diff --git a/generator/fixtures.json b/generator/fixtures.json index 1df81b6..d16c93b 100644 --- a/generator/fixtures.json +++ b/generator/fixtures.json @@ -518,7 +518,6 @@ "output": { "found": true, "data": { - "name": "sample", "domain": "sample", "_extra": "passthrough" } @@ -6758,7 +6757,6 @@ { "id": "sample", "url": "https://example.com/x", - "title": "sample", "views": 1, "viewsAvailable": true, "likes": 1, @@ -6910,6 +6908,28 @@ "items": 1, "replayed": false }, + "youtube.search_shorts": { + "output": { + "found": true, + "data": { + "shorts": [ + { + "id": "sample", + "url": "sample", + "title": "sample", + "views": 1, + "viewsAvailable": true, + "contentType": "sample", + "_extra": "passthrough" + } + ] + } + }, + "provider": "AnyAPI", + "costUsd": 0.001, + "items": 1, + "replayed": false + }, "youtube.trending_shorts": { "output": { "found": true, diff --git a/generator/ir.json b/generator/ir.json index 601cc42..fbf2a7b 100644 --- a/generator/ir.json +++ b/generator/ir.json @@ -6883,7 +6883,6 @@ } }, "required": [ - "name", "domain" ], "open": true @@ -27765,7 +27764,7 @@ "category": "search", "description": "Run a Google web search and get the organic results (title, link, snippet, position) as clean JSON. Returns about 10 results per call - Google stopped honoring bulk result counts in September 2025, so a limit above 10 is accepted but returns no more than a page. Pass the returned nextCursor back as cursor to walk further, or use google.search_100 for up to 100 ranked results in one call, which is cheaper past roughly 20 results.", "pricing": { - "priceUsd": 0.00099, + "priceUsd": 0.0009, "baseUsd": null, "perItemUsd": null, "perItemUnit": null @@ -31917,7 +31916,7 @@ "category": "social", "description": "Fetch a single Instagram post or reel by URL (media URLs, like count, owner, type) as normalized JSON.", "pricing": { - "priceUsd": 0.0009, + "priceUsd": 0.0015, "baseUsd": null, "perItemUsd": null, "perItemUnit": null @@ -31950,7 +31949,7 @@ }, "url": { "kind": "string", - "description": "Full Instagram post or reel URL.", + "description": "Full Instagram post or reel URL, carrying the media shortcode: /p/, /reel/, /reels/, or /tv/. A profile URL such as https://www.instagram.com/username names no post, so it is rejected instead of charged for an empty result.", "enum": null, "default": null, "format": null @@ -32052,7 +32051,7 @@ "category": "social", "description": "List the comments on an Instagram post or reel by URL with cursor pagination (text, author, likes).", "pricing": { - "priceUsd": 0.0015, + "priceUsd": 0.00144, "baseUsd": null, "perItemUsd": null, "perItemUnit": null @@ -33136,7 +33135,7 @@ "operationId": "instagram_search_hashtag", "name": "Instagram Hashtag Search", "category": "social", - "description": "Search posts under an Instagram hashtag through a web search index rather than Instagram's own hashtag feed. That is what lets it filter by date and media type and return reels whose like counts have settled, and it is also why results skew older (median around three months) and stop at roughly 110 per hashtag. For Instagram's own live ranking of a tag use instagram.hashtag_top_posts, and for the chronological feed use instagram.hashtag_recent_posts.", + "description": "Search posts under an Instagram hashtag through a web search index rather than Instagram's own hashtag feed. That is what lets it filter by date and media type and return reels whose like counts have settled, and it is also why results skew older (median around three months) and stop at roughly 110 per hashtag. If that web search index is unavailable, a first-page request that sets no date and no media type is served from Instagram's own live top feed instead. For Instagram's own live ranking of a tag use instagram.hashtag_top_posts, and for the chronological feed use instagram.hashtag_recent_posts.", "pricing": { "priceUsd": 0.002, "baseUsd": null, @@ -44352,10 +44351,10 @@ "category": "data", "description": "Fetch up to 100 Google Maps reviews for a place by place ID, sorted the way you need, in one normalized response.", "pricing": { - "priceUsd": 0.0441, - "baseUsd": 0.00006, - "perItemUsd": 0.00044, - "perItemUnit": "result" + "priceUsd": 0.0035, + "baseUsd": null, + "perItemUsd": null, + "perItemUnit": null }, "tsNamespace": "maps", "tsMethod": "reviews", @@ -44367,8 +44366,7 @@ "outputTypeName": "MapsReviewsData", "example": { "limit": 3, - "placeId": "ChIJN1t_tDeuEmsRUsoyG83frY4", - "postedLimit": "year" + "placeId": "ChIJN1t_tDeuEmsRUsoyG83frY4" }, "input": { "kind": "object", @@ -44382,7 +44380,7 @@ }, "limit": { "kind": "integer", - "description": "Maximum number of results to return (1-100, default 100). You are billed per result returned, so a lower limit costs less.", + "description": "Maximum number of results to return (1-100, default 100).", "minimum": 1, "maximum": 100, "default": null @@ -44498,7 +44496,7 @@ }, "placeId": { "kind": "string", - "description": "Google Maps place id the review belongs to. Populated whenever the provider has data for the entity.", + "description": "Google Maps place id the review belongs to. Echoes the requested placeId; a lane that does not repeat it per review omits it.", "enum": null, "default": null, "format": null @@ -44560,7 +44558,6 @@ "mustPopulate": [ "author", "createdUtc", - "placeId", "reviewId", "url" ] @@ -52441,10 +52438,10 @@ "category": "search", "description": "Ask Perplexity a web-grounded question and receive an answer with source citations.", "pricing": { - "priceUsd": 0.0111, - "baseUsd": 0.00006, - "perItemUsd": 0.011, - "perItemUnit": "result" + "priceUsd": 0.0036, + "baseUsd": null, + "perItemUsd": null, + "perItemUnit": null }, "tsNamespace": "perplexity", "tsMethod": "search", @@ -59828,7 +59825,7 @@ "category": "social", "description": "Fetch a single Reddit post by URL, including its full body text, score, comment count, upvote ratio, and subreddit, as normalized JSON.", "pricing": { - "priceUsd": 0.0009, + "priceUsd": 0.0012, "baseUsd": null, "perItemUsd": null, "perItemUnit": null @@ -60502,7 +60499,7 @@ "category": "social", "description": "Search Reddit posts across all subreddits by query.", "pricing": { - "priceUsd": 0.0009, + "priceUsd": 0.0012, "baseUsd": null, "perItemUsd": null, "perItemUnit": null @@ -69146,6 +69143,13 @@ "input": { "kind": "object", "properties": { + "endDate": { + "kind": "string", + "description": "Only return posts published on or before this date, format YYYY-MM-DD (e.g. 2026-08-07). Threads pages backwards in time from here, so narrowing this is how you walk older results.", + "enum": null, + "default": null, + "format": null + }, "preferLatencyUnderMs": { "kind": "integer", "description": "Optional; omit it and routing is unchanged, with the cheapest source serving. Prefer sources whose typical response time (median over the trailing 30 days, as published on this endpoint's lane health) is under this many milliseconds; among those, the cheapest serves. This can raise your price: when the cheapest source misses the target, a faster and dearer one serves, and you are quoted and charged its price. If no source is that fast the request is still served, by whichever source offers the best speed for its price - it is never refused for being slow. Sources we have not timed are tried last. This is a preference, not a guarantee: the median describes past requests and is not a ceiling on this one, and it excludes any wait this request itself asks for. On a paginated walk it applies to the first page only: later pages stay with the source that page chose, at the price it was quoted.", @@ -69155,7 +69159,14 @@ }, "query": { "kind": "string", - "description": "Keyword or hashtag to search public Threads posts for; the # prefix is optional (e.g. AI agents).", + "description": "Keyword or hashtag to search public Threads posts for; the # prefix is optional (e.g. AI agents). Threads matches text in posts, so search a brand or topic rather than a URL - a query that is only a domain is searched by its name (wander.com is searched as wander).", + "enum": null, + "default": null, + "format": null + }, + "startDate": { + "kind": "string", + "description": "Only return posts published on or after this date, format YYYY-MM-DD (e.g. 2026-08-01).", "enum": null, "default": null, "format": null @@ -73806,6 +73817,13 @@ "input": { "kind": "object", "properties": { + "id": { + "kind": "string", + "description": "TikTok video ID, the numeric run at the end of a video URL. Use it when a listing SKU handed you an id and no URL.", + "enum": null, + "default": null, + "format": null + }, "preferLatencyUnderMs": { "kind": "integer", "description": "Optional; omit it and routing is unchanged, with the cheapest source serving. Prefer sources whose typical response time (median over the trailing 30 days, as published on this endpoint's lane health) is under this many milliseconds; among those, the cheapest serves. This can raise your price: when the cheapest source misses the target, a faster and dearer one serves, and you are quoted and charged its price. If no source is that fast the request is still served, by whichever source offers the best speed for its price - it is never refused for being slow. Sources we have not timed are tried last. This is a preference, not a guarantee: the median describes past requests and is not a ceiling on this one, and it excludes any wait this request itself asks for. On a paginated walk it applies to the first page only: later pages stay with the source that page chose, at the price it was quoted.", @@ -73821,9 +73839,7 @@ "format": null } }, - "required": [ - "url" - ], + "required": [], "open": false }, "output": { @@ -74379,9 +74395,9 @@ "properties": { "confidence": { "kind": "number", - "description": "Recognizer confidence for this word, 0 to 1. Low values mark words the recognizer guessed; they are common on names, jargon, and music.", - "minimum": 0, - "maximum": 1, + "description": "Recognizer score for this word, exactly as the recognizer reported it. It is normally an alignment probability between 0 and 1, but on audio the recognizer could not align it reports a negative log-scale score instead, so read the sign before treating the number as a probability. Either way, lower means less certain, and low values are common on names, jargon, and music.", + "minimum": null, + "maximum": null, "default": null }, "endSeconds": { @@ -76513,7 +76529,7 @@ "category": "travel", "description": "Fetch the latest reviews for any Tripadvisor hotel, restaurant, or attraction by its page URL: rating, text, date, and trip details as normalized JSON.", "pricing": { - "priceUsd": 0.0036, + "priceUsd": 0.003, "baseUsd": null, "perItemUsd": null, "perItemUnit": null @@ -76682,7 +76698,7 @@ "category": "travel", "description": "Search Tripadvisor for hotels, restaurants, and attractions in any destination and get rich place records (ratings, review counts, contact details, pricing) as normalized JSON.", "pricing": { - "priceUsd": 0.0036, + "priceUsd": 0.003, "baseUsd": null, "perItemUsd": null, "perItemUnit": null @@ -76979,7 +76995,7 @@ }, "countries": { "kind": "array", - "description": "Only return reviews from reviewers in these ISO 3166-1 alpha-2 countries (e.g. [\"US\", \"GB\"]); omit for all countries.", + "description": "Only return reviews from reviewers in these ISO 3166-1 alpha-2 countries (e.g. [\"US\", \"GB\"]). Omit this field for all countries and to stay on the cheapest price; a country filter routes to the dearest source.", "items": { "kind": "string", "enum": null, @@ -76990,7 +77006,7 @@ }, "languages": { "kind": "array", - "description": "Only return reviews in these ISO 639-1 languages (e.g. [\"en\", \"de\"]); omit for all languages.", + "description": "Only return reviews in these ISO 639-1 languages (e.g. [\"en\", \"de\"]). Omit this field for all languages and to stay on the cheapest price; a language filter routes to the dearest source.", "items": { "kind": "string", "enum": null, @@ -77022,21 +77038,21 @@ }, "stars": { "kind": "string", - "description": "Limit reviews to a single star rating from 1 to 5 (e.g. 5); omit for all ratings.", + "description": "Limit reviews to a single star rating from 1 to 5 (e.g. 5). Omit this field to stay on the cheapest price; a star filter routes to a dearer source.", "enum": null, "default": null, "format": null }, "startDate": { "kind": "string", - "description": "Only return reviews on or after this date, inclusive, in YYYY-MM-DD format (e.g. 2026-01-01).", + "description": "Only return reviews on or after this date, inclusive, in YYYY-MM-DD format (e.g. 2026-01-01). Omit this field to stay on the cheapest price; a date floor routes to the dearest source.", "enum": null, "default": null, "format": null }, "verifiedOnly": { "kind": "boolean", - "description": "Set true to return only verified reviews (e.g. true).", + "description": "Set true to return only verified reviews (e.g. true). Omit this field, or send false, to stay on the cheapest price; true routes to a dearer source.", "default": false } }, @@ -78981,13 +78997,6 @@ "default": null, "format": null }, - "lang": { - "kind": "string", - "description": "Optional ISO 639-1 language code to restrict tweets to (e.g. en).", - "enum": null, - "default": null, - "format": null - }, "limit": { "kind": "integer", "description": "Per-page maximum number of results to return (1-50, default 20). A provider may return a smaller native page; follow nextCursor for more.", @@ -82998,10 +83007,10 @@ "category": "data", "description": "Search Yelp for businesses by keyword and location: up to 20 listings with ratings, categories, and core business info per request.", "pricing": { - "priceUsd": 0.0605, - "baseUsd": 0.044, - "perItemUsd": 0.00083, - "perItemUnit": "result" + "priceUsd": 0.0035, + "baseUsd": null, + "perItemUsd": null, + "perItemUnit": null }, "tsNamespace": "yelp", "tsMethod": "search", @@ -83024,7 +83033,7 @@ "description": "Maximum number of results to return (1 to 20, default 20).", "minimum": 1, "maximum": 20, - "default": null + "default": 20 }, "location": { "kind": "string", @@ -84125,7 +84134,6 @@ "required": [ "id", "url", - "title", "views", "viewsAvailable", "likes", @@ -84979,10 +84987,9 @@ }, "type": { "kind": "string", - "description": "Content filter.", + "description": "Content filter. Only \"all\" is served: no source we buy returns a Shorts row with the channel and publish time this endpoint requires.", "enum": [ - "all", - "shorts" + "all" ], "default": null, "format": null @@ -85098,6 +85105,177 @@ "nextCursorField": "nextCursor" } }, + { + "slug": "youtube.search_shorts", + "platform": "youtube", + "action": "search_shorts", + "operationId": "youtube_search_shorts", + "name": "YouTube Shorts Search", + "category": "video", + "description": "Search YouTube Shorts by keyword and get matching Shorts (title, views, URL) with cursor pagination as normalized JSON.", + "pricing": { + "priceUsd": 0.002, + "baseUsd": null, + "perItemUsd": null, + "perItemUnit": null + }, + "tsNamespace": "youtube", + "tsMethod": "searchShorts", + "tsIterMethod": "iterSearchShorts", + "pyNamespace": "youtube", + "pyMethod": "search_shorts", + "pyIterMethod": "iter_search_shorts", + "inputTypeName": "YoutubeSearchShortsInput", + "outputTypeName": "YoutubeSearchShortsData", + "example": { + "query": "cats" + }, + "input": { + "kind": "object", + "properties": { + "cursor": { + "kind": "string", + "description": "Continuation token from a previous response for pagination.", + "enum": null, + "default": null, + "format": null + }, + "preferLatencyUnderMs": { + "kind": "integer", + "description": "Optional; omit it and routing is unchanged, with the cheapest source serving. Prefer sources whose typical response time (median over the trailing 30 days, as published on this endpoint's lane health) is under this many milliseconds; among those, the cheapest serves. This can raise your price: when the cheapest source misses the target, a faster and dearer one serves, and you are quoted and charged its price. If no source is that fast the request is still served, by whichever source offers the best speed for its price - it is never refused for being slow. Sources we have not timed are tried last. This is a preference, not a guarantee: the median describes past requests and is not a ceiling on this one, and it excludes any wait this request itself asks for. On a paginated walk it applies to the first page only: later pages stay with the source that page chose, at the price it was quoted.", + "minimum": 1, + "maximum": null, + "default": null + }, + "query": { + "kind": "string", + "description": "The keyword to search Shorts for.", + "enum": null, + "default": null, + "format": null + }, + "sortBy": { + "kind": "string", + "description": "Sort order: \"relevance\" (default) or \"popular\" (most-viewed).", + "enum": [ + "relevance", + "popular" + ], + "default": "relevance", + "format": null + }, + "uploadDate": { + "kind": "string", + "description": "Filter by upload recency. Omit for any time.", + "enum": [ + "today", + "this_week", + "this_month", + "this_year" + ], + "default": null, + "format": null + } + }, + "required": [ + "query" + ], + "open": false + }, + "output": { + "envelope": "found-data", + "data": { + "kind": "object", + "properties": { + "nextCursor": { + "kind": "string", + "description": "Opaque cursor for the next page of results, or null when there are no more. Pass it back as cursor to continue.", + "nullable": true, + "enum": null, + "default": null, + "format": null + }, + "shorts": { + "kind": "array", + "description": "Populated whenever the provider has data for the entity.", + "items": { + "kind": "object", + "properties": { + "contentType": { + "kind": "string", + "description": "Always \"short\": every row here comes from YouTube's Shorts shelf.", + "enum": null, + "default": null, + "format": null + }, + "id": { + "kind": "string", + "description": "YouTube video id of the Short. Populated whenever the provider has data for the entity.", + "enum": null, + "default": null, + "format": null + }, + "title": { + "kind": "string", + "description": "Title of the Short. Populated whenever the provider has data for the entity.", + "enum": null, + "default": null, + "format": null + }, + "url": { + "kind": "string", + "description": "Watch URL for the Short. Populated whenever the provider has data for the entity.", + "enum": null, + "default": null, + "format": null + }, + "views": { + "kind": "integer", + "description": "View count, or 0 when the source did not publish one. Read viewsAvailable before trusting a 0.", + "minimum": null, + "maximum": null, + "default": null + }, + "viewsAvailable": { + "kind": "boolean", + "description": "False when the source published no view count, so views is a placeholder rather than a measured zero.", + "default": null + } + }, + "required": [ + "id", + "url", + "title", + "views", + "viewsAvailable", + "contentType" + ], + "open": true, + "mustPopulate": [ + "id", + "title", + "url" + ] + }, + "mustPopulate": true + } + }, + "required": [ + "shorts" + ], + "open": false, + "mustPopulate": [ + "shorts" + ] + } + }, + "pagination": { + "paginated": true, + "itemsField": "shorts", + "cursorInputField": "cursor", + "nextCursorField": "nextCursor" + } + }, { "slug": "youtube.trending_shorts", "platform": "youtube", @@ -85238,7 +85416,7 @@ "operationId": "youtube_video", "name": "YouTube Video", "category": "video", - "description": "Fetch a YouTube video's metadata (title, channel, views, likes, duration, publish date) by URL or ID.", + "description": "Fetch a YouTube video or Short's metadata (title, channel, views, likes, duration, publish date) by URL or ID.", "pricing": { "priceUsd": 0.00125, "baseUsd": null, @@ -85261,7 +85439,7 @@ "properties": { "id": { "kind": "string", - "description": "YouTube video ID.", + "description": "YouTube video ID. A Short uses the same ID as any other video.", "enum": null, "default": null, "format": null @@ -85275,7 +85453,7 @@ }, "url": { "kind": "string", - "description": "Full YouTube video URL.", + "description": "Full YouTube video URL. Shorts (youtube.com/shorts/...), youtu.be, live, and embed URLs all work.", "enum": null, "default": null, "format": null @@ -85379,7 +85557,7 @@ "operationId": "youtube_video_comments", "name": "YouTube Video Comments", "category": "video", - "description": "List the comments on a YouTube video by URL with cursor pagination (text, author, likes, reply count).", + "description": "List the comments on a YouTube video or Short by URL with cursor pagination (text, author, likes, reply count).", "pricing": { "priceUsd": 0.002, "baseUsd": null, @@ -85423,7 +85601,7 @@ }, "url": { "kind": "string", - "description": "Full YouTube video URL.", + "description": "Full YouTube video URL. Shorts (youtube.com/shorts/...) and youtu.be URLs also work.", "enum": null, "default": null, "format": null @@ -85678,7 +85856,7 @@ "operationId": "youtube_video_transcript", "name": "YouTube Video Transcript", "category": "video", - "description": "Fetch the transcript/captions of a YouTube video by URL or ID.", + "description": "Fetch the transcript/captions of a YouTube video or Short by URL or ID.", "pricing": { "priceUsd": 0.00125, "baseUsd": null, @@ -85701,7 +85879,7 @@ "properties": { "id": { "kind": "string", - "description": "YouTube video ID.", + "description": "YouTube video ID. A Short uses the same ID as any other video.", "enum": null, "default": null, "format": null @@ -85715,7 +85893,7 @@ }, "url": { "kind": "string", - "description": "Full YouTube video URL.", + "description": "Full YouTube video URL. Shorts (youtube.com/shorts/...), youtu.be, live, and embed URLs all work.", "enum": null, "default": null, "format": null @@ -85806,12 +85984,12 @@ "operationId": "youtube_video_transcript_full", "name": "YouTube Video Transcript (Provenance)", "category": "video", - "description": "Fetch a YouTube transcript with timed segments and its provenance: whether the words are creator-written captions or machine speech recognition.", + "description": "Fetch a YouTube video or Short transcript with timed segments and its provenance: whether the words are creator-written captions or machine speech recognition.", "pricing": { - "priceUsd": 0.00308, - "baseUsd": 0.00308, - "perItemUsd": 0, - "perItemUnit": "result" + "priceUsd": 0.001, + "baseUsd": null, + "perItemUsd": null, + "perItemUnit": null }, "tsNamespace": "youtube", "tsMethod": "videoTranscriptFull", @@ -85854,7 +86032,7 @@ }, "url": { "kind": "string", - "description": "YouTube video URL (e.g. \"https://www.youtube.com/watch?v=dQw4w9WgXcQ\").", + "description": "YouTube video or Short URL (e.g. \"https://www.youtube.com/watch?v=dQw4w9WgXcQ\" or \"https://www.youtube.com/shorts/Fir1x9cw2vg\").", "enum": null, "default": null, "format": null diff --git a/openapi.json b/openapi.json index 6e12939..b9f145e 100644 --- a/openapi.json +++ b/openapi.json @@ -1,6 +1,255 @@ { "components": { "schemas": { + "APIDetail": { + "properties": { + "beta": { + "description": "Present when this API is published as beta. A maturity label only: a beta API routes, serves and bills exactly like any other.", + "type": "boolean" + }, + "category": { + "description": "The API's category, accepted back as the `category` scope.", + "type": "string" + }, + "description": { + "description": "One-line summary of what this API returns.", + "type": "string" + }, + "excludesCallerDelay": { + "description": "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.", + "type": "boolean" + }, + "execution": { + "allOf": [ + { + "$ref": "#/components/schemas/DiscoveryExecution" + } + ], + "description": "The runtime protocol a run of this API follows." + }, + "failover": { + "description": "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.", + "type": "boolean" + }, + "heavy": { + "description": "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.", + "type": "boolean" + }, + "howItWorks": { + "description": "Authored prose explaining how this API produces its result. Absent when unauthored.", + "type": "string" + }, + "id": { + "description": "Stable identifier for this API.", + "type": "string" + }, + "inputSchema": { + "description": "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.", + "type": "object" + }, + "lanes": { + "description": "The sources that can serve this API, cheapest customer charge first. Each carries its own price and its own public identity.", + "items": { + "$ref": "#/components/schemas/APISourceOffer" + }, + "type": "array" + }, + "latency": { + "anyOf": [ + { + "$ref": "#/components/schemas/DiscoveryLatency" + }, + { + "type": "null" + } + ], + "description": "Trailing-window distribution of successful runs, or null when there are too few observations to publish." + }, + "method": { + "description": "HTTP method for this API's concrete operation. Gateway authority: use it rather than assuming one.", + "type": "string" + }, + "name": { + "description": "Display name.", + "type": "string" + }, + "outputSchema": { + "description": "This API's normalized output as a JSON Schema document.", + "type": "object" + }, + "path": { + "description": "Concrete gateway path for this API. Gateway authority: use it rather than rebuilding a route from the slug.", + "type": "string" + }, + "pricing": { + "allOf": [ + { + "$ref": "#/components/schemas/DiscoveryPricing" + } + ], + "description": "Static USD pricing for this API." + }, + "provider": { + "const": "AnyAPI", + "description": "Always \"AnyAPI\". AnyAPI is the provider of record for every API in the catalog.", + "type": "string" + }, + "slug": { + "description": "The API's slug. Use it as {sku} on GET /v1/apis/{sku} and POST /v1/run/{sku}.", + "type": "string" + }, + "tryEligible": { + "description": "True when this API can be run from the free public try surface.", + "type": "boolean" + }, + "tryMaxItems": { + "description": "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.", + "type": "integer" + } + }, + "required": [ + "id", + "slug", + "category", + "name", + "description", + "method", + "path", + "provider", + "execution", + "pricing", + "lanes", + "tryEligible", + "failover", + "latency" + ], + "type": "object" + }, + "APISourceOffer": { + "properties": { + "pricing": { + "allOf": [ + { + "$ref": "#/components/schemas/DiscoveryOffer" + } + ], + "description": "This source's own customer price." + }, + "source": { + "allOf": [ + { + "$ref": "#/components/schemas/DiscoverySource" + } + ], + "description": "This source's public identity." + } + }, + "required": [ + "pricing", + "source" + ], + "type": "object" + }, + "APISummary": { + "properties": { + "beta": { + "description": "Present when this API is published as beta. A maturity label only: a beta API routes, serves and bills exactly like any other.", + "type": "boolean" + }, + "category": { + "description": "The API's category, accepted back as the `category` scope.", + "type": "string" + }, + "description": { + "description": "One-line summary of what this API returns.", + "type": "string" + }, + "excludesCallerDelay": { + "description": "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.", + "type": "boolean" + }, + "execution": { + "allOf": [ + { + "$ref": "#/components/schemas/DiscoveryExecution" + } + ], + "description": "The runtime protocol a run of this API follows." + }, + "failover": { + "description": "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.", + "type": "boolean" + }, + "heavy": { + "description": "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.", + "type": "boolean" + }, + "id": { + "description": "Stable identifier for this API.", + "type": "string" + }, + "lanes": { + "description": "The sources that can serve this API, cheapest customer charge first. Each carries its own price and its own public identity.", + "items": { + "$ref": "#/components/schemas/APISourceOffer" + }, + "type": "array" + }, + "method": { + "description": "HTTP method for this API's concrete operation. Gateway authority: use it rather than assuming one.", + "type": "string" + }, + "name": { + "description": "Display name.", + "type": "string" + }, + "path": { + "description": "Concrete gateway path for this API. Gateway authority: use it rather than rebuilding a route from the slug.", + "type": "string" + }, + "pricing": { + "allOf": [ + { + "$ref": "#/components/schemas/DiscoveryPricing" + } + ], + "description": "Static USD pricing for this API." + }, + "provider": { + "const": "AnyAPI", + "description": "Always \"AnyAPI\". AnyAPI is the provider of record for every API in the catalog.", + "type": "string" + }, + "slug": { + "description": "The API's slug. Use it as {sku} on GET /v1/apis/{sku} and POST /v1/run/{sku}.", + "type": "string" + }, + "tryEligible": { + "description": "True when this API can be run from the free public try surface.", + "type": "boolean" + }, + "tryMaxItems": { + "description": "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.", + "type": "integer" + } + }, + "required": [ + "id", + "slug", + "category", + "name", + "description", + "method", + "path", + "provider", + "execution", + "pricing", + "lanes", + "tryEligible", + "failover" + ], + "type": "object" + }, "AgentUpgrade": { "properties": { "authorizationServer": { @@ -23,6 +272,230 @@ ], "type": "object" }, + "CatalogAPI": { + "properties": { + "beta": { + "description": "Present when this API is published as beta. A maturity label only: a beta API routes, serves and bills exactly like any other.", + "type": "boolean" + }, + "category": { + "description": "The API's category, accepted back as the `category` scope.", + "type": "string" + }, + "description": { + "description": "One-line summary of what this API returns.", + "type": "string" + }, + "excludesCallerDelay": { + "description": "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.", + "type": "boolean" + }, + "execution": { + "allOf": [ + { + "$ref": "#/components/schemas/DiscoveryExecution" + } + ], + "description": "The runtime protocol a run of this API follows." + }, + "failover": { + "description": "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.", + "type": "boolean" + }, + "heavy": { + "description": "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.", + "type": "boolean" + }, + "id": { + "description": "Stable identifier for this API.", + "type": "string" + }, + "lanes": { + "description": "The sources that can serve this API, cheapest customer charge first. Each carries its own price and its own public identity.", + "items": { + "$ref": "#/components/schemas/CatalogSourceOffer" + }, + "type": "array" + }, + "method": { + "description": "HTTP method for this API's concrete operation. Gateway authority: use it rather than assuming one.", + "type": "string" + }, + "name": { + "description": "Display name.", + "type": "string" + }, + "path": { + "description": "Concrete gateway path for this API. Gateway authority: use it rather than rebuilding a route from the slug.", + "type": "string" + }, + "pricing": { + "allOf": [ + { + "$ref": "#/components/schemas/DiscoveryPricing" + } + ], + "description": "Static USD pricing for this API." + }, + "provider": { + "const": "AnyAPI", + "description": "Always \"AnyAPI\". AnyAPI is the provider of record for every API in the catalog.", + "type": "string" + }, + "slug": { + "description": "The API's slug. Use it as {sku} on GET /v1/apis/{sku} and POST /v1/run/{sku}.", + "type": "string" + }, + "tryEligible": { + "description": "True when this API can be run from the free public try surface.", + "type": "boolean" + }, + "tryMaxItems": { + "description": "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.", + "type": "integer" + } + }, + "required": [ + "id", + "slug", + "category", + "name", + "description", + "method", + "path", + "provider", + "execution", + "pricing", + "lanes", + "tryEligible", + "failover" + ], + "type": "object" + }, + "CatalogSearchResult": { + "properties": { + "category": { + "description": "The API's category, accepted back as the `category` scope.", + "type": "string" + }, + "description": { + "description": "One-line summary of what this API returns.", + "type": "string" + }, + "excludesCallerDelay": { + "description": "Present when this API accepts a caller-requested wait that the published latency excludes.", + "type": "boolean" + }, + "execution": { + "allOf": [ + { + "$ref": "#/components/schemas/DiscoveryExecution" + } + ], + "description": "The runtime protocol a run of this API follows." + }, + "failover": { + "description": "True when more than one source can serve this API.", + "type": "boolean" + }, + "highlightFields": { + "description": "Output fields of this API that matched the query, with each field's own schema description as `why`. Computed for the top few results only, so an absent array means no highlights were produced rather than no matching field.", + "items": { + "$ref": "#/components/schemas/DiscoveryHighlightField" + }, + "type": "array" + }, + "method": { + "description": "HTTP method for this API's concrete operation.", + "type": "string" + }, + "name": { + "description": "Display name.", + "type": "string" + }, + "path": { + "description": "Concrete gateway path for this API.", + "type": "string" + }, + "platformId": { + "description": "The API's platform, accepted back as the `platform` scope.", + "type": "string" + }, + "pricing": { + "allOf": [ + { + "$ref": "#/components/schemas/DiscoveryPricing" + } + ], + "description": "Static USD pricing for this API." + }, + "provider": { + "const": "AnyAPI", + "description": "Always \"AnyAPI\".", + "type": "string" + }, + "relevance": { + "description": "How well this API matched, relative to the others in this response.", + "type": "number" + }, + "slug": { + "description": "The API's slug. Feed it to GET /v1/apis/{sku} for the input schema.", + "type": "string" + }, + "tryMaxItems": { + "description": "The most items the free try returns, when this API is try-eligible.", + "type": "integer" + } + }, + "required": [ + "slug", + "category", + "name", + "description", + "method", + "path", + "provider", + "execution", + "pricing", + "failover", + "platformId", + "relevance" + ], + "type": "object" + }, + "CatalogSourceOffer": { + "properties": { + "health": { + "allOf": [ + { + "$ref": "#/components/schemas/DiscoverySourceHealth" + } + ], + "description": "Measured health for this source. Absent when it has too little traffic to publish." + }, + "pricing": { + "allOf": [ + { + "$ref": "#/components/schemas/DiscoveryOffer" + } + ], + "description": "This source's own customer price." + }, + "source": { + "allOf": [ + { + "$ref": "#/components/schemas/DiscoverySource" + } + ], + "description": "This source's public identity." + } + }, + "required": [ + "pricing", + "source" + ], + "type": "object" + }, "DeviceUpgrade": { "properties": { "deviceCode": { @@ -67,6 +540,221 @@ ], "type": "object" }, + "DiscoveryExecution": { + "properties": { + "mode": { + "description": "sync answers on the run request; durable accepts the run as a Request you poll at GET /v1/requests/{id}.", + "enum": [ + "sync", + "durable" + ], + "type": "string" + } + }, + "required": [ + "mode" + ], + "type": "object" + }, + "DiscoveryHighlightField": { + "properties": { + "path": { + "description": "JSON path of the output field inside this API's outputSchema.", + "type": "string" + }, + "type": { + "description": "JSON type of that field.", + "type": "string" + }, + "why": { + "description": "The field's own schema description. Absent when the schema gives none.", + "type": "string" + } + }, + "required": [ + "path", + "type" + ], + "type": "object" + }, + "DiscoveryLatency": { + "properties": { + "basis": { + "const": "service_time_excludes_caller_requested_delay", + "description": "Machine-readable definition of what these percentiles measure.", + "type": "string" + }, + "p50Ms": { + "description": "Median successful end-to-end service time, in milliseconds.", + "type": "integer" + }, + "p95Ms": { + "description": "95th percentile successful end-to-end service time, in milliseconds.", + "type": "integer" + }, + "p99Ms": { + "description": "99th percentile successful end-to-end service time, in milliseconds. An observation, not a maximum.", + "type": "integer" + }, + "sample": { + "description": "Successful executions behind these percentiles.", + "type": "integer" + }, + "window": { + "const": "30d", + "description": "The trailing window these percentiles cover.", + "type": "string" + } + }, + "required": [ + "window", + "p50Ms", + "p95Ms", + "p99Ms", + "sample", + "basis" + ], + "type": "object" + }, + "DiscoveryOffer": { + "properties": { + "baseUsd": { + "description": "Linear offers only: USD charged for the call before per-unit billing.", + "type": "number" + }, + "maxPer1kUsd": { + "description": "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.", + "type": "number" + }, + "maxUsd": { + "description": "The most one request on this offer can be billed, in USD.", + "type": "number" + }, + "model": { + "description": "Pricing model. A flat offer is one price per request; a linear offer also carries baseUsd and perUnitUsd.", + "enum": [ + "flat", + "linear" + ], + "type": "string" + }, + "perUnitUsd": { + "description": "Linear offers only: USD charged for each billable unit inside the call.", + "type": "number" + }, + "unit": { + "description": "The billable unit. A flat offer always publishes \"request\".", + "type": "string" + } + }, + "required": [ + "model", + "unit", + "maxUsd", + "maxPer1kUsd" + ], + "type": "object" + }, + "DiscoveryPricing": { + "properties": { + "failoverMaxPer1kUsd": { + "description": "failoverMaxUsd in the per-1,000-request denomination.", + "type": "number" + }, + "failoverMaxUsd": { + "description": "The greatest customer-price maximum across those same sources, in USD.", + "type": "number" + }, + "from": { + "allOf": [ + { + "$ref": "#/components/schemas/DiscoveryOffer" + } + ], + "description": "The complete offer for the first source that will be tried, where sources are ordered by the customer charge, cheapest first." + } + }, + "required": [ + "from", + "failoverMaxUsd", + "failoverMaxPer1kUsd" + ], + "type": "object" + }, + "DiscoverySource": { + "properties": { + "artworkKey": { + "description": "Key for this source's artwork.", + "type": "string" + }, + "id": { + "description": "Stable identifier for this source.", + "type": "string" + }, + "kind": { + "description": "anonymous is a stable identity for an unattributed source; brand names the dataset that supplies the data.", + "enum": [ + "anonymous", + "brand" + ], + "type": "string" + }, + "name": { + "description": "Display name for this source.", + "type": "string" + } + }, + "required": [ + "id", + "name", + "kind", + "artworkKey" + ], + "type": "object" + }, + "DiscoverySourceHealth": { + "properties": { + "latencyP50Ms": { + "description": "Median successful service time for this source, in milliseconds.", + "type": "integer" + }, + "latencySample": { + "description": "Requests behind latencyP50Ms.", + "type": "integer" + }, + "requests": { + "description": "Requests routed to this source in the window.", + "type": "integer" + }, + "servedRequests": { + "description": "Requests this source served in the window.", + "type": "integer" + }, + "uptimePct": { + "description": "Share of requests this source served successfully, as a percentage.", + "type": "number" + }, + "uptimeSample": { + "description": "Requests behind uptimePct.", + "type": "integer" + }, + "window": { + "const": "30d", + "description": "The trailing window these measurements cover.", + "type": "string" + } + }, + "required": [ + "window", + "uptimePct", + "latencyP50Ms", + "uptimeSample", + "latencySample", + "requests", + "servedRequests" + ], + "type": "object" + }, "Error": { "properties": { "code": { @@ -983,6 +1671,243 @@ }, "openapi": "3.1.0", "paths": { + "/catalog": { + "get": { + "description": "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/{sku} returns them for one API.", + "operationId": "browseCatalog", + "parameters": [ + { + "description": "Restrict the response to one category, using an entry's `category`.", + "in": "query", + "name": "category", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": { + "apis": { + "items": { + "$ref": "#/components/schemas/CatalogAPI" + }, + "type": "array" + } + }, + "required": [ + "apis" + ], + "type": "object" + } + } + }, + "description": "The customer-safe catalog." + } + }, + "security": [], + "summary": "Browse the API catalog" + } + }, + "/catalog/search": { + "get": { + "description": "Find an API by what you need rather than by its slug. Results are ranked, and `ranking` names the ranker that served them. A request must name `q`, `category`, or `platform`: a scope on its own is a complete question (\"everything this platform can do\"), while a request naming none of the three has nothing to answer and is rejected. Searching is free and needs no key. Feed a result's `slug` to GET /v1/apis/{sku} for its input schema before your first run.", + "operationId": "searchCatalog", + "parameters": [ + { + "description": "What you need, in your own words. Long queries are truncated before ranking.", + "in": "query", + "name": "q", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Restrict the response to one category, using an entry's `category`.", + "in": "query", + "name": "category", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Restrict results to one platform, using a result's `platformId`.", + "in": "query", + "name": "platform", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Maximum results in this response. Omit it for the ranked default. A value above the server's maximum is reduced to it rather than rejected, and `total` still reports how many matched.", + "in": "query", + "name": "limit", + "required": false, + "schema": { + "minimum": 1, + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": { + "ranking": { + "description": "Which ranker served this response.", + "enum": [ + "keyword", + "semantic" + ], + "type": "string" + }, + "results": { + "items": { + "$ref": "#/components/schemas/CatalogSearchResult" + }, + "type": "array" + }, + "total": { + "description": "Matches found before `limit` was applied.", + "type": "integer" + } + }, + "required": [ + "results", + "total", + "ranking" + ], + "type": "object" + } + } + }, + "description": "Ranked matches." + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + }, + "description": "The request named neither a query nor a scope." + } + }, + "security": [], + "summary": "Search the API catalog" + } + }, + "/v1/apis": { + "get": { + "description": "The same catalog as GET /catalog, without measured source health, for a caller that is choosing an API to run rather than displaying uptime. Schemas are omitted; GET /v1/apis/{sku} returns them for one API.", + "operationId": "listApis", + "parameters": [ + { + "description": "Restrict the response to one category, using an entry's `category`.", + "in": "query", + "name": "category", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": { + "apis": { + "items": { + "$ref": "#/components/schemas/APISummary" + }, + "type": "array" + } + }, + "required": [ + "apis" + ], + "type": "object" + } + } + }, + "description": "The APIs available to your key." + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + }, + "description": "Missing or invalid API key." + } + }, + "summary": "List the APIs you can run" + } + }, + "/v1/apis/{sku}": { + "get": { + "description": "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.", + "operationId": "getApi", + "parameters": [ + { + "description": "The API's slug, as published by discovery (for example `reddit.search`).", + "in": "path", + "name": "sku", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIDetail" + } + } + }, + "description": "The API's full contract." + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + }, + "description": "Missing or invalid API key." + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + }, + "description": "Unknown slug, or an API no source can serve." + } + }, + "summary": "Get one API" + } + }, "/v1/balance": { "get": { "description": "Remaining USD in the wallet behind your API key. Reading the balance is free. The amount is what is left to spend across all APIs, not a per-request price: compare it against an operation's own USD cost before you run one.", @@ -1236,6 +2161,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -1744,6 +2678,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -2262,6 +3205,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -2754,6 +3706,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -2803,7 +3764,10 @@ "url" ], "title": "Ahrefs domain overview input", - "type": "object" + "type": "object", + "x-aliases": { + "target": "url" + } } } }, @@ -3262,6 +4226,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -3915,6 +4888,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -4440,6 +5422,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -4980,6 +5971,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -5508,6 +6508,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -6056,6 +7065,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -6637,6 +7655,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -7163,6 +8190,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -7752,6 +8788,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -8341,6 +9386,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -8866,6 +9920,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -9428,6 +10491,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -10040,6 +11112,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -10634,6 +11715,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -11259,6 +12349,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -11980,6 +13079,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -12508,6 +13616,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -12996,6 +14113,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -13479,6 +14605,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -13981,6 +15116,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -14557,6 +15701,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -15222,6 +16375,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -15793,6 +16955,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -16323,6 +17494,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Required. Owns one durable Request and provider dispatch. Active duplicates return the owning Request; completed successes replay without another charge; different semantics return 409.", "in": "header", @@ -16877,6 +18057,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -17419,7 +18608,6 @@ } }, "required": [ - "name", "domain" ], "type": "object" @@ -17792,6 +18980,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -18495,6 +19692,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -19370,6 +20576,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -19443,7 +20658,11 @@ } }, "title": "Company Enrichment - Prospeo input", - "type": "object" + "type": "object", + "x-aliases": { + "domain": "companyWebsite", + "website": "companyWebsite" + } } } }, @@ -20180,6 +21399,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -21090,6 +22318,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -21993,6 +23230,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -22815,6 +24061,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -23701,6 +24956,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -24623,6 +25887,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -25540,6 +26813,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -26683,6 +27965,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -27227,6 +28518,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -27859,6 +29159,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -28364,6 +29673,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -28975,6 +30293,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -29544,6 +30871,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -30063,6 +31399,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -30611,6 +31956,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -31187,6 +32541,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -31767,6 +33130,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -32333,6 +33705,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -32942,6 +34323,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -33446,6 +34836,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -33955,6 +35354,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -34474,6 +35882,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -35056,6 +36473,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -35726,6 +37152,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Required. Owns one durable Request and provider dispatch. Active duplicates return the owning Request; completed successes replay without another charge; different semantics return 409.", "in": "header", @@ -36200,6 +37635,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -36770,6 +38214,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -37264,6 +38717,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -37763,6 +39225,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -38276,6 +39747,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Required. Owns one durable Request and provider dispatch. Active duplicates return the owning Request; completed successes replay without another charge; different semantics return 409.", "in": "header", @@ -38674,6 +40154,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -39201,6 +40690,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -39740,6 +41238,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -40211,6 +41718,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -40831,6 +42347,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -41417,7 +42942,7 @@ }, "/v1/run/facebook.ad_transcript": { "post": { - "description": "Get the spoken-word transcript of a Meta Ad Library video ad by ad ID or URL.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Payment outcome follows the selected rail's settlement policy.\n\n**Catalog:** [Facebook Ad Transcript pricing and uptime](https://getanyapi.com/api/facebook/ad-transcript) - live USD price, lane routing, and measured 30-day uptime. [Every Facebook endpoint](https://getanyapi.com/api/facebook).", + "description": "Get the spoken-word transcript of a Meta Ad Library video ad by ad ID or URL.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes are available in execution order. A failed attempt uses the next lane only when the request's payment authorizes that lane's price; the normalized schema stays the same.\n\n**Catalog:** [Facebook Ad Transcript pricing and uptime](https://getanyapi.com/api/facebook/ad-transcript) - live USD price, lane routing, and measured 30-day uptime. [Every Facebook endpoint](https://getanyapi.com/api/facebook).", "operationId": "facebook_ad_transcript", "parameters": [ { @@ -41457,6 +42982,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -41786,9 +43320,10 @@ }, "x-payment-info": { "price": { - "amount": "0.002000", "currency": "USD", - "mode": "fixed" + "max": "0.036000", + "min": "0.002000", + "mode": "dynamic" }, "protocols": [ { @@ -41828,10 +43363,11 @@ ] }, "pricing": { - "amount": "0.002000", "currency": "USD", + "max": "0.036000", + "min": "0.002000", "minimumUsd": "0.001000", - "mode": "fixed", + "mode": "dynamic", "quoteBasis": "floor" }, "protocol": { @@ -41860,10 +43396,11 @@ ] }, "pricing": { - "amount": "0.002000", "currency": "USD", + "max": "0.036000", + "min": "0.002000", "minimumUsd": null, - "mode": "fixed", + "mode": "dynamic", "quoteBasis": "funded_ceiling" }, "protocol": { @@ -41889,7 +43426,7 @@ }, "/v1/run/facebook.ads_search": { "post": { - "description": "Search the Meta Ad Library by keyword and get matching ads (advertiser, creative text, CTA, platforms, and run dates) with cursor pagination.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Payment outcome follows the selected rail's settlement policy.\n\n**Catalog:** [Facebook Ad Search pricing and uptime](https://getanyapi.com/api/facebook/ads-search) - live USD price, lane routing, and measured 30-day uptime. [Every Facebook endpoint](https://getanyapi.com/api/facebook).", + "description": "Search the Meta Ad Library by keyword and get matching ads (advertiser, creative text, CTA, platforms, and run dates) with cursor pagination.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes are available in execution order. A failed attempt uses the next lane only when the request's payment authorizes that lane's price; the normalized schema stays the same.\n\n**Catalog:** [Facebook Ad Search pricing and uptime](https://getanyapi.com/api/facebook/ads-search) - live USD price, lane routing, and measured 30-day uptime. [Every Facebook endpoint](https://getanyapi.com/api/facebook).", "operationId": "facebook_ads_search", "parameters": [ { @@ -41929,6 +43466,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -42456,9 +44002,10 @@ }, "x-payment-info": { "price": { - "amount": "0.002000", "currency": "USD", - "mode": "fixed" + "max": "0.018000", + "min": "0.002000", + "mode": "dynamic" }, "protocols": [ { @@ -42498,10 +44045,11 @@ ] }, "pricing": { - "amount": "0.002000", "currency": "USD", + "max": "0.018000", + "min": "0.002000", "minimumUsd": "0.001000", - "mode": "fixed", + "mode": "dynamic", "quoteBasis": "floor" }, "protocol": { @@ -42530,10 +44078,11 @@ ] }, "pricing": { - "amount": "0.002000", "currency": "USD", + "max": "0.018000", + "min": "0.002000", "minimumUsd": null, - "mode": "fixed", + "mode": "dynamic", "quoteBasis": "funded_ceiling" }, "protocol": { @@ -42599,6 +44148,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -43144,6 +44702,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -43783,6 +45350,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -44306,6 +45882,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -44797,7 +46382,7 @@ }, "/v1/run/facebook.events_search": { "post": { - "description": "Search public Facebook events by keyword and get structured event records (name, schedule, venue, pricing, and attendance) as normalized JSON.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Payment outcome follows the selected rail's settlement policy.\n\n**Catalog:** [Facebook Events Search pricing and uptime](https://getanyapi.com/api/facebook/events-search) - live USD price, lane routing, and measured 30-day uptime. [Every Facebook endpoint](https://getanyapi.com/api/facebook).", + "description": "Search public Facebook events by keyword and get structured event records (name, schedule, venue, pricing, and attendance) as normalized JSON.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes are available in execution order. A failed attempt uses the next lane only when the request's payment authorizes that lane's price; the normalized schema stays the same.\n\n**Catalog:** [Facebook Events Search pricing and uptime](https://getanyapi.com/api/facebook/events-search) - live USD price, lane routing, and measured 30-day uptime. [Every Facebook endpoint](https://getanyapi.com/api/facebook).", "operationId": "facebook_events_search", "parameters": [ { @@ -44837,6 +46422,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -45230,9 +46824,10 @@ }, "x-payment-info": { "price": { - "amount": "0.002000", "currency": "USD", - "mode": "fixed" + "max": "0.003600", + "min": "0.002000", + "mode": "dynamic" }, "protocols": [ { @@ -45272,10 +46867,11 @@ ] }, "pricing": { - "amount": "0.002000", "currency": "USD", + "max": "0.003600", + "min": "0.002000", "minimumUsd": "0.001000", - "mode": "fixed", + "mode": "dynamic", "quoteBasis": "floor" }, "protocol": { @@ -45304,10 +46900,11 @@ ] }, "pricing": { - "amount": "0.002000", "currency": "USD", + "max": "0.003600", + "min": "0.002000", "minimumUsd": null, - "mode": "fixed", + "mode": "dynamic", "quoteBasis": "funded_ceiling" }, "protocol": { @@ -45373,6 +46970,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -45836,7 +47442,7 @@ }, "/v1/run/facebook.group_posts": { "post": { - "description": "Fetch recent posts from any public Facebook group by URL: text, author, reactions, and comment counts.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Payment outcome follows the selected rail's settlement policy.\n\n**Catalog:** [Facebook Group Posts pricing and uptime](https://getanyapi.com/api/facebook/group-posts) - live USD price, lane routing, and measured 30-day uptime. [Every Facebook endpoint](https://getanyapi.com/api/facebook).", + "description": "Fetch recent posts from any public Facebook group by URL: text, author, reactions, and comment counts.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes are available in execution order. A failed attempt uses the next lane only when the request's payment authorizes that lane's price; the normalized schema stays the same.\n\n**Catalog:** [Facebook Group Posts pricing and uptime](https://getanyapi.com/api/facebook/group-posts) - live USD price, lane routing, and measured 30-day uptime. [Every Facebook endpoint](https://getanyapi.com/api/facebook).", "operationId": "facebook_group_posts", "parameters": [ { @@ -45876,6 +47482,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -46267,9 +47882,10 @@ }, "x-payment-info": { "price": { - "amount": "0.002000", "currency": "USD", - "mode": "fixed" + "max": "0.003600", + "min": "0.002000", + "mode": "dynamic" }, "protocols": [ { @@ -46309,10 +47925,11 @@ ] }, "pricing": { - "amount": "0.002000", "currency": "USD", + "max": "0.003600", + "min": "0.002000", "minimumUsd": "0.001000", - "mode": "fixed", + "mode": "dynamic", "quoteBasis": "floor" }, "protocol": { @@ -46341,10 +47958,11 @@ ] }, "pricing": { - "amount": "0.002000", "currency": "USD", + "max": "0.003600", + "min": "0.002000", "minimumUsd": null, - "mode": "fixed", + "mode": "dynamic", "quoteBasis": "funded_ceiling" }, "protocol": { @@ -46370,7 +47988,7 @@ }, "/v1/run/facebook.marketplace": { "post": { - "description": "Search Facebook Marketplace listings by keyword near a location, filter by price, condition, delivery, recency, and availability, and get title, price, location, and image as normalized JSON.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Payment outcome follows the selected rail's settlement policy.\n\n**Catalog:** [Facebook Marketplace pricing and uptime](https://getanyapi.com/api/facebook/marketplace) - live USD price, lane routing, and measured 30-day uptime. [Every Facebook endpoint](https://getanyapi.com/api/facebook).", + "description": "Search Facebook Marketplace listings by keyword near a location, filter by price, condition, delivery, recency, and availability, and get title, price, location, and image as normalized JSON.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes are available in execution order. A failed attempt uses the next lane only when the request's payment authorizes that lane's price; the normalized schema stays the same.\n\n**Catalog:** [Facebook Marketplace pricing and uptime](https://getanyapi.com/api/facebook/marketplace) - live USD price, lane routing, and measured 30-day uptime. [Every Facebook endpoint](https://getanyapi.com/api/facebook).", "operationId": "facebook_marketplace", "parameters": [ { @@ -46410,6 +48028,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -46868,9 +48495,10 @@ }, "x-payment-info": { "price": { - "amount": "0.002000", "currency": "USD", - "mode": "fixed" + "max": "0.003600", + "min": "0.002000", + "mode": "dynamic" }, "protocols": [ { @@ -46910,10 +48538,11 @@ ] }, "pricing": { - "amount": "0.002000", "currency": "USD", + "max": "0.003600", + "min": "0.002000", "minimumUsd": "0.001000", - "mode": "fixed", + "mode": "dynamic", "quoteBasis": "floor" }, "protocol": { @@ -46942,10 +48571,11 @@ ] }, "pricing": { - "amount": "0.002000", "currency": "USD", + "max": "0.003600", + "min": "0.002000", "minimumUsd": null, - "mode": "fixed", + "mode": "dynamic", "quoteBasis": "funded_ceiling" }, "protocol": { @@ -47011,6 +48641,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -47490,7 +49129,7 @@ }, "/v1/run/facebook.marketplace_location_search": { "post": { - "description": "Resolve a place name to Facebook Marketplace locations with coordinates and metadata as normalized JSON.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Payment outcome follows the selected rail's settlement policy.\n\n**Catalog:** [Facebook Marketplace Location Search pricing and uptime](https://getanyapi.com/api/facebook/marketplace-location-search) - live USD price, lane routing, and measured 30-day uptime. [Every Facebook endpoint](https://getanyapi.com/api/facebook).", + "description": "Resolve a place name to Facebook Marketplace locations with coordinates and metadata as normalized JSON.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes are available in execution order. A failed attempt uses the next lane only when the request's payment authorizes that lane's price; the normalized schema stays the same.\n\n**Catalog:** [Facebook Marketplace Location Search pricing and uptime](https://getanyapi.com/api/facebook/marketplace-location-search) - live USD price, lane routing, and measured 30-day uptime. [Every Facebook endpoint](https://getanyapi.com/api/facebook).", "operationId": "facebook_marketplace_location_search", "parameters": [ { @@ -47530,6 +49169,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -47891,9 +49539,10 @@ }, "x-payment-info": { "price": { - "amount": "0.002000", "currency": "USD", - "mode": "fixed" + "max": "0.003600", + "min": "0.002000", + "mode": "dynamic" }, "protocols": [ { @@ -47933,10 +49582,11 @@ ] }, "pricing": { - "amount": "0.002000", "currency": "USD", + "max": "0.003600", + "min": "0.002000", "minimumUsd": "0.001000", - "mode": "fixed", + "mode": "dynamic", "quoteBasis": "floor" }, "protocol": { @@ -47965,10 +49615,11 @@ ] }, "pricing": { - "amount": "0.002000", "currency": "USD", + "max": "0.003600", + "min": "0.002000", "minimumUsd": null, - "mode": "fixed", + "mode": "dynamic", "quoteBasis": "funded_ceiling" }, "protocol": { @@ -48034,6 +49685,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -48077,7 +49737,10 @@ "page" ], "title": "Facebook page contact info input", - "type": "object" + "type": "object", + "x-aliases": { + "url": "page" + } } } }, @@ -48548,6 +50211,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -49075,6 +50747,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -49556,6 +51237,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -50084,6 +51774,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -50501,7 +52200,7 @@ }, "/v1/run/facebook.profile": { "post": { - "description": "Fetch a Facebook page's public profile (likes, followers, category, about) by URL or handle.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Payment outcome follows the selected rail's settlement policy.\n\n**Catalog:** [Facebook Profile pricing and uptime](https://getanyapi.com/api/facebook/profile) - live USD price, lane routing, and measured 30-day uptime. [Every Facebook endpoint](https://getanyapi.com/api/facebook).", + "description": "Fetch a Facebook page's public profile (likes, followers, category, about) by URL or handle.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes are available in execution order. A failed attempt uses the next lane only when the request's payment authorizes that lane's price; the normalized schema stays the same.\n\n**Catalog:** [Facebook Profile pricing and uptime](https://getanyapi.com/api/facebook/profile) - live USD price, lane routing, and measured 30-day uptime. [Every Facebook endpoint](https://getanyapi.com/api/facebook).", "operationId": "facebook_profile", "parameters": [ { @@ -50541,6 +52240,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -50891,9 +52599,10 @@ }, "x-payment-info": { "price": { - "amount": "0.002000", "currency": "USD", - "mode": "fixed" + "max": "0.003600", + "min": "0.002000", + "mode": "dynamic" }, "protocols": [ { @@ -50933,10 +52642,11 @@ ] }, "pricing": { - "amount": "0.002000", "currency": "USD", + "max": "0.003600", + "min": "0.002000", "minimumUsd": "0.001000", - "mode": "fixed", + "mode": "dynamic", "quoteBasis": "floor" }, "protocol": { @@ -50965,10 +52675,11 @@ ] }, "pricing": { - "amount": "0.002000", "currency": "USD", + "max": "0.003600", + "min": "0.002000", "minimumUsd": null, - "mode": "fixed", + "mode": "dynamic", "quoteBasis": "funded_ceiling" }, "protocol": { @@ -51034,6 +52745,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -51573,6 +53293,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -52130,6 +53859,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -52638,6 +54376,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -53162,6 +54909,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -53684,6 +55440,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -54218,6 +55983,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -54751,6 +56525,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -55362,6 +57145,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -55402,7 +57194,10 @@ "prompt" ], "title": "Gemini Search input", - "type": "object" + "type": "object", + "x-aliases": { + "query": "prompt" + } } } }, @@ -55862,6 +57657,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -56416,6 +58220,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -56932,6 +58745,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -57441,6 +59263,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -57964,6 +59795,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -58470,6 +60310,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -58974,6 +60823,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -59482,6 +61340,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -59990,6 +61857,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -60511,6 +62387,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -61073,6 +62958,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -61667,6 +63561,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -62164,6 +64067,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -62203,7 +64115,10 @@ "prompt" ], "title": "Google AI Overview input", - "type": "object" + "type": "object", + "x-aliases": { + "query": "prompt" + } } } }, @@ -62669,6 +64584,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -63156,6 +65080,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -63694,6 +65627,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -64193,6 +66135,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -64714,6 +66665,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -65241,6 +67201,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -65709,7 +67678,7 @@ }, "/v1/run/google.search": { "post": { - "description": "Run a Google web search and get the organic results (title, link, snippet, position) as clean JSON. Returns about 10 results per call - Google stopped honoring bulk result counts in September 2025, so a limit above 10 is accepted but returns no more than a page. Pass the returned nextCursor back as cursor to walk further, or use google.search_100 for up to 100 ranked results in one call, which is cheaper past roughly 20 results.\n\n**Price:** \\$0.99 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes are available in execution order. A failed attempt uses the next lane only when the request's payment authorizes that lane's price; the normalized schema stays the same.\n\n**Catalog:** [Google Search pricing and uptime](https://getanyapi.com/api/google/search) - live USD price, lane routing, and measured 30-day uptime. [Every Google endpoint](https://getanyapi.com/api/google).", + "description": "Run a Google web search and get the organic results (title, link, snippet, position) as clean JSON. Returns about 10 results per call - Google stopped honoring bulk result counts in September 2025, so a limit above 10 is accepted but returns no more than a page. Pass the returned nextCursor back as cursor to walk further, or use google.search_100 for up to 100 ranked results in one call, which is cheaper past roughly 20 results.\n\n**Price:** \\$0.90 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes are available in execution order. A failed attempt uses the next lane only when the request's payment authorizes that lane's price; the normalized schema stays the same.\n\n**Catalog:** [Google Search pricing and uptime](https://getanyapi.com/api/google/search) - live USD price, lane routing, and measured 30-day uptime. [Every Google endpoint](https://getanyapi.com/api/google).", "operationId": "google_search", "parameters": [ { @@ -65749,6 +67718,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -65831,7 +67809,11 @@ "query" ], "title": "Google search input", - "type": "object" + "type": "object", + "x-aliases": { + "num": "limit", + "q": "query" + } } } }, @@ -66149,7 +68131,7 @@ "price": { "currency": "USD", "max": "0.001260", - "min": "0.000990", + "min": "0.000900", "mode": "dynamic" }, "protocols": [ @@ -66225,7 +68207,7 @@ "pricing": { "currency": "USD", "max": "0.001260", - "min": "0.000990", + "min": "0.000900", "minimumUsd": null, "mode": "dynamic", "quoteBasis": "funded_ceiling" @@ -66293,6 +68275,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -66812,6 +68803,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -67339,6 +69339,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -67859,6 +69868,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -68350,6 +70368,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -68916,6 +70943,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -69455,6 +71491,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -70014,6 +72059,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -70582,6 +72636,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -70620,7 +72683,10 @@ "handle" ], "title": "Hacker News profile input", - "type": "object" + "type": "object", + "x-aliases": { + "username": "handle" + } } } }, @@ -71046,6 +73112,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -71558,6 +73633,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -72043,6 +74127,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -72540,6 +74633,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -73093,6 +75195,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -73604,6 +75715,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -74105,6 +76225,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -74628,6 +76757,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -75084,6 +77222,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -75611,6 +77758,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -76138,6 +78294,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -76642,6 +78807,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -77211,6 +79385,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -77778,6 +79961,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -78264,6 +80456,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -78709,7 +80910,7 @@ }, "/v1/run/instagram.post": { "post": { - "description": "Fetch a single Instagram post or reel by URL (media URLs, like count, owner, type) as normalized JSON.\n\n**Price:** \\$0.90 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 4 independent lanes are available in execution order. A failed attempt uses the next lane only when the request's payment authorizes that lane's price; the normalized schema stays the same.\n\n**Catalog:** [Instagram Post pricing and uptime](https://getanyapi.com/api/instagram/post) - live USD price, lane routing, and measured 30-day uptime. [Every Instagram endpoint](https://getanyapi.com/api/instagram).", + "description": "Fetch a single Instagram post or reel by URL (media URLs, like count, owner, type) as normalized JSON.\n\n**Price:** \\$1.50 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 3 independent lanes are available in execution order. A failed attempt uses the next lane only when the request's payment authorizes that lane's price; the normalized schema stays the same.\n\n**Catalog:** [Instagram Post pricing and uptime](https://getanyapi.com/api/instagram/post) - live USD price, lane routing, and measured 30-day uptime. [Every Instagram endpoint](https://getanyapi.com/api/instagram).", "operationId": "instagram_post", "parameters": [ { @@ -78749,6 +80950,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -78783,7 +80993,8 @@ "type": "boolean" }, "url": { - "description": "Full Instagram post or reel URL.", + "description": "Full Instagram post or reel URL, carrying the media shortcode: /p/, /reel/, /reels/, or /tv/. A profile URL such as https://www.instagram.com/username names no post, so it is rejected instead of charged for an empty result.", + "pattern": "^https?://(?:www\\.)?instagram\\.com/(?:[A-Za-z0-9_.]+/)?(?:p|reel|reels|tv)/[A-Za-z0-9_-]+/?(?:[?#].*)?$", "type": "string" } }, @@ -79100,7 +81311,7 @@ "price": { "currency": "USD", "max": "0.003600", - "min": "0.000900", + "min": "0.001500", "mode": "dynamic" }, "protocols": [ @@ -79143,7 +81354,7 @@ "pricing": { "currency": "USD", "max": "0.003600", - "min": "0.001000", + "min": "0.001500", "minimumUsd": "0.001000", "mode": "dynamic", "quoteBasis": "floor" @@ -79176,7 +81387,7 @@ "pricing": { "currency": "USD", "max": "0.003600", - "min": "0.000900", + "min": "0.001500", "minimumUsd": null, "mode": "dynamic", "quoteBasis": "funded_ceiling" @@ -79204,7 +81415,7 @@ }, "/v1/run/instagram.post_comments": { "post": { - "description": "List the comments on an Instagram post or reel by URL with cursor pagination (text, author, likes).\n\n**Price:** \\$1.50 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 4 independent lanes are available in execution order. A failed attempt uses the next lane only when the request's payment authorizes that lane's price; the normalized schema stays the same.\n\n**Catalog:** [Instagram Post Comments pricing and uptime](https://getanyapi.com/api/instagram/post-comments) - live USD price, lane routing, and measured 30-day uptime. [Every Instagram endpoint](https://getanyapi.com/api/instagram).", + "description": "List the comments on an Instagram post or reel by URL with cursor pagination (text, author, likes).\n\n**Price:** \\$1.44 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 4 independent lanes are available in execution order. A failed attempt uses the next lane only when the request's payment authorizes that lane's price; the normalized schema stays the same.\n\n**Catalog:** [Instagram Post Comments pricing and uptime](https://getanyapi.com/api/instagram/post-comments) - live USD price, lane routing, and measured 30-day uptime. [Every Instagram endpoint](https://getanyapi.com/api/instagram).", "operationId": "instagram_post_comments", "parameters": [ { @@ -79244,6 +81455,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -79615,7 +81835,7 @@ "price": { "currency": "USD", "max": "0.018000", - "min": "0.001500", + "min": "0.001440", "mode": "dynamic" }, "protocols": [ @@ -79658,7 +81878,7 @@ "pricing": { "currency": "USD", "max": "0.018000", - "min": "0.001500", + "min": "0.001440", "minimumUsd": "0.001000", "mode": "dynamic", "quoteBasis": "floor" @@ -79691,7 +81911,7 @@ "pricing": { "currency": "USD", "max": "0.018000", - "min": "0.001500", + "min": "0.001440", "minimumUsd": null, "mode": "dynamic", "quoteBasis": "funded_ceiling" @@ -79759,6 +81979,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -79797,7 +82026,10 @@ "handle" ], "title": "Instagram profile input", - "type": "object" + "type": "object", + "x-aliases": { + "username": "handle" + } } } }, @@ -80305,6 +82537,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -80812,6 +83053,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -81359,6 +83609,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -81905,6 +84164,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -82395,7 +84663,7 @@ }, "/v1/run/instagram.search_hashtag": { "post": { - "description": "Search posts under an Instagram hashtag through a web search index rather than Instagram's own hashtag feed. That is what lets it filter by date and media type and return reels whose like counts have settled, and it is also why results skew older (median around three months) and stop at roughly 110 per hashtag. For Instagram's own live ranking of a tag use instagram.hashtag_top_posts, and for the chronological feed use instagram.hashtag_recent_posts.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Payment outcome follows the selected rail's settlement policy.\n\n**Catalog:** [Instagram Hashtag Search pricing and uptime](https://getanyapi.com/api/instagram/search-hashtag) - live USD price, lane routing, and measured 30-day uptime. [Every Instagram endpoint](https://getanyapi.com/api/instagram).", + "description": "Search posts under an Instagram hashtag through a web search index rather than Instagram's own hashtag feed. That is what lets it filter by date and media type and return reels whose like counts have settled, and it is also why results skew older (median around three months) and stop at roughly 110 per hashtag. If that web search index is unavailable, a first-page request that sets no date and no media type is served from Instagram's own live top feed instead. For Instagram's own live ranking of a tag use instagram.hashtag_top_posts, and for the chronological feed use instagram.hashtag_recent_posts.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes are available in execution order. A failed attempt uses the next lane only when the request's payment authorizes that lane's price; the normalized schema stays the same.\n\n**Catalog:** [Instagram Hashtag Search pricing and uptime](https://getanyapi.com/api/instagram/search-hashtag) - live USD price, lane routing, and measured 30-day uptime. [Every Instagram endpoint](https://getanyapi.com/api/instagram).", "operationId": "instagram_search_hashtag", "parameters": [ { @@ -82435,6 +84703,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -82864,9 +85141,10 @@ }, "x-payment-info": { "price": { - "amount": "0.002000", "currency": "USD", - "mode": "fixed" + "max": "0.003120", + "min": "0.002000", + "mode": "dynamic" }, "protocols": [ { @@ -82906,10 +85184,11 @@ ] }, "pricing": { - "amount": "0.002000", "currency": "USD", + "max": "0.003120", + "min": "0.002000", "minimumUsd": "0.001000", - "mode": "fixed", + "mode": "dynamic", "quoteBasis": "floor" }, "protocol": { @@ -82938,10 +85217,11 @@ ] }, "pricing": { - "amount": "0.002000", "currency": "USD", + "max": "0.003120", + "min": "0.002000", "minimumUsd": null, - "mode": "fixed", + "mode": "dynamic", "quoteBasis": "funded_ceiling" }, "protocol": { @@ -83007,6 +85287,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -83536,6 +85825,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -84054,6 +86352,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -84548,6 +86855,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -85071,6 +87387,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -85561,6 +87886,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -86056,6 +88390,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -86098,7 +88441,10 @@ "handle" ], "title": "Instagram user posts input", - "type": "object" + "type": "object", + "x-aliases": { + "username": "handle" + } } } }, @@ -86616,6 +88962,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -86671,7 +89026,10 @@ } }, "title": "Instagram user reels input", - "type": "object" + "type": "object", + "x-aliases": { + "username": "handle" + } } } }, @@ -87194,6 +89552,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -88775,6 +91142,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -89287,6 +91663,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -89798,6 +92183,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -90341,6 +92735,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -90856,6 +93259,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -91445,6 +93857,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -91963,6 +94384,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -92573,6 +95003,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -93071,6 +95510,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -93564,6 +96012,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -93602,7 +96059,10 @@ "profileUrl" ], "title": "LinkedIn email finder input", - "type": "object" + "type": "object", + "x-aliases": { + "url": "profileUrl" + } } } }, @@ -94077,6 +96537,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -94746,6 +97215,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -95319,6 +97797,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -95813,6 +98300,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -96378,6 +98874,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -96898,6 +99403,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -97362,6 +99876,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -98085,6 +100608,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -99071,6 +101603,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -99700,6 +102241,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -100289,6 +102839,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -100340,7 +102899,10 @@ "query" ], "title": "LinkedIn company search input", - "type": "object" + "type": "object", + "x-aliases": { + "keyword": "query" + } } } }, @@ -100820,6 +103382,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -101361,6 +103932,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -102095,6 +104675,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -102959,6 +105548,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -103831,6 +106429,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -104330,6 +106937,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -104981,6 +107597,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -105544,7 +108169,7 @@ }, "/v1/run/maps.reviews": { "post": { - "description": "Fetch up to 100 Google Maps reviews for a place by place ID, sorted the way you need, in one normalized response.\n\n**Price:** billed per result - \\$0.06 per 1,000 requests base + \\$0.44 per 1,000 results, capped at \\$44.10 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Payment outcome follows the selected rail's settlement policy.\n\n**Catalog:** [Google Maps Reviews pricing and uptime](https://getanyapi.com/api/maps/reviews) - live USD price, lane routing, and measured 30-day uptime. [Every Maps endpoint](https://getanyapi.com/api/maps).", + "description": "Fetch up to 100 Google Maps reviews for a place by place ID, sorted the way you need, in one normalized response.\n\n**Price:** \\$3.50 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 3 independent lanes are available in execution order. A failed attempt uses the next lane only when the request's payment authorizes that lane's price; the normalized schema stays the same.\n\n**Catalog:** [Google Maps Reviews pricing and uptime](https://getanyapi.com/api/maps/reviews) - live USD price, lane routing, and measured 30-day uptime. [Every Maps endpoint](https://getanyapi.com/api/maps).", "operationId": "maps_reviews", "parameters": [ { @@ -105584,6 +108209,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -105601,15 +108235,13 @@ "application/json": { "example": { "limit": 3, - "placeId": "ChIJN1t_tDeuEmsRUsoyG83frY4", - "postedLimit": "year" + "placeId": "ChIJN1t_tDeuEmsRUsoyG83frY4" }, "schema": { "additionalProperties": false, "example": { "limit": 3, - "placeId": "ChIJN1t_tDeuEmsRUsoyG83frY4", - "postedLimit": "year" + "placeId": "ChIJN1t_tDeuEmsRUsoyG83frY4" }, "properties": { "language": { @@ -105618,7 +108250,7 @@ "type": "string" }, "limit": { - "description": "Maximum number of results to return (1-100, default 100). You are billed per result returned, so a lower limit costs less.", + "description": "Maximum number of results to return (1-100, default 100).", "maximum": 100, "minimum": 1, "type": "integer" @@ -105739,9 +108371,8 @@ "type": "string" }, "placeId": { - "description": "Google Maps place id the review belongs to. Populated whenever the provider has data for the entity.", - "type": "string", - "x-anyapi-must-populate": true + "description": "Google Maps place id the review belongs to. Echoes the requested placeId; a lane that does not repeat it per review omits it.", + "type": "string" }, "publishedAgo": { "description": "Human-relative publish time (e.g. '7 hours ago').", @@ -106015,7 +108646,7 @@ "price": { "currency": "USD", "max": "0.044100", - "min": "0.000060", + "min": "0.003500", "mode": "dynamic" }, "protocols": [ @@ -106058,7 +108689,7 @@ "pricing": { "currency": "USD", "max": "0.044100", - "min": "0.001000", + "min": "0.003500", "minimumUsd": "0.001000", "mode": "dynamic", "quoteBasis": "floor" @@ -106091,7 +108722,7 @@ "pricing": { "currency": "USD", "max": "0.044100", - "min": "0.000060", + "min": "0.003500", "minimumUsd": null, "mode": "dynamic", "quoteBasis": "funded_ceiling" @@ -106159,6 +108790,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -106763,6 +109403,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -107261,6 +109910,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -107758,6 +110416,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -108302,6 +110969,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -108861,6 +111537,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -109364,6 +112049,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -109879,6 +112573,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -111007,6 +113710,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -112139,6 +114851,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -113329,6 +116050,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -114012,6 +116742,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -114993,6 +117732,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -116170,6 +118918,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -117169,6 +119926,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -117711,7 +120477,7 @@ }, "/v1/run/perplexity.search": { "post": { - "description": "Ask Perplexity a web-grounded question and receive an answer with source citations.\n\n**Price:** billed per result - \\$0.06 per 1,000 requests base + \\$11.00 per 1,000 results, capped at \\$11.10 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Payment outcome follows the selected rail's settlement policy.\n\n**Catalog:** [Perplexity Search pricing and uptime](https://getanyapi.com/api/perplexity/search) - live USD price, lane routing, and measured 30-day uptime. [Every Perplexity endpoint](https://getanyapi.com/api/perplexity).", + "description": "Ask Perplexity a web-grounded question and receive an answer with source citations.\n\n**Price:** \\$3.60 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes are available in execution order. A failed attempt uses the next lane only when the request's payment authorizes that lane's price; the normalized schema stays the same.\n\n**Catalog:** [Perplexity Search pricing and uptime](https://getanyapi.com/api/perplexity/search) - live USD price, lane routing, and measured 30-day uptime. [Every Perplexity endpoint](https://getanyapi.com/api/perplexity).", "operationId": "perplexity_search", "parameters": [ { @@ -117751,6 +120517,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -118107,7 +120882,7 @@ "price": { "currency": "USD", "max": "0.011100", - "min": "0.000060", + "min": "0.003600", "mode": "dynamic" }, "protocols": [ @@ -118150,7 +120925,7 @@ "pricing": { "currency": "USD", "max": "0.011100", - "min": "0.001000", + "min": "0.003600", "minimumUsd": "0.001000", "mode": "dynamic", "quoteBasis": "floor" @@ -118183,7 +120958,7 @@ "pricing": { "currency": "USD", "max": "0.011100", - "min": "0.000060", + "min": "0.003600", "minimumUsd": null, "mode": "dynamic", "quoteBasis": "funded_ceiling" @@ -118251,6 +121026,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -118856,6 +121640,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -120094,6 +122887,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -120826,6 +123628,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -121755,6 +124566,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -122556,6 +125376,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -123367,6 +126196,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -124543,6 +127381,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -125607,6 +128454,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -126146,6 +129002,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -126643,6 +129508,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -127206,6 +130080,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -127768,6 +130651,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -128386,7 +131278,7 @@ }, "/v1/run/reddit.post": { "post": { - "description": "Fetch a single Reddit post by URL, including its full body text, score, comment count, upvote ratio, and subreddit, as normalized JSON.\n\n**Price:** \\$0.90 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 4 independent lanes are available in execution order. A failed attempt uses the next lane only when the request's payment authorizes that lane's price; the normalized schema stays the same.\n\n**Catalog:** [Reddit Post pricing and uptime](https://getanyapi.com/api/reddit/post) - live USD price, lane routing, and measured 30-day uptime. [Every Reddit endpoint](https://getanyapi.com/api/reddit).", + "description": "Fetch a single Reddit post by URL, including its full body text, score, comment count, upvote ratio, and subreddit, as normalized JSON.\n\n**Price:** \\$1.20 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 3 independent lanes are available in execution order. A failed attempt uses the next lane only when the request's payment authorizes that lane's price; the normalized schema stays the same.\n\n**Catalog:** [Reddit Post pricing and uptime](https://getanyapi.com/api/reddit/post) - live USD price, lane routing, and measured 30-day uptime. [Every Reddit endpoint](https://getanyapi.com/api/reddit).", "operationId": "reddit_post", "parameters": [ { @@ -128426,6 +131318,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -128806,7 +131707,7 @@ "price": { "currency": "USD", "max": "0.003600", - "min": "0.000900", + "min": "0.001200", "mode": "dynamic" }, "protocols": [ @@ -128849,7 +131750,7 @@ "pricing": { "currency": "USD", "max": "0.003600", - "min": "0.001000", + "min": "0.001200", "minimumUsd": "0.001000", "mode": "dynamic", "quoteBasis": "floor" @@ -128882,7 +131783,7 @@ "pricing": { "currency": "USD", "max": "0.003600", - "min": "0.000900", + "min": "0.001200", "minimumUsd": null, "mode": "dynamic", "quoteBasis": "funded_ceiling" @@ -128950,6 +131851,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -129495,6 +132405,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -129969,6 +132888,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -130473,7 +133401,7 @@ }, "/v1/run/reddit.search": { "post": { - "description": "Search Reddit posts across all subreddits by query.\n\n**Price:** \\$0.90 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 4 independent lanes are available in execution order. A failed attempt uses the next lane only when the request's payment authorizes that lane's price; the normalized schema stays the same.\n\n**Catalog:** [Reddit Search pricing and uptime](https://getanyapi.com/api/reddit/search) - live USD price, lane routing, and measured 30-day uptime. [Every Reddit endpoint](https://getanyapi.com/api/reddit).", + "description": "Search Reddit posts across all subreddits by query.\n\n**Price:** \\$1.20 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 3 independent lanes are available in execution order. A failed attempt uses the next lane only when the request's payment authorizes that lane's price; the normalized schema stays the same.\n\n**Catalog:** [Reddit Search pricing and uptime](https://getanyapi.com/api/reddit/search) - live USD price, lane routing, and measured 30-day uptime. [Every Reddit endpoint](https://getanyapi.com/api/reddit).", "operationId": "reddit_search", "parameters": [ { @@ -130513,6 +133441,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -130578,7 +133515,10 @@ "query" ], "title": "Reddit search input", - "type": "object" + "type": "object", + "x-aliases": { + "time": "timeframe" + } } } }, @@ -130954,7 +133894,7 @@ "price": { "currency": "USD", "max": "0.003600", - "min": "0.000900", + "min": "0.001200", "mode": "dynamic" }, "protocols": [ @@ -130997,7 +133937,7 @@ "pricing": { "currency": "USD", "max": "0.003600", - "min": "0.001000", + "min": "0.001200", "minimumUsd": "0.001000", "mode": "dynamic", "quoteBasis": "floor" @@ -131030,7 +133970,7 @@ "pricing": { "currency": "USD", "max": "0.003600", - "min": "0.000900", + "min": "0.001200", "minimumUsd": null, "mode": "dynamic", "quoteBasis": "funded_ceiling" @@ -131098,6 +134038,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -131593,6 +134542,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -132120,7 +135078,7 @@ }, "/v1/run/reddit.subreddit_search": { "post": { - "description": "Search posts within a single subreddit by query, sort, and timeframe.\n\n**Price:** \\$0.90 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 3 independent lanes are available in execution order. A failed attempt uses the next lane only when the request's payment authorizes that lane's price; the normalized schema stays the same.\n\n**Catalog:** [Reddit Subreddit Search pricing and uptime](https://getanyapi.com/api/reddit/subreddit-search) - live USD price, lane routing, and measured 30-day uptime. [Every Reddit endpoint](https://getanyapi.com/api/reddit).", + "description": "Search posts within a single subreddit by query, sort, and timeframe.\n\n**Price:** \\$0.90 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 4 independent lanes are available in execution order. A failed attempt uses the next lane only when the request's payment authorizes that lane's price; the normalized schema stays the same.\n\n**Catalog:** [Reddit Subreddit Search pricing and uptime](https://getanyapi.com/api/reddit/subreddit-search) - live USD price, lane routing, and measured 30-day uptime. [Every Reddit endpoint](https://getanyapi.com/api/reddit).", "operationId": "reddit_subreddit_search", "parameters": [ { @@ -132160,6 +135118,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -132216,7 +135183,10 @@ "subreddit" ], "title": "Reddit Subreddit Search input", - "type": "object" + "type": "object", + "x-aliases": { + "time": "timeframe" + } } } }, @@ -132708,6 +135678,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -133237,6 +136216,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -133776,6 +136764,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -134352,6 +137349,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -134913,6 +137919,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -135448,6 +138463,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -135981,6 +139005,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -136492,6 +139525,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -137054,6 +140096,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -137573,6 +140624,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -138113,6 +141173,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -138664,6 +141733,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -139230,6 +142308,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -139835,6 +142922,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -140367,6 +143463,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -140923,6 +144028,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -141460,6 +144574,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -141973,6 +145096,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -142576,6 +145708,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -143079,6 +146220,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -143629,6 +146779,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -144185,6 +147344,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -144727,6 +147895,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -145291,6 +148468,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -145839,6 +149025,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -146388,6 +149583,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -146885,6 +150089,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -147445,6 +150658,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -147972,6 +151194,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -148470,6 +151701,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -148991,6 +152231,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -149519,6 +152768,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -150027,6 +153285,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -150516,6 +153783,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -151031,6 +154307,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -151596,6 +154881,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -152091,6 +155385,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -152665,6 +155968,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -153370,6 +156682,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -153879,6 +157200,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -154374,6 +157704,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -154398,13 +157737,21 @@ "query": "trump" }, "properties": { + "endDate": { + "description": "Only return posts published on or before this date, format YYYY-MM-DD (e.g. 2026-08-07). Threads pages backwards in time from here, so narrowing this is how you walk older results.", + "type": "string" + }, "preferLatencyUnderMs": { "description": "Optional; omit it and routing is unchanged, with the cheapest source serving. Prefer sources whose typical response time (median over the trailing 30 days, as published on this endpoint's lane health) is under this many milliseconds; among those, the cheapest serves. This can raise your price: when the cheapest source misses the target, a faster and dearer one serves, and you are quoted and charged its price. If no source is that fast the request is still served, by whichever source offers the best speed for its price - it is never refused for being slow. Sources we have not timed are tried last. This is a preference, not a guarantee: the median describes past requests and is not a ceiling on this one, and it excludes any wait this request itself asks for. On a paginated walk it applies to the first page only: later pages stay with the source that page chose, at the price it was quoted.", "minimum": 1, "type": "integer" }, "query": { - "description": "Keyword or hashtag to search public Threads posts for; the # prefix is optional (e.g. AI agents).", + "description": "Keyword or hashtag to search public Threads posts for; the # prefix is optional (e.g. AI agents). Threads matches text in posts, so search a brand or topic rather than a URL - a query that is only a domain is searched by its name (wander.com is searched as wander).", + "type": "string" + }, + "startDate": { + "description": "Only return posts published on or after this date, format YYYY-MM-DD (e.g. 2026-08-01).", "type": "string" } }, @@ -154412,7 +157759,10 @@ "query" ], "title": "Threads search input", - "type": "object" + "type": "object", + "x-anyapi-input-normalizers": { + "query": "bare_domain_to_label" + } } } }, @@ -154446,7 +157796,7 @@ "additionalProperties": false, "properties": { "data": { - "description": "Wrapper holding the posts array, or null when nothing was found.", + "description": "Wrapper holding the posts array. Present whenever the search ran, with an empty array when nothing matched; null only when the search could not run.", "oneOf": [ { "type": "null" @@ -154530,7 +157880,7 @@ ] }, "found": { - "description": "True when matching posts were found; false when the search returned nothing.", + "description": "True when the search ran. An empty \"posts\" array means the search completed and nothing matched, which is an answer rather than a failure; false is reserved for a search the upstream could not run.", "type": "boolean" } }, @@ -154898,6 +158248,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -155393,6 +158752,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -155916,6 +159284,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -156435,6 +159812,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -157108,6 +160494,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -157704,6 +161099,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -158191,6 +161595,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -158702,6 +162115,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -159219,6 +162641,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -159735,6 +163166,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -160256,6 +163696,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -160755,6 +164204,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -161250,6 +164708,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -161761,6 +165228,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -162334,6 +165810,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -162805,6 +166290,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -163322,6 +166816,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -163364,7 +166867,10 @@ "query" ], "title": "TikTok Hashtag Search input", - "type": "object" + "type": "object", + "x-aliases": { + "hashtag": "query" + } } } }, @@ -163840,6 +167346,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -164382,6 +167897,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -164917,6 +168441,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -165422,6 +168955,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -165925,6 +169467,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -166450,6 +170001,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -167094,6 +170654,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -167612,6 +171181,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -168249,6 +171827,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -168269,10 +171856,26 @@ }, "schema": { "additionalProperties": false, + "anyOf": [ + { + "required": [ + "url" + ] + }, + { + "required": [ + "id" + ] + } + ], "example": { "url": "https://www.tiktok.com/@mrbeast/video/7654638524729216287?_r=1&u_code=elgjf3ff8cajhk&preview_pb=0&sharer_language=en&_d=elh6737j6kjl71&share_item_id=7654638524729216287&source=h5_m" }, "properties": { + "id": { + "description": "TikTok video ID, the numeric run at the end of a video URL. Use it when a listing SKU handed you an id and no URL.", + "type": "string" + }, "preferLatencyUnderMs": { "description": "Optional; omit it and routing is unchanged, with the cheapest source serving. Prefer sources whose typical response time (median over the trailing 30 days, as published on this endpoint's lane health) is under this many milliseconds; among those, the cheapest serves. This can raise your price: when the cheapest source misses the target, a faster and dearer one serves, and you are quoted and charged its price. If no source is that fast the request is still served, by whichever source offers the best speed for its price - it is never refused for being slow. Sources we have not timed are tried last. This is a preference, not a guarantee: the median describes past requests and is not a ceiling on this one, and it excludes any wait this request itself asks for. On a paginated walk it applies to the first page only: later pages stay with the source that page chose, at the price it was quoted.", "minimum": 1, @@ -168283,11 +171886,11 @@ "type": "string" } }, - "required": [ - "url" - ], "title": "TikTok video input", - "type": "object" + "type": "object", + "x-aliases": { + "videoId": "id" + } } } }, @@ -168742,6 +172345,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -169250,6 +172862,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -169740,6 +173361,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -170203,6 +173833,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -170322,9 +173961,7 @@ "items": { "properties": { "confidence": { - "description": "Recognizer confidence for this word, 0 to 1. Low values mark words the recognizer guessed; they are common on names, jargon, and music.", - "maximum": 1, - "minimum": 0, + "description": "Recognizer score for this word, exactly as the recognizer reported it. It is normally an alignment probability between 0 and 1, but on audio the recognizer could not align it reports a negative log-scale score instead, so read the sign before treating the number as a probability. Either way, lower means less certain, and low values are common on names, jargon, and music.", "type": "number" }, "endSeconds": { @@ -170753,6 +174390,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -171273,6 +174919,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -171805,6 +175460,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -172422,6 +176086,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -172931,6 +176604,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -173516,6 +177198,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -174055,6 +177746,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -174605,6 +178305,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -175076,6 +178785,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -175632,6 +179350,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -176120,7 +179847,7 @@ }, "/v1/run/tripadvisor.reviews": { "post": { - "description": "Fetch the latest reviews for any Tripadvisor hotel, restaurant, or attraction by its page URL: rating, text, date, and trip details as normalized JSON.\n\n**Price:** \\$3.60 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes are available in execution order. A failed attempt uses the next lane only when the request's payment authorizes that lane's price; the normalized schema stays the same.\n\n**Catalog:** [Tripadvisor Reviews pricing and uptime](https://getanyapi.com/api/tripadvisor/reviews) - live USD price, lane routing, and measured 30-day uptime. [Every Tripadvisor endpoint](https://getanyapi.com/api/tripadvisor).", + "description": "Fetch the latest reviews for any Tripadvisor hotel, restaurant, or attraction by its page URL: rating, text, date, and trip details as normalized JSON.\n\n**Price:** \\$3.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes are available in execution order. A failed attempt uses the next lane only when the request's payment authorizes that lane's price; the normalized schema stays the same.\n\n**Catalog:** [Tripadvisor Reviews pricing and uptime](https://getanyapi.com/api/tripadvisor/reviews) - live USD price, lane routing, and measured 30-day uptime. [Every Tripadvisor endpoint](https://getanyapi.com/api/tripadvisor).", "operationId": "tripadvisor_reviews", "parameters": [ { @@ -176160,6 +179887,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -176544,7 +180280,7 @@ "price": { "currency": "USD", "max": "0.011000", - "min": "0.003600", + "min": "0.003000", "mode": "dynamic" }, "protocols": [ @@ -176587,7 +180323,7 @@ "pricing": { "currency": "USD", "max": "0.011000", - "min": "0.003600", + "min": "0.003000", "minimumUsd": "0.001000", "mode": "dynamic", "quoteBasis": "floor" @@ -176620,7 +180356,7 @@ "pricing": { "currency": "USD", "max": "0.011000", - "min": "0.003600", + "min": "0.003000", "minimumUsd": null, "mode": "dynamic", "quoteBasis": "funded_ceiling" @@ -176648,7 +180384,7 @@ }, "/v1/run/tripadvisor.search": { "post": { - "description": "Search Tripadvisor for hotels, restaurants, and attractions in any destination and get rich place records (ratings, review counts, contact details, pricing) as normalized JSON.\n\n**Price:** \\$3.60 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes are available in execution order. A failed attempt uses the next lane only when the request's payment authorizes that lane's price; the normalized schema stays the same.\n\n**Catalog:** [Tripadvisor Search pricing and uptime](https://getanyapi.com/api/tripadvisor/search) - live USD price, lane routing, and measured 30-day uptime. [Every Tripadvisor endpoint](https://getanyapi.com/api/tripadvisor).", + "description": "Search Tripadvisor for hotels, restaurants, and attractions in any destination and get rich place records (ratings, review counts, contact details, pricing) as normalized JSON.\n\n**Price:** \\$3.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes are available in execution order. A failed attempt uses the next lane only when the request's payment authorizes that lane's price; the normalized schema stays the same.\n\n**Catalog:** [Tripadvisor Search pricing and uptime](https://getanyapi.com/api/tripadvisor/search) - live USD price, lane routing, and measured 30-day uptime. [Every Tripadvisor endpoint](https://getanyapi.com/api/tripadvisor).", "operationId": "tripadvisor_search", "parameters": [ { @@ -176688,6 +180424,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -177131,7 +180876,7 @@ "price": { "currency": "USD", "max": "0.055100", - "min": "0.003600", + "min": "0.003000", "mode": "dynamic" }, "protocols": [ @@ -177174,7 +180919,7 @@ "pricing": { "currency": "USD", "max": "0.055100", - "min": "0.003600", + "min": "0.003000", "minimumUsd": "0.001000", "mode": "dynamic", "quoteBasis": "floor" @@ -177207,7 +180952,7 @@ "pricing": { "currency": "USD", "max": "0.055100", - "min": "0.003600", + "min": "0.003000", "minimumUsd": null, "mode": "dynamic", "quoteBasis": "funded_ceiling" @@ -177275,6 +181020,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -177306,14 +181060,14 @@ "type": "string" }, "countries": { - "description": "Only return reviews from reviewers in these ISO 3166-1 alpha-2 countries (e.g. [\"US\", \"GB\"]); omit for all countries.", + "description": "Only return reviews from reviewers in these ISO 3166-1 alpha-2 countries (e.g. [\"US\", \"GB\"]). Omit this field for all countries and to stay on the cheapest price; a country filter routes to the dearest source.", "items": { "type": "string" }, "type": "array" }, "languages": { - "description": "Only return reviews in these ISO 639-1 languages (e.g. [\"en\", \"de\"]); omit for all languages.", + "description": "Only return reviews in these ISO 639-1 languages (e.g. [\"en\", \"de\"]). Omit this field for all languages and to stay on the cheapest price; a language filter routes to the dearest source.", "items": { "type": "string" }, @@ -177337,16 +181091,16 @@ "type": "string" }, "stars": { - "description": "Limit reviews to a single star rating from 1 to 5 (e.g. 5); omit for all ratings.", + "description": "Limit reviews to a single star rating from 1 to 5 (e.g. 5). Omit this field to stay on the cheapest price; a star filter routes to a dearer source.", "type": "string" }, "startDate": { - "description": "Only return reviews on or after this date, inclusive, in YYYY-MM-DD format (e.g. 2026-01-01).", + "description": "Only return reviews on or after this date, inclusive, in YYYY-MM-DD format (e.g. 2026-01-01). Omit this field to stay on the cheapest price; a date floor routes to the dearest source.", "type": "string" }, "verifiedOnly": { "default": false, - "description": "Set true to return only verified reviews (e.g. true).", + "description": "Set true to return only verified reviews (e.g. true). Omit this field, or send false, to stay on the cheapest price; true routes to a dearer source.", "type": "boolean" } }, @@ -177819,6 +181573,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -178316,6 +182079,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -178828,6 +182600,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -179333,6 +183114,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -180002,6 +183792,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -180497,6 +184296,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -181004,6 +184812,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -181541,6 +185358,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -182078,6 +185904,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -182578,6 +186413,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -183137,6 +186981,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -183165,10 +187018,6 @@ "description": "Opaque pagination cursor from a previous response's nextCursor. Omit for the first page; pass it to fetch the next page of search results.", "type": "string" }, - "lang": { - "description": "Optional ISO 639-1 language code to restrict tweets to (e.g. en).", - "type": "string" - }, "limit": { "default": 20, "description": "Per-page maximum number of results to return (1-50, default 20). A provider may return a smaller native page; follow nextCursor for more.", @@ -183199,7 +187048,13 @@ "query" ], "title": "X / Twitter search input", - "type": "object" + "type": "object", + "x-anyapi-compat-inputs": { + "lang": { + "fold_into": "query", + "template": " lang:{value}" + } + } } } }, @@ -183733,6 +187588,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -184250,6 +188114,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -184799,6 +188672,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -185390,6 +189272,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -185911,6 +189802,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -186452,6 +190352,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -186910,6 +190819,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -187496,6 +191414,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -188080,6 +192007,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -188683,6 +192619,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -189222,6 +193167,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -189709,6 +193663,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -190212,6 +194175,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -190760,6 +194732,510 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", + "in": "header", + "name": "Idempotency-Key", + "required": false, + "schema": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "example": { + "url": "https://example.com" + }, + "schema": { + "additionalProperties": false, + "example": { + "url": "https://example.com" + }, + "properties": { + "preferLatencyUnderMs": { + "description": "Optional; omit it and routing is unchanged, with the cheapest source serving. Prefer sources whose typical response time (median over the trailing 30 days, as published on this endpoint's lane health) is under this many milliseconds; among those, the cheapest serves. This can raise your price: when the cheapest source misses the target, a faster and dearer one serves, and you are quoted and charged its price. If no source is that fast the request is still served, by whichever source offers the best speed for its price - it is never refused for being slow. Sources we have not timed are tried last. This is a preference, not a guarantee: the median describes past requests and is not a ceiling on this one, and it excludes any wait this request itself asks for. On a paginated walk it applies to the first page only: later pages stay with the source that page chose, at the price it was quoted.", + "minimum": 1, + "type": "integer" + }, + "url": { + "description": "The full URL of the page to capture.", + "type": "string" + }, + "viewportWidth": { + "default": 1280, + "description": "Browser viewport width in pixels (e.g. 1280).", + "type": "integer" + } + }, + "required": [ + "url" + ], + "title": "Website screenshot input", + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": { + "costUsd": { + "description": "USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.", + "type": "number" + }, + "hint": { + "description": "Optional one-line nudge, absent when there is nothing to say. `large_result:` suggests the fields/max_items/summary/jq controls for a big response. `paging_unavailable:` means this result came from a source that cannot return a `nextCursor`, so it may be INCOMPLETE and cannot be continued - re-run with `requireCursor: true` to be served only by a source that can page, which may cost more per request.", + "type": "string" + }, + "items": { + "description": "Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.", + "type": "integer" + }, + "jqError": { + "description": "Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.", + "type": "string" + }, + "output": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "data": { + "description": "The result wrapper, or null when nothing was captured.", + "oneOf": [ + { + "type": "null" + }, + { + "additionalProperties": false, + "properties": { + "items": { + "description": "Screenshot records: the requested page URL and a link to the captured image. Populated whenever the provider has data for the entity.", + "items": { + "properties": { + "image": { + "description": "Link to the captured screenshot image. Populated whenever the provider has data for the entity.", + "type": "string", + "x-anyapi-must-populate": true + }, + "url": { + "description": "The final page URL that was captured. Populated whenever the provider has data for the entity.", + "type": "string", + "x-anyapi-must-populate": true + } + }, + "required": [ + "url" + ], + "type": "object" + }, + "type": "array", + "x-anyapi-must-populate": true + } + }, + "required": [ + "items" + ], + "type": "object" + } + ] + }, + "found": { + "description": "True when a screenshot was captured.", + "type": "boolean" + } + }, + "required": [ + "found", + "data" + ], + "title": "Website screenshot output", + "type": "object", + "x-anyapi-heavy": true + }, + { + "type": "null" + } + ], + "description": "Normalized output, or null when the replay payload was not retained." + }, + "provider": { + "description": "Always \"AnyAPI\".", + "type": "string" + }, + "replayed": { + "description": "True when this response replays the durable result of an earlier run without billing or upstream execution.", + "type": "boolean" + }, + "resultId": { + "description": "Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.", + "type": "string" + } + }, + "required": [ + "output", + "provider", + "costUsd", + "items", + "replayed" + ], + "type": "object" + } + } + }, + "description": "Normalized result.", + "headers": { + "Idempotency-Replayed": { + "description": "Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.", + "schema": { + "enum": [ + "false", + "true" + ], + "type": "string" + } + }, + "PAYMENT-RESPONSE": { + "description": "Inline x402 payment receipt.", + "schema": { + "type": "string" + } + }, + "Payment-Receipt": { + "description": "Inline mpp payment receipt.", + "schema": { + "type": "string" + } + }, + "X-PAYMENT-RESPONSE": { + "description": "Inline x402 payment receipt.", + "schema": { + "type": "string" + } + } + } + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + }, + "description": "Input did not match the schema, or the upstream rejected the request." + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + }, + "description": "Missing or invalid API key." + }, + "402": { + "content": { + "application/json": { + "schema": { + "oneOf": [ + { + "$ref": "#/components/schemas/PaymentRequiredError" + }, + { + "$ref": "#/components/schemas/TrialCapReached" + } + ] + } + }, + "application/problem+json": { + "schema": { + "properties": { + "challengeId": { + "minLength": 1, + "type": "string" + }, + "status": { + "const": 402, + "type": "integer" + } + }, + "required": [ + "status", + "challengeId" + ], + "type": "object" + } + } + }, + "description": "Insufficient wallet balance or spend cap, or an inline-payment challenge. Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization.", + "headers": { + "PAYMENT-REQUIRED": { + "description": "Inline x402 payment challenge.", + "schema": { + "type": "string" + } + }, + "WWW-Authenticate": { + "description": "Inline mpp payment challenge.", + "schema": { + "type": "string" + } + } + } + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + }, + "description": "Unknown SKU, or the upstream had no matching resource." + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + }, + "description": "Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id." + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + }, + "description": "The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can." + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + }, + "description": "The upstream was rate limited; inspect `payment` when present before deciding whether to retry." + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + }, + "description": "An internal error prevented completion. Inspect payment when present before retrying." + }, + "502": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + }, + "description": "Every provider failed with a server/transport error, or inline payment settlement could not be confirmed; inspect `payment` when present before retrying." + } + }, + "security": [ + { + "bearerAuth": [] + }, + { + "apiKeyAuth": [] + }, + {} + ], + "summary": "Website Screenshot", + "tags": [ + "web" + ], + "x-mint": { + "href": "/api-reference/web/screenshot" + }, + "x-payment-info": { + "price": { + "currency": "USD", + "max": "0.001740", + "min": "0.001740", + "mode": "dynamic" + }, + "protocols": [ + { + "x402": { + "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", + "network": "eip155:8453", + "payTo": "0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13", + "scheme": "exact" + } + }, + { + "mpp": { + "asset": "0x20c000000000000000000000b9537d11c60e8b50", + "currency": "USD", + "intent": "charge", + "method": "tempo", + "network": "tempo", + "payTo": "0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13", + "rail": "tempo", + "scheme": "exact" + } + } + ], + "rails": [ + { + "headers": { + "challenge": [ + "PAYMENT-REQUIRED" + ], + "credential": [ + "PAYMENT-SIGNATURE", + "X-PAYMENT" + ], + "receipt": [ + "PAYMENT-RESPONSE", + "X-PAYMENT-RESPONSE" + ] + }, + "pricing": { + "currency": "USD", + "max": "0.001740", + "min": "0.001740", + "minimumUsd": "0.001000", + "mode": "dynamic", + "quoteBasis": "floor" + }, + "protocol": { + "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", + "network": "eip155:8453", + "payTo": "0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13", + "scheme": "exact" + }, + "rail": "x402", + "settlement": { + "onExecutionFailure": "released", + "onUnknownFinalization": "indeterminate", + "timing": "after_execution" + } + }, + { + "headers": { + "challenge": [ + "WWW-Authenticate" + ], + "credential": [ + "Authorization" + ], + "receipt": [ + "Payment-Receipt" + ] + }, + "pricing": { + "currency": "USD", + "max": "0.001740", + "min": "0.001740", + "minimumUsd": null, + "mode": "dynamic", + "quoteBasis": "funded_ceiling" + }, + "protocol": { + "asset": "0x20c000000000000000000000b9537d11c60e8b50", + "currency": "USD", + "intent": "charge", + "method": "tempo", + "network": "tempo", + "payTo": "0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13", + "rail": "tempo", + "scheme": "exact" + }, + "rail": "mpp", + "settlement": { + "onExecutionFailure": "charged_undelivered", + "onVerificationError": "indeterminate", + "timing": "before_execution" + } + } + ] + } + } + }, + "/v1/run/weibo.hot_search": { + "post": { + "description": "Get the complete current Weibo hot-search ranking with labels and heat values.\n\n**Price:** \\$1.80 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Payment outcome follows the selected rail's settlement policy.\n\n**Catalog:** [Weibo Hot Search pricing and uptime](https://getanyapi.com/api/weibo/hot-search) - live USD price, lane routing, and measured 30-day uptime. [Every Weibo endpoint](https://getanyapi.com/api/weibo).", + "operationId": "weibo_hot_search", + "parameters": [ + { + "description": "Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.", + "in": "query", + "name": "fields", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.", + "in": "query", + "name": "max_items", + "required": false, + "schema": { + "minimum": 0, + "type": "integer" + } + }, + { + "description": "Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.", + "in": "query", + "name": "summary", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.", + "in": "query", + "name": "jq", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -190775,34 +195251,18 @@ "requestBody": { "content": { "application/json": { - "example": { - "url": "https://example.com" - }, + "example": {}, "schema": { "additionalProperties": false, - "example": { - "url": "https://example.com" - }, + "example": {}, "properties": { "preferLatencyUnderMs": { "description": "Optional; omit it and routing is unchanged, with the cheapest source serving. Prefer sources whose typical response time (median over the trailing 30 days, as published on this endpoint's lane health) is under this many milliseconds; among those, the cheapest serves. This can raise your price: when the cheapest source misses the target, a faster and dearer one serves, and you are quoted and charged its price. If no source is that fast the request is still served, by whichever source offers the best speed for its price - it is never refused for being slow. Sources we have not timed are tried last. This is a preference, not a guarantee: the median describes past requests and is not a ceiling on this one, and it excludes any wait this request itself asks for. On a paginated walk it applies to the first page only: later pages stay with the source that page chose, at the price it was quoted.", "minimum": 1, "type": "integer" - }, - "url": { - "description": "The full URL of the page to capture.", - "type": "string" - }, - "viewportWidth": { - "default": 1280, - "description": "Browser viewport width in pixels (e.g. 1280).", - "type": "integer" } }, - "required": [ - "url" - ], - "title": "Website screenshot input", + "title": "Weibo hot search input", "type": "object" } } @@ -190837,7 +195297,7 @@ "additionalProperties": false, "properties": { "data": { - "description": "The result wrapper, or null when nothing was captured.", + "description": "Current hot-search ranking, or null when unavailable.", "oneOf": [ { "type": "null" @@ -190845,39 +195305,57 @@ { "additionalProperties": false, "properties": { - "items": { - "description": "Screenshot records: the requested page URL and a link to the captured image. Populated whenever the provider has data for the entity.", + "topics": { + "description": "Ranked hot-search topics. Populated whenever the provider has data for the entity.", "items": { "properties": { - "image": { - "description": "Link to the captured screenshot image. Populated whenever the provider has data for the entity.", + "heat": { + "description": "Topic popularity value.", + "type": "string" + }, + "keyword": { + "description": "Hot-search keyword. Populated whenever the provider has data for the entity.", "type": "string", "x-anyapi-must-populate": true }, - "url": { - "description": "The final page URL that was captured. Populated whenever the provider has data for the entity.", - "type": "string", + "pinned": { + "description": "Whether the topic is pinned.", + "type": "boolean" + }, + "rank": { + "description": "Ranking position; zero may indicate pinned content. Populated whenever the provider has data for the entity.", + "type": "integer", "x-anyapi-must-populate": true + }, + "tag": { + "description": "Hot-search label.", + "type": "string" } }, "required": [ - "url" + "rank", + "keyword" ], "type": "object" }, "type": "array", "x-anyapi-must-populate": true + }, + "total": { + "description": "Total topics.", + "type": "integer" } }, "required": [ - "items" + "topics", + "total" ], "type": "object" } ] }, "found": { - "description": "True when a screenshot was captured.", + "description": "True when hot-search topics were found.", "type": "boolean" } }, @@ -190885,9 +195363,8 @@ "found", "data" ], - "title": "Website screenshot output", - "type": "object", - "x-anyapi-heavy": true + "title": "Weibo hot search output", + "type": "object" }, { "type": "null" @@ -191091,19 +195568,18 @@ }, {} ], - "summary": "Website Screenshot", + "summary": "Weibo Hot Search", "tags": [ - "web" + "weibo" ], "x-mint": { - "href": "/api-reference/web/screenshot" + "href": "/api-reference/weibo/hot-search" }, "x-payment-info": { "price": { + "amount": "0.001800", "currency": "USD", - "max": "0.001740", - "min": "0.001740", - "mode": "dynamic" + "mode": "fixed" }, "protocols": [ { @@ -191143,11 +195619,10 @@ ] }, "pricing": { + "amount": "0.001800", "currency": "USD", - "max": "0.001740", - "min": "0.001740", "minimumUsd": "0.001000", - "mode": "dynamic", + "mode": "fixed", "quoteBasis": "floor" }, "protocol": { @@ -191176,11 +195651,10 @@ ] }, "pricing": { + "amount": "0.001800", "currency": "USD", - "max": "0.001740", - "min": "0.001740", "minimumUsd": null, - "mode": "dynamic", + "mode": "fixed", "quoteBasis": "funded_ceiling" }, "protocol": { @@ -191204,10 +195678,10 @@ } } }, - "/v1/run/weibo.hot_search": { + "/v1/run/weibo.post": { "post": { - "description": "Get the complete current Weibo hot-search ranking with labels and heat values.\n\n**Price:** \\$1.80 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Payment outcome follows the selected rail's settlement policy.\n\n**Catalog:** [Weibo Hot Search pricing and uptime](https://getanyapi.com/api/weibo/hot-search) - live USD price, lane routing, and measured 30-day uptime. [Every Weibo endpoint](https://getanyapi.com/api/weibo).", - "operationId": "weibo_hot_search", + "description": "Fetch a public Weibo post by ID with normalized author and engagement data.\n\n**Price:** \\$1.20 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Payment outcome follows the selected rail's settlement policy.\n\n**Catalog:** [Weibo Post pricing and uptime](https://getanyapi.com/api/weibo/post) - live USD price, lane routing, and measured 30-day uptime. [Every Weibo endpoint](https://getanyapi.com/api/weibo).", + "operationId": "weibo_post", "parameters": [ { "description": "Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.", @@ -191246,6 +195720,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -191261,18 +195744,36 @@ "requestBody": { "content": { "application/json": { - "example": {}, + "example": { + "includeLongText": "true", + "postId": "5092682368025584" + }, "schema": { "additionalProperties": false, - "example": {}, + "example": { + "includeLongText": "true", + "postId": "5092682368025584" + }, "properties": { + "includeLongText": { + "default": "true", + "description": "Whether to include the full text of long posts.", + "type": "string" + }, + "postId": { + "description": "Weibo post identifier.", + "type": "string" + }, "preferLatencyUnderMs": { "description": "Optional; omit it and routing is unchanged, with the cheapest source serving. Prefer sources whose typical response time (median over the trailing 30 days, as published on this endpoint's lane health) is under this many milliseconds; among those, the cheapest serves. This can raise your price: when the cheapest source misses the target, a faster and dearer one serves, and you are quoted and charged its price. If no source is that fast the request is still served, by whichever source offers the best speed for its price - it is never refused for being slow. Sources we have not timed are tried last. This is a preference, not a guarantee: the median describes past requests and is not a ceiling on this one, and it excludes any wait this request itself asks for. On a paginated walk it applies to the first page only: later pages stay with the source that page chose, at the price it was quoted.", "minimum": 1, "type": "integer" } }, - "title": "Weibo hot search input", + "required": [ + "postId" + ], + "title": "Weibo post input", "type": "object" } } @@ -191307,65 +195808,82 @@ "additionalProperties": false, "properties": { "data": { - "description": "Current hot-search ranking, or null when unavailable.", + "description": "Normalized post, or null when not found.", "oneOf": [ { "type": "null" }, { - "additionalProperties": false, "properties": { - "topics": { - "description": "Ranked hot-search topics. Populated whenever the provider has data for the entity.", - "items": { - "properties": { - "heat": { - "description": "Topic popularity value.", - "type": "string" - }, - "keyword": { - "description": "Hot-search keyword. Populated whenever the provider has data for the entity.", - "type": "string", - "x-anyapi-must-populate": true - }, - "pinned": { - "description": "Whether the topic is pinned.", - "type": "boolean" - }, - "rank": { - "description": "Ranking position; zero may indicate pinned content. Populated whenever the provider has data for the entity.", - "type": "integer", - "x-anyapi-must-populate": true - }, - "tag": { - "description": "Hot-search label.", - "type": "string" - } - }, - "required": [ - "rank", - "keyword" - ], - "type": "object" - }, - "type": "array", + "authorImage": { + "description": "Author avatar URL.", + "format": "uri", + "type": "string" + }, + "authorName": { + "description": "Author display name. Populated whenever the provider has data for the entity.", + "type": "string", "x-anyapi-must-populate": true }, - "total": { - "description": "Total topics.", + "authorUserId": { + "description": "Author user identifier. Populated whenever the provider has data for the entity.", + "type": "string", + "x-anyapi-must-populate": true + }, + "authorVerified": { + "description": "Whether the author is verified.", + "type": "boolean" + }, + "comments": { + "description": "Comment count.", + "type": "integer" + }, + "createdUtc": { + "description": "UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.", + "type": "number", + "x-anyapi-must-populate": true + }, + "id": { + "description": "Post identifier. Populated whenever the provider has data for the entity.", + "type": "string", + "x-anyapi-must-populate": true + }, + "imageCount": { + "description": "Attached image count.", + "type": "integer" + }, + "likes": { + "description": "Like count.", + "type": "integer" + }, + "region": { + "description": "Region label reported by Weibo.", + "type": "string" + }, + "reposts": { + "description": "Repost count.", "type": "integer" + }, + "shortId": { + "description": "Short Weibo post identifier. Populated whenever the provider has data for the entity.", + "type": "string", + "x-anyapi-must-populate": true + }, + "text": { + "description": "Plain post text. Populated whenever the provider has data for the entity.", + "type": "string", + "x-anyapi-must-populate": true } }, "required": [ - "topics", - "total" + "id" ], "type": "object" } ] }, "found": { - "description": "True when hot-search topics were found.", + "description": "True when the post was found.", "type": "boolean" } }, @@ -191373,7 +195891,7 @@ "found", "data" ], - "title": "Weibo hot search output", + "title": "Weibo post output", "type": "object" }, { @@ -191578,16 +196096,16 @@ }, {} ], - "summary": "Weibo Hot Search", + "summary": "Weibo Post", "tags": [ "weibo" ], "x-mint": { - "href": "/api-reference/weibo/hot-search" + "href": "/api-reference/weibo/post" }, "x-payment-info": { "price": { - "amount": "0.001800", + "amount": "0.001200", "currency": "USD", "mode": "fixed" }, @@ -191629,7 +196147,7 @@ ] }, "pricing": { - "amount": "0.001800", + "amount": "0.001200", "currency": "USD", "minimumUsd": "0.001000", "mode": "fixed", @@ -191661,7 +196179,7 @@ ] }, "pricing": { - "amount": "0.001800", + "amount": "0.001200", "currency": "USD", "minimumUsd": null, "mode": "fixed", @@ -191688,10 +196206,10 @@ } } }, - "/v1/run/weibo.post": { + "/v1/run/weibo.post_comments": { "post": { - "description": "Fetch a public Weibo post by ID with normalized author and engagement data.\n\n**Price:** \\$1.20 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Payment outcome follows the selected rail's settlement policy.\n\n**Catalog:** [Weibo Post pricing and uptime](https://getanyapi.com/api/weibo/post) - live USD price, lane routing, and measured 30-day uptime. [Every Weibo endpoint](https://getanyapi.com/api/weibo).", - "operationId": "weibo_post", + "description": "List first-level comments on a public Weibo post with pagination.\n\n**Price:** \\$1.20 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Payment outcome follows the selected rail's settlement policy.\n\n**Catalog:** [Weibo Post Comments pricing and uptime](https://getanyapi.com/api/weibo/post-comments) - live USD price, lane routing, and measured 30-day uptime. [Every Weibo endpoint](https://getanyapi.com/api/weibo).", + "operationId": "weibo_post_comments", "parameters": [ { "description": "Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.", @@ -191730,6 +196248,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -191746,21 +196273,25 @@ "content": { "application/json": { "example": { - "includeLongText": "true", - "postId": "5092682368025584" + "limit": 10, + "postId": "5283919831764022" }, "schema": { "additionalProperties": false, "example": { - "includeLongText": "true", - "postId": "5092682368025584" + "limit": 10, + "postId": "5283919831764022" }, "properties": { - "includeLongText": { - "default": "true", - "description": "Whether to include the full text of long posts.", + "cursor": { + "description": "Pagination cursor returned as nextCursor.", "type": "string" }, + "limit": { + "default": 10, + "description": "Requested comment count.", + "type": "integer" + }, "postId": { "description": "Weibo post identifier.", "type": "string" @@ -191774,7 +196305,7 @@ "required": [ "postId" ], - "title": "Weibo post input", + "title": "Weibo post comments input", "type": "object" } } @@ -191809,82 +196340,88 @@ "additionalProperties": false, "properties": { "data": { - "description": "Normalized post, or null when not found.", + "description": "Comments and pagination, or null when none were found.", "oneOf": [ { "type": "null" }, { + "additionalProperties": false, "properties": { - "authorImage": { - "description": "Author avatar URL.", - "format": "uri", - "type": "string" - }, - "authorName": { - "description": "Author display name. Populated whenever the provider has data for the entity.", - "type": "string", - "x-anyapi-must-populate": true - }, - "authorUserId": { - "description": "Author user identifier. Populated whenever the provider has data for the entity.", - "type": "string", - "x-anyapi-must-populate": true - }, - "authorVerified": { - "description": "Whether the author is verified.", - "type": "boolean" - }, "comments": { - "description": "Comment count.", - "type": "integer" - }, - "createdUtc": { - "description": "UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.", - "type": "number", - "x-anyapi-must-populate": true - }, - "id": { - "description": "Post identifier. Populated whenever the provider has data for the entity.", - "type": "string", + "description": "Normalized first-level comments. Populated whenever the provider has data for the entity.", + "items": { + "properties": { + "authorImage": { + "description": "Comment author avatar URL.", + "format": "uri", + "type": "string" + }, + "authorName": { + "description": "Comment author display name. Populated whenever the provider has data for the entity.", + "type": "string", + "x-anyapi-must-populate": true + }, + "authorUserId": { + "description": "Comment author user identifier. Populated whenever the provider has data for the entity.", + "type": "string", + "x-anyapi-must-populate": true + }, + "authorVerified": { + "description": "Whether the comment author is verified.", + "type": "boolean" + }, + "createdUtc": { + "description": "UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.", + "type": "number", + "x-anyapi-must-populate": true + }, + "id": { + "description": "Comment identifier. Populated whenever the provider has data for the entity.", + "type": "string", + "x-anyapi-must-populate": true + }, + "likes": { + "description": "Like count.", + "type": "integer" + }, + "text": { + "description": "Plain comment text. Populated whenever the provider has data for the entity.", + "type": "string", + "x-anyapi-must-populate": true + } + }, + "required": [ + "id" + ], + "type": "object" + }, + "type": "array", "x-anyapi-must-populate": true }, - "imageCount": { - "description": "Attached image count.", - "type": "integer" - }, - "likes": { - "description": "Like count.", - "type": "integer" - }, - "region": { - "description": "Region label reported by Weibo.", - "type": "string" + "nextCursor": { + "description": "Opaque cursor for the next page of comments, or null when this lane has no more. Pass it back as cursor to continue.", + "type": [ + "string", + "null" + ] }, - "reposts": { - "description": "Repost count.", + "total": { + "description": "Total comments reported by Weibo.", "type": "integer" - }, - "shortId": { - "description": "Short Weibo post identifier. Populated whenever the provider has data for the entity.", - "type": "string", - "x-anyapi-must-populate": true - }, - "text": { - "description": "Plain post text. Populated whenever the provider has data for the entity.", - "type": "string", - "x-anyapi-must-populate": true } }, "required": [ - "id" + "comments", + "nextCursor", + "total" ], "type": "object" } ] }, "found": { - "description": "True when the post was found.", + "description": "True when comments were found.", "type": "boolean" } }, @@ -191892,7 +196429,7 @@ "found", "data" ], - "title": "Weibo post output", + "title": "Weibo post comments output", "type": "object" }, { @@ -192097,12 +196634,12 @@ }, {} ], - "summary": "Weibo Post", + "summary": "Weibo Post Comments", "tags": [ "weibo" ], "x-mint": { - "href": "/api-reference/weibo/post" + "href": "/api-reference/weibo/post-comments" }, "x-payment-info": { "price": { @@ -192207,10 +196744,10 @@ } } }, - "/v1/run/weibo.post_comments": { + "/v1/run/weibo.profile": { "post": { - "description": "List first-level comments on a public Weibo post with pagination.\n\n**Price:** \\$1.20 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Payment outcome follows the selected rail's settlement policy.\n\n**Catalog:** [Weibo Post Comments pricing and uptime](https://getanyapi.com/api/weibo/post-comments) - live USD price, lane routing, and measured 30-day uptime. [Every Weibo endpoint](https://getanyapi.com/api/weibo).", - "operationId": "weibo_post_comments", + "description": "Fetch a public Weibo profile by user ID with normalized audience and account data.\n\n**Price:** \\$1.20 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Payment outcome follows the selected rail's settlement policy.\n\n**Catalog:** [Weibo Profile pricing and uptime](https://getanyapi.com/api/weibo/profile) - live USD price, lane routing, and measured 30-day uptime. [Every Weibo endpoint](https://getanyapi.com/api/weibo).", + "operationId": "weibo_profile", "parameters": [ { "description": "Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.", @@ -192249,6 +196786,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -192265,39 +196811,28 @@ "content": { "application/json": { "example": { - "limit": 10, - "postId": "5283919831764022" + "userId": "1722594714" }, "schema": { "additionalProperties": false, "example": { - "limit": 10, - "postId": "5283919831764022" + "userId": "1722594714" }, "properties": { - "cursor": { - "description": "Pagination cursor returned as nextCursor.", - "type": "string" - }, - "limit": { - "default": 10, - "description": "Requested comment count.", - "type": "integer" - }, - "postId": { - "description": "Weibo post identifier.", - "type": "string" - }, "preferLatencyUnderMs": { "description": "Optional; omit it and routing is unchanged, with the cheapest source serving. Prefer sources whose typical response time (median over the trailing 30 days, as published on this endpoint's lane health) is under this many milliseconds; among those, the cheapest serves. This can raise your price: when the cheapest source misses the target, a faster and dearer one serves, and you are quoted and charged its price. If no source is that fast the request is still served, by whichever source offers the best speed for its price - it is never refused for being slow. Sources we have not timed are tried last. This is a preference, not a guarantee: the median describes past requests and is not a ceiling on this one, and it excludes any wait this request itself asks for. On a paginated walk it applies to the first page only: later pages stay with the source that page chose, at the price it was quoted.", "minimum": 1, "type": "integer" + }, + "userId": { + "description": "Weibo user identifier.", + "type": "string" } }, "required": [ - "postId" + "userId" ], - "title": "Weibo post comments input", + "title": "Weibo profile input", "type": "object" } } @@ -192332,88 +196867,80 @@ "additionalProperties": false, "properties": { "data": { - "description": "Comments and pagination, or null when none were found.", + "description": "Normalized profile, or null when not found.", "oneOf": [ { "type": "null" }, { - "additionalProperties": false, "properties": { - "comments": { - "description": "Normalized first-level comments. Populated whenever the provider has data for the entity.", - "items": { - "properties": { - "authorImage": { - "description": "Comment author avatar URL.", - "format": "uri", - "type": "string" - }, - "authorName": { - "description": "Comment author display name. Populated whenever the provider has data for the entity.", - "type": "string", - "x-anyapi-must-populate": true - }, - "authorUserId": { - "description": "Comment author user identifier. Populated whenever the provider has data for the entity.", - "type": "string", - "x-anyapi-must-populate": true - }, - "authorVerified": { - "description": "Whether the comment author is verified.", - "type": "boolean" - }, - "createdUtc": { - "description": "UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.", - "type": "number", - "x-anyapi-must-populate": true - }, - "id": { - "description": "Comment identifier. Populated whenever the provider has data for the entity.", - "type": "string", - "x-anyapi-must-populate": true - }, - "likes": { - "description": "Like count.", - "type": "integer" - }, - "text": { - "description": "Plain comment text. Populated whenever the provider has data for the entity.", - "type": "string", - "x-anyapi-must-populate": true - } - }, - "required": [ - "id" - ], - "type": "object" - }, - "type": "array", + "bio": { + "description": "Profile biography.", + "type": "string" + }, + "customName": { + "description": "Custom Weibo username when configured.", + "type": "string" + }, + "externalUrl": { + "description": "External profile URL.", + "format": "uri", + "type": "string" + }, + "followers": { + "description": "Follower count.", + "type": "integer" + }, + "following": { + "description": "Following count.", + "type": "integer" + }, + "gender": { + "description": "Gender code reported by Weibo.", + "type": "string" + }, + "image": { + "description": "Profile image URL. Populated whenever the provider has data for the entity.", + "format": "uri", + "type": "string", "x-anyapi-must-populate": true }, - "nextCursor": { - "description": "Opaque cursor for the next page of comments, or null when this lane has no more. Pass it back as cursor to continue.", - "type": [ - "string", - "null" - ] + "location": { + "description": "Profile location.", + "type": "string" }, - "total": { - "description": "Total comments reported by Weibo.", + "name": { + "description": "Display name. Populated whenever the provider has data for the entity.", + "type": "string", + "x-anyapi-must-populate": true + }, + "posts": { + "description": "Published post count.", "type": "integer" + }, + "userId": { + "description": "User identifier. Populated whenever the provider has data for the entity.", + "type": "string", + "x-anyapi-must-populate": true + }, + "verified": { + "description": "Whether the account is verified.", + "type": "boolean" + }, + "verifiedReason": { + "description": "Verification reason.", + "type": "string" } }, "required": [ - "comments", - "nextCursor", - "total" + "userId" ], "type": "object" } ] }, "found": { - "description": "True when comments were found.", + "description": "True when the profile was found.", "type": "boolean" } }, @@ -192421,7 +196948,7 @@ "found", "data" ], - "title": "Weibo post comments output", + "title": "Weibo profile output", "type": "object" }, { @@ -192626,12 +197153,12 @@ }, {} ], - "summary": "Weibo Post Comments", + "summary": "Weibo Profile", "tags": [ "weibo" ], "x-mint": { - "href": "/api-reference/weibo/post-comments" + "href": "/api-reference/weibo/profile" }, "x-payment-info": { "price": { @@ -192736,10 +197263,10 @@ } } }, - "/v1/run/weibo.profile": { + "/v1/run/weibo.search": { "post": { - "description": "Fetch a public Weibo profile by user ID with normalized audience and account data.\n\n**Price:** \\$1.20 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Payment outcome follows the selected rail's settlement policy.\n\n**Catalog:** [Weibo Profile pricing and uptime](https://getanyapi.com/api/weibo/profile) - live USD price, lane routing, and measured 30-day uptime. [Every Weibo endpoint](https://getanyapi.com/api/weibo).", - "operationId": "weibo_profile", + "description": "Search public Weibo posts with optional result, media, and time filters.\n\n**Price:** \\$1.20 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Payment outcome follows the selected rail's settlement policy.\n\n**Catalog:** [Weibo Advanced Search pricing and uptime](https://getanyapi.com/api/weibo/search) - live USD price, lane routing, and measured 30-day uptime. [Every Weibo endpoint](https://getanyapi.com/api/weibo).", + "operationId": "weibo_search", "parameters": [ { "description": "Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.", @@ -192778,6 +197305,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -192794,28 +197330,51 @@ "content": { "application/json": { "example": { - "userId": "1722594714" + "includeType": "pic", + "page": 1, + "query": "python", + "searchType": "hot" }, "schema": { "additionalProperties": false, "example": { - "userId": "1722594714" + "includeType": "pic", + "page": 1, + "query": "python", + "searchType": "hot" }, "properties": { + "includeType": { + "description": "Media filter, such as all, pic, video, music, or link.", + "type": "string" + }, + "page": { + "default": 1, + "description": "Page number starting at 1.", + "type": "integer" + }, "preferLatencyUnderMs": { "description": "Optional; omit it and routing is unchanged, with the cheapest source serving. Prefer sources whose typical response time (median over the trailing 30 days, as published on this endpoint's lane health) is under this many milliseconds; among those, the cheapest serves. This can raise your price: when the cheapest source misses the target, a faster and dearer one serves, and you are quoted and charged its price. If no source is that fast the request is still served, by whichever source offers the best speed for its price - it is never refused for being slow. Sources we have not timed are tried last. This is a preference, not a guarantee: the median describes past requests and is not a ceiling on this one, and it excludes any wait this request itself asks for. On a paginated walk it applies to the first page only: later pages stay with the source that page chose, at the price it was quoted.", "minimum": 1, "type": "integer" }, - "userId": { - "description": "Weibo user identifier.", + "query": { + "description": "Search keyword.", + "type": "string" + }, + "searchType": { + "description": "Search type, such as all, hot, original, verified, media, or viewpoint.", + "type": "string" + }, + "timeScope": { + "description": "Custom time range in the API's custom:start:end format.", "type": "string" } }, "required": [ - "userId" + "query" ], - "title": "Weibo profile input", + "title": "Weibo advanced search input", "type": "object" } } @@ -192850,80 +197409,102 @@ "additionalProperties": false, "properties": { "data": { - "description": "Normalized profile, or null when not found.", + "description": "Search results and metadata, or null when none were found.", "oneOf": [ { "type": "null" }, { + "additionalProperties": false, "properties": { - "bio": { - "description": "Profile biography.", - "type": "string" - }, - "customName": { - "description": "Custom Weibo username when configured.", - "type": "string" - }, - "externalUrl": { - "description": "External profile URL.", - "format": "uri", - "type": "string" - }, - "followers": { - "description": "Follower count.", - "type": "integer" - }, - "following": { - "description": "Following count.", - "type": "integer" - }, - "gender": { - "description": "Gender code reported by Weibo.", - "type": "string" - }, - "image": { - "description": "Profile image URL. Populated whenever the provider has data for the entity.", - "format": "uri", - "type": "string", - "x-anyapi-must-populate": true - }, - "location": { - "description": "Profile location.", - "type": "string" - }, - "name": { - "description": "Display name. Populated whenever the provider has data for the entity.", - "type": "string", - "x-anyapi-must-populate": true + "hasMore": { + "description": "Whether another result page is available.", + "type": "boolean" }, "posts": { - "description": "Published post count.", - "type": "integer" - }, - "userId": { - "description": "User identifier. Populated whenever the provider has data for the entity.", - "type": "string", + "description": "Normalized Weibo search results. Populated whenever the provider has data for the entity.", + "items": { + "properties": { + "authorImage": { + "description": "Author avatar URL.", + "format": "uri", + "type": "string" + }, + "authorName": { + "description": "Author display name. Populated whenever the provider has data for the entity.", + "type": "string", + "x-anyapi-must-populate": true + }, + "comments": { + "description": "Comment count.", + "type": "integer" + }, + "createdUtc": { + "description": "UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.", + "type": "number", + "x-anyapi-must-populate": true + }, + "hasImage": { + "description": "Whether the result contains an image.", + "type": "boolean" + }, + "hasVideo": { + "description": "Whether the result contains a video.", + "type": "boolean" + }, + "id": { + "description": "Post identifier. Populated whenever the provider has data for the entity.", + "type": "string", + "x-anyapi-must-populate": true + }, + "likes": { + "description": "Like count.", + "type": "integer" + }, + "reposts": { + "description": "Repost count.", + "type": "integer" + }, + "text": { + "description": "Post text. Populated whenever the provider has data for the entity.", + "type": "string", + "x-anyapi-must-populate": true + }, + "type": { + "description": "Post type.", + "type": "string" + }, + "url": { + "description": "Canonical post URL. Populated whenever the provider has data for the entity.", + "format": "uri", + "type": "string", + "x-anyapi-must-populate": true + } + }, + "required": [ + "id" + ], + "type": "object" + }, + "type": "array", "x-anyapi-must-populate": true }, - "verified": { - "description": "Whether the account is verified.", - "type": "boolean" - }, - "verifiedReason": { - "description": "Verification reason.", - "type": "string" + "resultCount": { + "description": "Result count reported for this page.", + "type": "integer" } }, "required": [ - "userId" + "posts", + "hasMore", + "resultCount" ], "type": "object" } ] }, "found": { - "description": "True when the profile was found.", + "description": "True when search results were found.", "type": "boolean" } }, @@ -192931,7 +197512,7 @@ "found", "data" ], - "title": "Weibo profile output", + "title": "Weibo advanced search output", "type": "object" }, { @@ -193136,12 +197717,12 @@ }, {} ], - "summary": "Weibo Profile", + "summary": "Weibo Advanced Search", "tags": [ "weibo" ], "x-mint": { - "href": "/api-reference/weibo/profile" + "href": "/api-reference/weibo/search" }, "x-payment-info": { "price": { @@ -193246,10 +197827,10 @@ } } }, - "/v1/run/weibo.search": { + "/v1/run/weibo.user_posts": { "post": { - "description": "Search public Weibo posts with optional result, media, and time filters.\n\n**Price:** \\$1.20 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Payment outcome follows the selected rail's settlement policy.\n\n**Catalog:** [Weibo Advanced Search pricing and uptime](https://getanyapi.com/api/weibo/search) - live USD price, lane routing, and measured 30-day uptime. [Every Weibo endpoint](https://getanyapi.com/api/weibo).", - "operationId": "weibo_search", + "description": "List public posts from a Weibo user with normalized author and engagement data.\n\n**Price:** \\$1.20 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Payment outcome follows the selected rail's settlement policy.\n\n**Catalog:** [Weibo User Posts pricing and uptime](https://getanyapi.com/api/weibo/user-posts) - live USD price, lane routing, and measured 30-day uptime. [Every Weibo endpoint](https://getanyapi.com/api/weibo).", + "operationId": "weibo_user_posts", "parameters": [ { "description": "Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.", @@ -193288,6 +197869,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -193304,24 +197894,27 @@ "content": { "application/json": { "example": { - "includeType": "pic", + "feature": 3, "page": 1, - "query": "python", - "searchType": "hot" + "userId": "7277477906" }, "schema": { "additionalProperties": false, "example": { - "includeType": "pic", + "feature": 3, "page": 1, - "query": "python", - "searchType": "hot" + "userId": "7277477906" }, "properties": { - "includeType": { - "description": "Media filter, such as all, pic, video, music, or link.", + "cursor": { + "description": "Pagination identifier returned as nextCursor.", "type": "string" }, + "feature": { + "default": 0, + "description": "Response detail feature: 0 basic, 1 extended, 2 image-oriented, or 3 video-oriented.", + "type": "integer" + }, "page": { "default": 1, "description": "Page number starting at 1.", @@ -193332,23 +197925,15 @@ "minimum": 1, "type": "integer" }, - "query": { - "description": "Search keyword.", - "type": "string" - }, - "searchType": { - "description": "Search type, such as all, hot, original, verified, media, or viewpoint.", - "type": "string" - }, - "timeScope": { - "description": "Custom time range in the API's custom:start:end format.", + "userId": { + "description": "Weibo user identifier.", "type": "string" } }, "required": [ - "query" + "userId" ], - "title": "Weibo advanced search input", + "title": "Weibo user posts input", "type": "object" } } @@ -193383,7 +197968,7 @@ "additionalProperties": false, "properties": { "data": { - "description": "Search results and metadata, or null when none were found.", + "description": "Posts and pagination, or null when none were found.", "oneOf": [ { "type": "null" @@ -193391,12 +197976,15 @@ { "additionalProperties": false, "properties": { - "hasMore": { - "description": "Whether another result page is available.", - "type": "boolean" + "nextCursor": { + "description": "Opaque cursor for the next page of posts, or null when this lane has no more. Pass it back as cursor to continue.", + "type": [ + "string", + "null" + ] }, "posts": { - "description": "Normalized Weibo search results. Populated whenever the provider has data for the entity.", + "description": "Normalized Weibo posts. Populated whenever the provider has data for the entity.", "items": { "properties": { "authorImage": { @@ -193409,6 +197997,15 @@ "type": "string", "x-anyapi-must-populate": true }, + "authorUserId": { + "description": "Author user identifier. Populated whenever the provider has data for the entity.", + "type": "string", + "x-anyapi-must-populate": true + }, + "authorVerified": { + "description": "Whether the author is verified.", + "type": "boolean" + }, "comments": { "description": "Comment count.", "type": "integer" @@ -193418,19 +198015,16 @@ "type": "number", "x-anyapi-must-populate": true }, - "hasImage": { - "description": "Whether the result contains an image.", - "type": "boolean" - }, - "hasVideo": { - "description": "Whether the result contains a video.", - "type": "boolean" - }, "id": { "description": "Post identifier. Populated whenever the provider has data for the entity.", "type": "string", "x-anyapi-must-populate": true }, + "image": { + "description": "Post preview image URL.", + "format": "uri", + "type": "string" + }, "likes": { "description": "Like count.", "type": "integer" @@ -193439,18 +198033,13 @@ "description": "Repost count.", "type": "integer" }, - "text": { - "description": "Post text. Populated whenever the provider has data for the entity.", + "shortId": { + "description": "Short Weibo post identifier. Populated whenever the provider has data for the entity.", "type": "string", "x-anyapi-must-populate": true }, - "type": { - "description": "Post type.", - "type": "string" - }, - "url": { - "description": "Canonical post URL. Populated whenever the provider has data for the entity.", - "format": "uri", + "text": { + "description": "Plain post text. Populated whenever the provider has data for the entity.", "type": "string", "x-anyapi-must-populate": true } @@ -193462,23 +198051,18 @@ }, "type": "array", "x-anyapi-must-populate": true - }, - "resultCount": { - "description": "Result count reported for this page.", - "type": "integer" } }, "required": [ "posts", - "hasMore", - "resultCount" + "nextCursor" ], "type": "object" } ] }, "found": { - "description": "True when search results were found.", + "description": "True when posts were found.", "type": "boolean" } }, @@ -193486,7 +198070,7 @@ "found", "data" ], - "title": "Weibo advanced search output", + "title": "Weibo user posts output", "type": "object" }, { @@ -193691,12 +198275,12 @@ }, {} ], - "summary": "Weibo Advanced Search", + "summary": "Weibo User Posts", "tags": [ "weibo" ], "x-mint": { - "href": "/api-reference/weibo/search" + "href": "/api-reference/weibo/user-posts" }, "x-payment-info": { "price": { @@ -193801,10 +198385,10 @@ } } }, - "/v1/run/weibo.user_posts": { + "/v1/run/yahoo_finance.quote": { "post": { - "description": "List public posts from a Weibo user with normalized author and engagement data.\n\n**Price:** \\$1.20 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Payment outcome follows the selected rail's settlement policy.\n\n**Catalog:** [Weibo User Posts pricing and uptime](https://getanyapi.com/api/weibo/user-posts) - live USD price, lane routing, and measured 30-day uptime. [Every Weibo endpoint](https://getanyapi.com/api/weibo).", - "operationId": "weibo_user_posts", + "description": "Look up a stock or ETF by ticker symbol and get its Yahoo Finance quote (price, market cap, volume, and key stats) as normalized JSON.\n\n**Price:** billed per result - \\$0.06 per 1,000 requests base + \\$0.99 per 1,000 results, capped at \\$1.05 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Payment outcome follows the selected rail's settlement policy.\n\n**Catalog:** [Yahoo Finance Quote pricing and uptime](https://getanyapi.com/api/yahoo-finance/quote) - live USD price, lane routing, and measured 30-day uptime. [Every Yahoo Finance endpoint](https://getanyapi.com/api/yahoo-finance).", + "operationId": "yahoo_finance_quote", "parameters": [ { "description": "Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.", @@ -193843,6 +198427,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -193859,46 +198452,28 @@ "content": { "application/json": { "example": { - "feature": 3, - "page": 1, - "userId": "7277477906" + "ticker": "AAPL" }, "schema": { "additionalProperties": false, "example": { - "feature": 3, - "page": 1, - "userId": "7277477906" + "ticker": "AAPL" }, "properties": { - "cursor": { - "description": "Pagination identifier returned as nextCursor.", - "type": "string" - }, - "feature": { - "default": 0, - "description": "Response detail feature: 0 basic, 1 extended, 2 image-oriented, or 3 video-oriented.", - "type": "integer" - }, - "page": { - "default": 1, - "description": "Page number starting at 1.", - "type": "integer" - }, "preferLatencyUnderMs": { "description": "Optional; omit it and routing is unchanged, with the cheapest source serving. Prefer sources whose typical response time (median over the trailing 30 days, as published on this endpoint's lane health) is under this many milliseconds; among those, the cheapest serves. This can raise your price: when the cheapest source misses the target, a faster and dearer one serves, and you are quoted and charged its price. If no source is that fast the request is still served, by whichever source offers the best speed for its price - it is never refused for being slow. Sources we have not timed are tried last. This is a preference, not a guarantee: the median describes past requests and is not a ceiling on this one, and it excludes any wait this request itself asks for. On a paginated walk it applies to the first page only: later pages stay with the source that page chose, at the price it was quoted.", "minimum": 1, "type": "integer" }, - "userId": { - "description": "Weibo user identifier.", + "ticker": { + "description": "The ticker symbol to look up.", "type": "string" } }, "required": [ - "userId" + "ticker" ], - "title": "Weibo user posts input", + "title": "Yahoo Finance quote input", "type": "object" } } @@ -193933,7 +198508,6 @@ "additionalProperties": false, "properties": { "data": { - "description": "Posts and pagination, or null when none were found.", "oneOf": [ { "type": "null" @@ -193941,76 +198515,56 @@ { "additionalProperties": false, "properties": { - "nextCursor": { - "description": "Opaque cursor for the next page of posts, or null when this lane has no more. Pass it back as cursor to continue.", - "type": [ - "string", - "null" - ] - }, - "posts": { - "description": "Normalized Weibo posts. Populated whenever the provider has data for the entity.", + "items": { + "description": "Quote records for the ticker: current price, day range, volume, and market cap. Populated whenever the provider has data for the entity.", "items": { "properties": { - "authorImage": { - "description": "Author avatar URL.", - "format": "uri", - "type": "string" + "change": { + "description": "Absolute price change from the previous close.", + "type": "number" }, - "authorName": { - "description": "Author display name. Populated whenever the provider has data for the entity.", - "type": "string", - "x-anyapi-must-populate": true + "changePercent": { + "description": "Percent price change from the previous close (e.g. 3.14 means +3.14%).", + "type": "number" }, - "authorUserId": { - "description": "Author user identifier. Populated whenever the provider has data for the entity.", - "type": "string", - "x-anyapi-must-populate": true + "dayHigh": { + "description": "Highest trade price during the current session.", + "type": "number" }, - "authorVerified": { - "description": "Whether the author is verified.", - "type": "boolean" + "dayLow": { + "description": "Lowest trade price during the current session.", + "type": "number" }, - "comments": { - "description": "Comment count.", + "marketCap": { + "description": "Total market capitalization in the security's native currency.", "type": "integer" }, - "createdUtc": { - "description": "UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.", - "type": "number", - "x-anyapi-must-populate": true - }, - "id": { - "description": "Post identifier. Populated whenever the provider has data for the entity.", + "name": { + "description": "The security's display name, e.g. \"Apple Inc.\". Populated whenever the provider has data for the entity.", "type": "string", "x-anyapi-must-populate": true }, - "image": { - "description": "Post preview image URL.", - "format": "uri", - "type": "string" - }, - "likes": { - "description": "Like count.", - "type": "integer" - }, - "reposts": { - "description": "Repost count.", - "type": "integer" + "previousClose": { + "description": "The previous session's closing price.", + "type": "number" }, - "shortId": { - "description": "Short Weibo post identifier. Populated whenever the provider has data for the entity.", - "type": "string", + "price": { + "description": "The latest trade price in the security's native currency. Populated whenever the provider has data for the entity.", + "type": "number", "x-anyapi-must-populate": true }, - "text": { - "description": "Plain post text. Populated whenever the provider has data for the entity.", + "symbol": { + "description": "The resolved ticker symbol for the quote, e.g. \"AAPL\". Populated whenever the provider has data for the entity.", "type": "string", "x-anyapi-must-populate": true + }, + "volume": { + "description": "Number of shares traded during the current session.", + "type": "integer" } }, "required": [ - "id" + "price" ], "type": "object" }, @@ -194019,15 +198573,13 @@ } }, "required": [ - "posts", - "nextCursor" + "items" ], "type": "object" } ] }, "found": { - "description": "True when posts were found.", "type": "boolean" } }, @@ -194035,8 +198587,9 @@ "found", "data" ], - "title": "Weibo user posts output", - "type": "object" + "title": "Yahoo Finance quote output", + "type": "object", + "x-anyapi-heavy": true }, { "type": "null" @@ -194240,18 +198793,19 @@ }, {} ], - "summary": "Weibo User Posts", + "summary": "Yahoo Finance Quote", "tags": [ - "weibo" + "yahoo-finance" ], "x-mint": { - "href": "/api-reference/weibo/user-posts" + "href": "/api-reference/yahoo-finance/quote" }, "x-payment-info": { "price": { - "amount": "0.001200", "currency": "USD", - "mode": "fixed" + "max": "0.001050", + "min": "0.000060", + "mode": "dynamic" }, "protocols": [ { @@ -194291,10 +198845,11 @@ ] }, "pricing": { - "amount": "0.001200", "currency": "USD", + "max": "0.001050", + "min": "0.001000", "minimumUsd": "0.001000", - "mode": "fixed", + "mode": "dynamic", "quoteBasis": "floor" }, "protocol": { @@ -194323,10 +198878,11 @@ ] }, "pricing": { - "amount": "0.001200", "currency": "USD", + "max": "0.001050", + "min": "0.000060", "minimumUsd": null, - "mode": "fixed", + "mode": "dynamic", "quoteBasis": "funded_ceiling" }, "protocol": { @@ -194350,10 +198906,10 @@ } } }, - "/v1/run/yahoo_finance.quote": { + "/v1/run/yelp.search": { "post": { - "description": "Look up a stock or ETF by ticker symbol and get its Yahoo Finance quote (price, market cap, volume, and key stats) as normalized JSON.\n\n**Price:** billed per result - \\$0.06 per 1,000 requests base + \\$0.99 per 1,000 results, capped at \\$1.05 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Payment outcome follows the selected rail's settlement policy.\n\n**Catalog:** [Yahoo Finance Quote pricing and uptime](https://getanyapi.com/api/yahoo-finance/quote) - live USD price, lane routing, and measured 30-day uptime. [Every Yahoo Finance endpoint](https://getanyapi.com/api/yahoo-finance).", - "operationId": "yahoo_finance_quote", + "description": "Search Yelp for businesses by keyword and location: up to 20 listings with ratings, categories, and core business info per request.\n\n**Price:** \\$3.50 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes are available in execution order. A failed attempt uses the next lane only when the request's payment authorizes that lane's price; the normalized schema stays the same.\n\n**Catalog:** [Yelp Search pricing and uptime](https://getanyapi.com/api/yelp/search) - live USD price, lane routing, and measured 30-day uptime. [Every Yelp endpoint](https://getanyapi.com/api/yelp).", + "operationId": "yelp_search", "parameters": [ { "description": "Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.", @@ -194392,6 +198948,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -194408,28 +198973,44 @@ "content": { "application/json": { "example": { - "ticker": "AAPL" + "limit": 5, + "location": "Chicago, IL", + "query": "pizza" }, "schema": { "additionalProperties": false, "example": { - "ticker": "AAPL" + "limit": 5, + "location": "Chicago, IL", + "query": "pizza" }, "properties": { + "limit": { + "default": 20, + "description": "Maximum number of results to return (1 to 20, default 20).", + "maximum": 20, + "minimum": 1, + "type": "integer" + }, + "location": { + "description": "City and state defining the search area (e.g. San Francisco, CA).", + "type": "string" + }, "preferLatencyUnderMs": { "description": "Optional; omit it and routing is unchanged, with the cheapest source serving. Prefer sources whose typical response time (median over the trailing 30 days, as published on this endpoint's lane health) is under this many milliseconds; among those, the cheapest serves. This can raise your price: when the cheapest source misses the target, a faster and dearer one serves, and you are quoted and charged its price. If no source is that fast the request is still served, by whichever source offers the best speed for its price - it is never refused for being slow. Sources we have not timed are tried last. This is a preference, not a guarantee: the median describes past requests and is not a ceiling on this one, and it excludes any wait this request itself asks for. On a paginated walk it applies to the first page only: later pages stay with the source that page chose, at the price it was quoted.", "minimum": 1, "type": "integer" }, - "ticker": { - "description": "The ticker symbol to look up.", + "query": { + "description": "Search term or category to look for (e.g. sushi).", "type": "string" } }, "required": [ - "ticker" + "query", + "location" ], - "title": "Yahoo Finance quote input", + "title": "Yelp search input", "type": "object" } } @@ -194472,55 +199053,192 @@ "additionalProperties": false, "properties": { "items": { - "description": "Quote records for the ticker: current price, day range, volume, and market cap. Populated whenever the provider has data for the entity.", + "description": "Business listing records: name, categories, rating, review count, address, and core business info. Populated whenever the provider has data for the entity.", "items": { + "additionalProperties": true, "properties": { - "change": { - "description": "Absolute price change from the previous close.", - "type": "number" + "address1": { + "description": "Primary street address line.", + "type": [ + "string", + "null" + ] }, - "changePercent": { - "description": "Percent price change from the previous close (e.g. 3.14 means +3.14%).", - "type": "number" + "address2": { + "description": "Secondary address line.", + "type": [ + "string", + "null" + ] }, - "dayHigh": { - "description": "Highest trade price during the current session.", - "type": "number" + "address3": { + "description": "Tertiary address line.", + "type": [ + "string", + "null" + ] }, - "dayLow": { - "description": "Lowest trade price during the current session.", - "type": "number" + "alias": { + "description": "URL slug for the business. Populated whenever the provider has data for the entity.", + "type": "string", + "x-anyapi-must-populate": true }, - "marketCap": { - "description": "Total market capitalization in the security's native currency.", - "type": "integer" + "avg_rating": { + "description": "Rounded average star rating.", + "type": [ + "number", + "null" + ] }, - "name": { - "description": "The security's display name, e.g. \"Apple Inc.\". Populated whenever the provider has data for the entity.", + "categories": { + "description": "Business category tags.", + "items": { + "additionalProperties": true, + "type": "object" + }, + "type": [ + "array", + "null" + ] + }, + "city": { + "description": "City name.", + "type": [ + "string", + "null" + ] + }, + "country": { + "description": "ISO country code.", + "type": [ + "string", + "null" + ] + }, + "dialable_phone": { + "description": "Dialable phone number.", + "type": [ + "string", + "null" + ] + }, + "id": { + "description": "Stable Yelp business identifier. Populated whenever the provider has data for the entity.", "type": "string", "x-anyapi-must-populate": true }, - "previousClose": { - "description": "The previous session's closing price.", - "type": "number" + "is_closed": { + "description": "Whether the business is permanently closed.", + "type": [ + "boolean", + "null" + ] }, - "price": { - "description": "The latest trade price in the security's native currency. Populated whenever the provider has data for the entity.", - "type": "number", - "x-anyapi-must-populate": true + "latitude": { + "description": "Latitude of the business.", + "type": [ + "number", + "null" + ] }, - "symbol": { - "description": "The resolved ticker symbol for the quote, e.g. \"AAPL\". Populated whenever the provider has data for the entity.", + "localized_phone": { + "description": "Formatted local phone number.", + "type": [ + "string", + "null" + ] + }, + "localized_price": { + "description": "Localized price tier (e.g. $$).", + "type": [ + "string", + "null" + ] + }, + "longitude": { + "description": "Longitude of the business.", + "type": [ + "number", + "null" + ] + }, + "name": { + "description": "Business display name. Populated whenever the provider has data for the entity.", "type": "string", "x-anyapi-must-populate": true }, - "volume": { - "description": "Number of shares traded during the current session.", - "type": "integer" + "neighborhoods": { + "description": "Neighborhood labels for the location.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "phone": { + "description": "Raw phone number.", + "type": [ + "string", + "null" + ] + }, + "photo_count": { + "description": "Total photo count.", + "type": [ + "integer", + "null" + ] + }, + "photo_url": { + "description": "Primary photo URL. Populated whenever the provider has data for the entity.", + "type": [ + "string", + "null" + ], + "x-anyapi-must-populate": true + }, + "price": { + "description": "Numeric price tier.", + "type": [ + "integer", + "null" + ] + }, + "review_count": { + "description": "Number of reviews.", + "type": [ + "integer", + "null" + ] + }, + "state": { + "description": "State or region code.", + "type": [ + "string", + "null" + ] + }, + "unrounded_avg_rating": { + "description": "Unrounded average star rating.", + "type": [ + "number", + "null" + ] + }, + "zip": { + "description": "Postal code.", + "type": [ + "string", + "null" + ] } }, "required": [ - "price" + "id", + "name", + "alias" ], "type": "object" }, @@ -194543,9 +199261,8 @@ "found", "data" ], - "title": "Yahoo Finance quote output", - "type": "object", - "x-anyapi-heavy": true + "title": "Yelp search output", + "type": "object" }, { "type": "null" @@ -194749,18 +199466,18 @@ }, {} ], - "summary": "Yahoo Finance Quote", + "summary": "Yelp Search", "tags": [ - "yahoo-finance" + "yelp" ], "x-mint": { - "href": "/api-reference/yahoo-finance/quote" + "href": "/api-reference/yelp/search" }, "x-payment-info": { "price": { "currency": "USD", - "max": "0.001050", - "min": "0.000060", + "max": "0.060500", + "min": "0.003500", "mode": "dynamic" }, "protocols": [ @@ -194802,8 +199519,8 @@ }, "pricing": { "currency": "USD", - "max": "0.001050", - "min": "0.001000", + "max": "0.060500", + "min": "0.003500", "minimumUsd": "0.001000", "mode": "dynamic", "quoteBasis": "floor" @@ -194835,8 +199552,8 @@ }, "pricing": { "currency": "USD", - "max": "0.001050", - "min": "0.000060", + "max": "0.060500", + "min": "0.003500", "minimumUsd": null, "mode": "dynamic", "quoteBasis": "funded_ceiling" @@ -194862,10 +199579,10 @@ } } }, - "/v1/run/yelp.search": { + "/v1/run/youtube.channel": { "post": { - "description": "Search Yelp for businesses by keyword and location: up to 20 listings with ratings, categories, and core business info per request.\n\n**Price:** billed per result - \\$44.00 per 1,000 requests base + \\$0.83 per 1,000 results, capped at \\$60.50 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Payment outcome follows the selected rail's settlement policy.\n\n**Catalog:** [Yelp Search pricing and uptime](https://getanyapi.com/api/yelp/search) - live USD price, lane routing, and measured 30-day uptime. [Every Yelp endpoint](https://getanyapi.com/api/yelp).", - "operationId": "yelp_search", + "description": "Fetch a YouTube channel's stats (subscribers, video count, total views, description) by handle or channel ID.\n\n**Price:** \\$0.90 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 3 independent lanes are available in execution order. A failed attempt uses the next lane only when the request's payment authorizes that lane's price; the normalized schema stays the same.\n\n**Catalog:** [YouTube Channel pricing and uptime](https://getanyapi.com/api/youtube/channel) - live USD price, lane routing, and measured 30-day uptime. [Every YouTube endpoint](https://getanyapi.com/api/youtube).", + "operationId": "youtube_channel", "parameters": [ { "description": "Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.", @@ -194904,6 +199621,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -194920,43 +199646,41 @@ "content": { "application/json": { "example": { - "limit": 5, - "location": "Chicago, IL", - "query": "pizza" + "handle": "@mkbhd" }, "schema": { "additionalProperties": false, + "anyOf": [ + { + "required": [ + "handle" + ] + }, + { + "required": [ + "channelId" + ] + } + ], "example": { - "limit": 5, - "location": "Chicago, IL", - "query": "pizza" + "handle": "@mkbhd" }, "properties": { - "limit": { - "description": "Maximum number of results to return (1 to 20, default 20).", - "maximum": 20, - "minimum": 1, - "type": "integer" + "channelId": { + "description": "YouTube channel ID (UC...).", + "type": "string" }, - "location": { - "description": "City and state defining the search area (e.g. San Francisco, CA).", + "handle": { + "description": "YouTube channel handle.", "type": "string" }, "preferLatencyUnderMs": { "description": "Optional; omit it and routing is unchanged, with the cheapest source serving. Prefer sources whose typical response time (median over the trailing 30 days, as published on this endpoint's lane health) is under this many milliseconds; among those, the cheapest serves. This can raise your price: when the cheapest source misses the target, a faster and dearer one serves, and you are quoted and charged its price. If no source is that fast the request is still served, by whichever source offers the best speed for its price - it is never refused for being slow. Sources we have not timed are tried last. This is a preference, not a guarantee: the median describes past requests and is not a ceiling on this one, and it excludes any wait this request itself asks for. On a paginated walk it applies to the first page only: later pages stay with the source that page chose, at the price it was quoted.", "minimum": 1, "type": "integer" - }, - "query": { - "description": "Search term or category to look for (e.g. sushi).", - "type": "string" } }, - "required": [ - "query", - "location" - ], - "title": "Yelp search input", + "title": "YouTube channel input", "type": "object" } } @@ -194996,204 +199720,43 @@ "type": "null" }, { - "additionalProperties": false, "properties": { - "items": { - "description": "Business listing records: name, categories, rating, review count, address, and core business info. Populated whenever the provider has data for the entity.", - "items": { - "additionalProperties": true, - "properties": { - "address1": { - "description": "Primary street address line.", - "type": [ - "string", - "null" - ] - }, - "address2": { - "description": "Secondary address line.", - "type": [ - "string", - "null" - ] - }, - "address3": { - "description": "Tertiary address line.", - "type": [ - "string", - "null" - ] - }, - "alias": { - "description": "URL slug for the business. Populated whenever the provider has data for the entity.", - "type": "string", - "x-anyapi-must-populate": true - }, - "avg_rating": { - "description": "Rounded average star rating.", - "type": [ - "number", - "null" - ] - }, - "categories": { - "description": "Business category tags.", - "items": { - "additionalProperties": true, - "type": "object" - }, - "type": [ - "array", - "null" - ] - }, - "city": { - "description": "City name.", - "type": [ - "string", - "null" - ] - }, - "country": { - "description": "ISO country code.", - "type": [ - "string", - "null" - ] - }, - "dialable_phone": { - "description": "Dialable phone number.", - "type": [ - "string", - "null" - ] - }, - "id": { - "description": "Stable Yelp business identifier. Populated whenever the provider has data for the entity.", - "type": "string", - "x-anyapi-must-populate": true - }, - "is_closed": { - "description": "Whether the business is permanently closed.", - "type": [ - "boolean", - "null" - ] - }, - "latitude": { - "description": "Latitude of the business.", - "type": [ - "number", - "null" - ] - }, - "localized_phone": { - "description": "Formatted local phone number.", - "type": [ - "string", - "null" - ] - }, - "localized_price": { - "description": "Localized price tier (e.g. $$).", - "type": [ - "string", - "null" - ] - }, - "longitude": { - "description": "Longitude of the business.", - "type": [ - "number", - "null" - ] - }, - "name": { - "description": "Business display name. Populated whenever the provider has data for the entity.", - "type": "string", - "x-anyapi-must-populate": true - }, - "neighborhoods": { - "description": "Neighborhood labels for the location.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "phone": { - "description": "Raw phone number.", - "type": [ - "string", - "null" - ] - }, - "photo_count": { - "description": "Total photo count.", - "type": [ - "integer", - "null" - ] - }, - "photo_url": { - "description": "Primary photo URL. Populated whenever the provider has data for the entity.", - "type": [ - "string", - "null" - ], - "x-anyapi-must-populate": true - }, - "price": { - "description": "Numeric price tier.", - "type": [ - "integer", - "null" - ] - }, - "review_count": { - "description": "Number of reviews.", - "type": [ - "integer", - "null" - ] - }, - "state": { - "description": "State or region code.", - "type": [ - "string", - "null" - ] - }, - "unrounded_avg_rating": { - "description": "Unrounded average star rating.", - "type": [ - "number", - "null" - ] - }, - "zip": { - "description": "Postal code.", - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "id", - "name", - "alias" - ], - "type": "object" - }, - "type": "array", + "avatarUrl": { + "type": "string" + }, + "channelId": { + "description": "Populated whenever the provider has data for the entity.", + "type": "string", "x-anyapi-must-populate": true + }, + "description": { + "description": "Populated whenever the provider has data for the entity.", + "type": "string", + "x-anyapi-must-populate": true + }, + "subscribers": { + "type": "integer" + }, + "title": { + "description": "Populated whenever the provider has data for the entity.", + "type": "string", + "x-anyapi-must-populate": true + }, + "videos": { + "type": "integer" + }, + "views": { + "type": "integer" } }, "required": [ - "items" + "channelId", + "title", + "subscribers", + "videos", + "views", + "description", + "avatarUrl" ], "type": "object" } @@ -195207,7 +199770,7 @@ "found", "data" ], - "title": "Yelp search output", + "title": "YouTube channel output", "type": "object" }, { @@ -195412,18 +199975,18 @@ }, {} ], - "summary": "Yelp Search", + "summary": "YouTube Channel", "tags": [ - "yelp" + "youtube" ], "x-mint": { - "href": "/api-reference/yelp/search" + "href": "/api-reference/youtube/channel" }, "x-payment-info": { "price": { "currency": "USD", - "max": "0.060500", - "min": "0.044000", + "max": "0.003600", + "min": "0.000900", "mode": "dynamic" }, "protocols": [ @@ -195465,8 +200028,8 @@ }, "pricing": { "currency": "USD", - "max": "0.060500", - "min": "0.044000", + "max": "0.003600", + "min": "0.001000", "minimumUsd": "0.001000", "mode": "dynamic", "quoteBasis": "floor" @@ -195498,8 +200061,8 @@ }, "pricing": { "currency": "USD", - "max": "0.060500", - "min": "0.044000", + "max": "0.003600", + "min": "0.000900", "minimumUsd": null, "mode": "dynamic", "quoteBasis": "funded_ceiling" @@ -195525,10 +200088,10 @@ } } }, - "/v1/run/youtube.channel": { + "/v1/run/youtube.channel_community_posts": { "post": { - "description": "Fetch a YouTube channel's stats (subscribers, video count, total views, description) by handle or channel ID.\n\n**Price:** \\$0.90 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 3 independent lanes are available in execution order. A failed attempt uses the next lane only when the request's payment authorizes that lane's price; the normalized schema stays the same.\n\n**Catalog:** [YouTube Channel pricing and uptime](https://getanyapi.com/api/youtube/channel) - live USD price, lane routing, and measured 30-day uptime. [Every YouTube endpoint](https://getanyapi.com/api/youtube).", - "operationId": "youtube_channel", + "description": "List a YouTube channel's community posts by handle or channel ID with cursor pagination (text, likes, image, publish time).\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes are available in execution order. A failed attempt uses the next lane only when the request's payment authorizes that lane's price; the normalized schema stays the same.\n\n**Catalog:** [YouTube Channel Community Posts pricing and uptime](https://getanyapi.com/api/youtube/channel-community-posts) - live USD price, lane routing, and measured 30-day uptime. [Every YouTube endpoint](https://getanyapi.com/api/youtube).", + "operationId": "youtube_channel_community_posts", "parameters": [ { "description": "Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.", @@ -195567,6 +200130,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -195583,7 +200155,7 @@ "content": { "application/json": { "example": { - "handle": "@mkbhd" + "handle": "@MrBeast" }, "schema": { "additionalProperties": false, @@ -195600,11 +200172,15 @@ } ], "example": { - "handle": "@mkbhd" + "handle": "@MrBeast" }, "properties": { "channelId": { - "description": "YouTube channel ID (UC...).", + "description": "YouTube channel ID.", + "type": "string" + }, + "cursor": { + "description": "Continuation token from a previous response for pagination.", "type": "string" }, "handle": { @@ -195617,7 +200193,7 @@ "type": "integer" } }, - "title": "YouTube channel input", + "title": "YouTube Channel Community Posts input", "type": "object" } } @@ -195657,43 +200233,63 @@ "type": "null" }, { + "additionalProperties": false, "properties": { - "avatarUrl": { - "type": "string" - }, - "channelId": { - "description": "Populated whenever the provider has data for the entity.", - "type": "string", - "x-anyapi-must-populate": true - }, - "description": { - "description": "Populated whenever the provider has data for the entity.", - "type": "string", - "x-anyapi-must-populate": true - }, - "subscribers": { - "type": "integer" + "nextCursor": { + "description": "Opaque cursor for the next page of posts, or null when this lane has no more. Pass it back as cursor to continue.", + "type": [ + "string", + "null" + ] }, - "title": { + "posts": { "description": "Populated whenever the provider has data for the entity.", - "type": "string", + "items": { + "properties": { + "content": { + "description": "Populated whenever the provider has data for the entity.", + "type": "string", + "x-anyapi-must-populate": true + }, + "id": { + "description": "Populated whenever the provider has data for the entity.", + "type": "string", + "x-anyapi-must-populate": true + }, + "image": { + "type": "string" + }, + "likeCount": { + "type": "integer" + }, + "publishedTime": { + "description": "Populated whenever the provider has data for the entity.", + "type": "string", + "x-anyapi-must-populate": true + }, + "url": { + "description": "Populated whenever the provider has data for the entity.", + "type": "string", + "x-anyapi-must-populate": true + } + }, + "required": [ + "id", + "url", + "content", + "image", + "likeCount", + "publishedTime" + ], + "type": "object" + }, + "type": "array", "x-anyapi-must-populate": true - }, - "videos": { - "type": "integer" - }, - "views": { - "type": "integer" } }, "required": [ - "channelId", - "title", - "subscribers", - "videos", - "views", - "description", - "avatarUrl" + "posts", + "nextCursor" ], "type": "object" } @@ -195707,7 +200303,7 @@ "found", "data" ], - "title": "YouTube channel output", + "title": "YouTube Channel Community Posts output", "type": "object" }, { @@ -195912,18 +200508,18 @@ }, {} ], - "summary": "YouTube Channel", + "summary": "YouTube Channel Community Posts", "tags": [ "youtube" ], "x-mint": { - "href": "/api-reference/youtube/channel" + "href": "/api-reference/youtube/channel-community-posts" }, "x-payment-info": { "price": { "currency": "USD", "max": "0.003600", - "min": "0.000900", + "min": "0.002000", "mode": "dynamic" }, "protocols": [ @@ -195966,7 +200562,7 @@ "pricing": { "currency": "USD", "max": "0.003600", - "min": "0.001000", + "min": "0.002000", "minimumUsd": "0.001000", "mode": "dynamic", "quoteBasis": "floor" @@ -195999,7 +200595,7 @@ "pricing": { "currency": "USD", "max": "0.003600", - "min": "0.000900", + "min": "0.002000", "minimumUsd": null, "mode": "dynamic", "quoteBasis": "funded_ceiling" @@ -196025,10 +200621,10 @@ } } }, - "/v1/run/youtube.channel_community_posts": { + "/v1/run/youtube.channel_contact": { "post": { - "description": "List a YouTube channel's community posts by handle or channel ID with cursor pagination (text, likes, image, publish time).\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes are available in execution order. A failed attempt uses the next lane only when the request's payment authorizes that lane's price; the normalized schema stays the same.\n\n**Catalog:** [YouTube Channel Community Posts pricing and uptime](https://getanyapi.com/api/youtube/channel-community-posts) - live USD price, lane routing, and measured 30-day uptime. [Every YouTube endpoint](https://getanyapi.com/api/youtube).", - "operationId": "youtube_channel_community_posts", + "description": "Reveal the business inquiry email a YouTube creator publishes behind the channel's View email address button. YouTube gates that address behind a signed-in Google session and a CAPTCHA, so it is absent from the channel page a logged-out scraper reads.\n\n**Price:** billed per result - \\$71.80 per 1,000 requests base + \\$0.00 per 1,000 results, capped at \\$71.80 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Payment outcome follows the selected rail's settlement policy.\n\n**Catalog:** [YouTube Channel Contact Email pricing and uptime](https://getanyapi.com/api/youtube/channel-contact) - live USD price, lane routing, and measured 30-day uptime. [Every YouTube endpoint](https://getanyapi.com/api/youtube).", + "operationId": "youtube_channel_contact", "parameters": [ { "description": "Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.", @@ -196067,6 +200663,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -196083,7 +200688,7 @@ "content": { "application/json": { "example": { - "handle": "@MrBeast" + "handle": "@mkbhd" }, "schema": { "additionalProperties": false, @@ -196100,19 +200705,17 @@ } ], "example": { - "handle": "@MrBeast" + "handle": "@mkbhd" }, "properties": { "channelId": { - "description": "YouTube channel ID.", - "type": "string" - }, - "cursor": { - "description": "Continuation token from a previous response for pagination.", + "description": "YouTube channel ID (UC...).", + "minLength": 1, "type": "string" }, "handle": { - "description": "YouTube channel handle.", + "description": "YouTube channel handle, with or without the leading @.", + "minLength": 1, "type": "string" }, "preferLatencyUnderMs": { @@ -196121,7 +200724,7 @@ "type": "integer" } }, - "title": "YouTube Channel Community Posts input", + "title": "YouTube channel contact email input", "type": "object" } } @@ -196156,74 +200759,27 @@ "additionalProperties": false, "properties": { "data": { + "description": "The revealed contact details, or null when no address came back.", "oneOf": [ { "type": "null" }, { - "additionalProperties": false, "properties": { - "nextCursor": { - "description": "Opaque cursor for the next page of posts, or null when this lane has no more. Pass it back as cursor to continue.", - "type": [ - "string", - "null" - ] - }, - "posts": { - "description": "Populated whenever the provider has data for the entity.", - "items": { - "properties": { - "content": { - "description": "Populated whenever the provider has data for the entity.", - "type": "string", - "x-anyapi-must-populate": true - }, - "id": { - "description": "Populated whenever the provider has data for the entity.", - "type": "string", - "x-anyapi-must-populate": true - }, - "image": { - "type": "string" - }, - "likeCount": { - "type": "integer" - }, - "publishedTime": { - "description": "Populated whenever the provider has data for the entity.", - "type": "string", - "x-anyapi-must-populate": true - }, - "url": { - "description": "Populated whenever the provider has data for the entity.", - "type": "string", - "x-anyapi-must-populate": true - } - }, - "required": [ - "id", - "url", - "content", - "image", - "likeCount", - "publishedTime" - ], - "type": "object" - }, - "type": "array", - "x-anyapi-must-populate": true + "email": { + "description": "The business inquiry email the creator published on the channel's About tab, as YouTube reveals it behind the View email address button. This is the address YouTube gates behind a signed-in session, so it is often different from any address written into the channel description.", + "type": "string" } }, "required": [ - "posts", - "nextCursor" + "email" ], "type": "object" } ] }, "found": { + "description": "True when a business inquiry email was revealed for the channel. False means no address came back, which covers three cases this upstream does not tell apart: the channel publishes no business email, the channel does not exist, or the reveal did not get past YouTube's CAPTCHA on this attempt. Treat false as no address on this call, not as proof the creator has none.", "type": "boolean" } }, @@ -196231,7 +200787,7 @@ "found", "data" ], - "title": "YouTube Channel Community Posts output", + "title": "YouTube channel contact email output", "type": "object" }, { @@ -196436,18 +200992,18 @@ }, {} ], - "summary": "YouTube Channel Community Posts", + "summary": "YouTube Channel Contact Email", "tags": [ "youtube" ], "x-mint": { - "href": "/api-reference/youtube/channel-community-posts" + "href": "/api-reference/youtube/channel-contact" }, "x-payment-info": { "price": { "currency": "USD", - "max": "0.003600", - "min": "0.002000", + "max": "0.071800", + "min": "0.071800", "mode": "dynamic" }, "protocols": [ @@ -196489,8 +201045,8 @@ }, "pricing": { "currency": "USD", - "max": "0.003600", - "min": "0.002000", + "max": "0.071800", + "min": "0.071800", "minimumUsd": "0.001000", "mode": "dynamic", "quoteBasis": "floor" @@ -196522,8 +201078,8 @@ }, "pricing": { "currency": "USD", - "max": "0.003600", - "min": "0.002000", + "max": "0.071800", + "min": "0.071800", "minimumUsd": null, "mode": "dynamic", "quoteBasis": "funded_ceiling" @@ -196549,10 +201105,10 @@ } } }, - "/v1/run/youtube.channel_contact": { + "/v1/run/youtube.channel_lives": { "post": { - "description": "Reveal the business inquiry email a YouTube creator publishes behind the channel's View email address button. YouTube gates that address behind a signed-in Google session and a CAPTCHA, so it is absent from the channel page a logged-out scraper reads.\n\n**Price:** billed per result - \\$71.80 per 1,000 requests base + \\$0.00 per 1,000 results, capped at \\$71.80 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Payment outcome follows the selected rail's settlement policy.\n\n**Catalog:** [YouTube Channel Contact Email pricing and uptime](https://getanyapi.com/api/youtube/channel-contact) - live USD price, lane routing, and measured 30-day uptime. [Every YouTube endpoint](https://getanyapi.com/api/youtube).", - "operationId": "youtube_channel_contact", + "description": "List a YouTube channel's live and past-live streams by handle or channel ID with cursor pagination (title, views, length, publish time).\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes are available in execution order. A failed attempt uses the next lane only when the request's payment authorizes that lane's price; the normalized schema stays the same.\n\n**Catalog:** [YouTube Channel Live Streams pricing and uptime](https://getanyapi.com/api/youtube/channel-lives) - live USD price, lane routing, and measured 30-day uptime. [Every YouTube endpoint](https://getanyapi.com/api/youtube).", + "operationId": "youtube_channel_lives", "parameters": [ { "description": "Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.", @@ -196591,6 +201147,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -196607,7 +201172,7 @@ "content": { "application/json": { "example": { - "handle": "@mkbhd" + "handle": "@IShowSpeed" }, "schema": { "additionalProperties": false, @@ -196624,17 +201189,19 @@ } ], "example": { - "handle": "@mkbhd" + "handle": "@IShowSpeed" }, "properties": { "channelId": { - "description": "YouTube channel ID (UC...).", - "minLength": 1, + "description": "YouTube channel ID.", + "type": "string" + }, + "cursor": { + "description": "Continuation token from a previous response for pagination.", "type": "string" }, "handle": { - "description": "YouTube channel handle, with or without the leading @.", - "minLength": 1, + "description": "YouTube channel handle.", "type": "string" }, "preferLatencyUnderMs": { @@ -196643,7 +201210,7 @@ "type": "integer" } }, - "title": "YouTube channel contact email input", + "title": "YouTube Channel Live Streams input", "type": "object" } } @@ -196678,27 +201245,74 @@ "additionalProperties": false, "properties": { "data": { - "description": "The revealed contact details, or null when no address came back.", "oneOf": [ { "type": "null" }, { + "additionalProperties": false, "properties": { - "email": { - "description": "The business inquiry email the creator published on the channel's About tab, as YouTube reveals it behind the View email address button. This is the address YouTube gates behind a signed-in session, so it is often different from any address written into the channel description.", - "type": "string" + "lives": { + "description": "Populated whenever the provider has data for the entity.", + "items": { + "properties": { + "id": { + "description": "Populated whenever the provider has data for the entity.", + "type": "string", + "x-anyapi-must-populate": true + }, + "lengthText": { + "type": "string" + }, + "publishedTime": { + "description": "Populated whenever the provider has data for the entity.", + "type": "string", + "x-anyapi-must-populate": true + }, + "title": { + "description": "Populated whenever the provider has data for the entity.", + "type": "string", + "x-anyapi-must-populate": true + }, + "url": { + "description": "Populated whenever the provider has data for the entity.", + "type": "string", + "x-anyapi-must-populate": true + }, + "views": { + "type": "integer" + } + }, + "required": [ + "id", + "url", + "title", + "views", + "lengthText", + "publishedTime" + ], + "type": "object" + }, + "type": "array", + "x-anyapi-must-populate": true + }, + "nextCursor": { + "description": "Opaque cursor for the next page of live streams, or null when this lane has no more. Pass it back as cursor to continue.", + "type": [ + "string", + "null" + ] } }, "required": [ - "email" + "lives", + "nextCursor" ], "type": "object" } ] }, "found": { - "description": "True when a business inquiry email was revealed for the channel. False means no address came back, which covers three cases this upstream does not tell apart: the channel publishes no business email, the channel does not exist, or the reveal did not get past YouTube's CAPTCHA on this attempt. Treat false as no address on this call, not as proof the creator has none.", "type": "boolean" } }, @@ -196706,7 +201320,7 @@ "found", "data" ], - "title": "YouTube channel contact email output", + "title": "YouTube Channel Live Streams output", "type": "object" }, { @@ -196911,18 +201525,18 @@ }, {} ], - "summary": "YouTube Channel Contact Email", + "summary": "YouTube Channel Live Streams", "tags": [ "youtube" ], "x-mint": { - "href": "/api-reference/youtube/channel-contact" + "href": "/api-reference/youtube/channel-lives" }, "x-payment-info": { "price": { "currency": "USD", - "max": "0.071800", - "min": "0.071800", + "max": "0.003600", + "min": "0.002000", "mode": "dynamic" }, "protocols": [ @@ -196964,8 +201578,8 @@ }, "pricing": { "currency": "USD", - "max": "0.071800", - "min": "0.071800", + "max": "0.003600", + "min": "0.002000", "minimumUsd": "0.001000", "mode": "dynamic", "quoteBasis": "floor" @@ -196997,8 +201611,8 @@ }, "pricing": { "currency": "USD", - "max": "0.071800", - "min": "0.071800", + "max": "0.003600", + "min": "0.002000", "minimumUsd": null, "mode": "dynamic", "quoteBasis": "funded_ceiling" @@ -197024,10 +201638,10 @@ } } }, - "/v1/run/youtube.channel_lives": { + "/v1/run/youtube.channel_playlists": { "post": { - "description": "List a YouTube channel's live and past-live streams by handle or channel ID with cursor pagination (title, views, length, publish time).\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes are available in execution order. A failed attempt uses the next lane only when the request's payment authorizes that lane's price; the normalized schema stays the same.\n\n**Catalog:** [YouTube Channel Live Streams pricing and uptime](https://getanyapi.com/api/youtube/channel-lives) - live USD price, lane routing, and measured 30-day uptime. [Every YouTube endpoint](https://getanyapi.com/api/youtube).", - "operationId": "youtube_channel_lives", + "description": "List a YouTube channel's playlists by handle or channel ID with cursor pagination (title, video count, thumbnail).\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Payment outcome follows the selected rail's settlement policy.\n\n**Catalog:** [YouTube Channel Playlists pricing and uptime](https://getanyapi.com/api/youtube/channel-playlists) - live USD price, lane routing, and measured 30-day uptime. [Every YouTube endpoint](https://getanyapi.com/api/youtube).", + "operationId": "youtube_channel_playlists", "parameters": [ { "description": "Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.", @@ -197066,6 +201680,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -197082,7 +201705,7 @@ "content": { "application/json": { "example": { - "handle": "@IShowSpeed" + "handle": "@veritasium" }, "schema": { "additionalProperties": false, @@ -197099,7 +201722,7 @@ } ], "example": { - "handle": "@IShowSpeed" + "handle": "@veritasium" }, "properties": { "channelId": { @@ -197120,7 +201743,7 @@ "type": "integer" } }, - "title": "YouTube Channel Live Streams input", + "title": "YouTube Channel Playlists input", "type": "object" } } @@ -197162,7 +201785,14 @@ { "additionalProperties": false, "properties": { - "lives": { + "nextCursor": { + "description": "Opaque cursor for the next page of playlists, or null when this lane has no more. Pass it back as cursor to continue.", + "type": [ + "string", + "null" + ] + }, + "playlists": { "description": "Populated whenever the provider has data for the entity.", "items": { "properties": { @@ -197171,51 +201801,38 @@ "type": "string", "x-anyapi-must-populate": true }, - "lengthText": { - "type": "string" - }, - "publishedTime": { + "playlistUrl": { "description": "Populated whenever the provider has data for the entity.", "type": "string", "x-anyapi-must-populate": true }, - "title": { - "description": "Populated whenever the provider has data for the entity.", - "type": "string", - "x-anyapi-must-populate": true + "thumbnail": { + "type": "string" }, - "url": { + "title": { "description": "Populated whenever the provider has data for the entity.", "type": "string", "x-anyapi-must-populate": true }, - "views": { + "videoCount": { "type": "integer" } }, "required": [ "id", - "url", "title", - "views", - "lengthText", - "publishedTime" + "playlistUrl", + "videoCount", + "thumbnail" ], "type": "object" }, "type": "array", "x-anyapi-must-populate": true - }, - "nextCursor": { - "description": "Opaque cursor for the next page of live streams, or null when this lane has no more. Pass it back as cursor to continue.", - "type": [ - "string", - "null" - ] } }, "required": [ - "lives", + "playlists", "nextCursor" ], "type": "object" @@ -197230,7 +201847,7 @@ "found", "data" ], - "title": "YouTube Channel Live Streams output", + "title": "YouTube Channel Playlists output", "type": "object" }, { @@ -197435,19 +202052,18 @@ }, {} ], - "summary": "YouTube Channel Live Streams", + "summary": "YouTube Channel Playlists", "tags": [ "youtube" ], "x-mint": { - "href": "/api-reference/youtube/channel-lives" + "href": "/api-reference/youtube/channel-playlists" }, "x-payment-info": { "price": { + "amount": "0.002000", "currency": "USD", - "max": "0.003600", - "min": "0.002000", - "mode": "dynamic" + "mode": "fixed" }, "protocols": [ { @@ -197487,11 +202103,10 @@ ] }, "pricing": { + "amount": "0.002000", "currency": "USD", - "max": "0.003600", - "min": "0.002000", "minimumUsd": "0.001000", - "mode": "dynamic", + "mode": "fixed", "quoteBasis": "floor" }, "protocol": { @@ -197520,11 +202135,10 @@ ] }, "pricing": { + "amount": "0.002000", "currency": "USD", - "max": "0.003600", - "min": "0.002000", "minimumUsd": null, - "mode": "dynamic", + "mode": "fixed", "quoteBasis": "funded_ceiling" }, "protocol": { @@ -197548,10 +202162,10 @@ } } }, - "/v1/run/youtube.channel_playlists": { + "/v1/run/youtube.channel_shorts": { "post": { - "description": "List a YouTube channel's playlists by handle or channel ID with cursor pagination (title, video count, thumbnail).\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Payment outcome follows the selected rail's settlement policy.\n\n**Catalog:** [YouTube Channel Playlists pricing and uptime](https://getanyapi.com/api/youtube/channel-playlists) - live USD price, lane routing, and measured 30-day uptime. [Every YouTube endpoint](https://getanyapi.com/api/youtube).", - "operationId": "youtube_channel_playlists", + "description": "List a YouTube channel's Shorts by handle or channel ID with cursor pagination, views, and publish timestamps.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes are available in execution order. A failed attempt uses the next lane only when the request's payment authorizes that lane's price; the normalized schema stays the same.\n\n**Catalog:** [YouTube Channel Shorts pricing and uptime](https://getanyapi.com/api/youtube/channel-shorts) - live USD price, lane routing, and measured 30-day uptime. [Every YouTube endpoint](https://getanyapi.com/api/youtube).", + "operationId": "youtube_channel_shorts", "parameters": [ { "description": "Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.", @@ -197590,6 +202204,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -197606,7 +202229,8 @@ "content": { "application/json": { "example": { - "handle": "@veritasium" + "handle": "@zachking", + "sort": "latest" }, "schema": { "additionalProperties": false, @@ -197623,28 +202247,38 @@ } ], "example": { - "handle": "@veritasium" + "handle": "@zachking", + "sort": "latest" }, "properties": { "channelId": { - "description": "YouTube channel ID.", + "description": "YouTube channel ID beginning with UC.", "type": "string" }, "cursor": { - "description": "Continuation token from a previous response for pagination.", + "description": "Continuation token from a previous response.", "type": "string" }, "handle": { - "description": "YouTube channel handle.", + "description": "YouTube channel handle, including or omitting the leading @.", "type": "string" }, "preferLatencyUnderMs": { "description": "Optional; omit it and routing is unchanged, with the cheapest source serving. Prefer sources whose typical response time (median over the trailing 30 days, as published on this endpoint's lane health) is under this many milliseconds; among those, the cheapest serves. This can raise your price: when the cheapest source misses the target, a faster and dearer one serves, and you are quoted and charged its price. If no source is that fast the request is still served, by whichever source offers the best speed for its price - it is never refused for being slow. Sources we have not timed are tried last. This is a preference, not a guarantee: the median describes past requests and is not a ceiling on this one, and it excludes any wait this request itself asks for. On a paginated walk it applies to the first page only: later pages stay with the source that page chose, at the price it was quoted.", "minimum": 1, "type": "integer" + }, + "sort": { + "description": "Sort order for the Shorts feed. latest and newest are equivalent.", + "enum": [ + "latest", + "newest", + "popular" + ], + "type": "string" } }, - "title": "YouTube Channel Playlists input", + "title": "YouTube Channel Shorts input", "type": "object" } } @@ -197679,6 +202313,7 @@ "additionalProperties": false, "properties": { "data": { + "description": "The normalized Shorts page, or null when the channel was not found.", "oneOf": [ { "type": "null" @@ -197687,44 +202322,70 @@ "additionalProperties": false, "properties": { "nextCursor": { - "description": "Opaque cursor for the next page of playlists, or null when this lane has no more. Pass it back as cursor to continue.", + "description": "Opaque cursor for the next Shorts page, or null when no next page is available.", "type": [ "string", "null" ] }, - "playlists": { - "description": "Populated whenever the provider has data for the entity.", + "shorts": { + "description": "Short-form videos returned by the provider's dedicated YouTube Shorts endpoint. Populated whenever the provider has data for the entity.", "items": { "properties": { + "contentType": { + "description": "Explicit normalized provenance that this item came from a dedicated Shorts feed.", + "enum": [ + "short" + ], + "type": "string" + }, + "createdUtc": { + "description": "UTC epoch timestamp in seconds when supplied by the upstream response.", + "type": "number" + }, + "duration": { + "description": "Published duration when supplied by the upstream response.", + "type": "string" + }, "id": { - "description": "Populated whenever the provider has data for the entity.", + "description": "Unique YouTube video identifier. Populated whenever the provider has data for the entity.", "type": "string", "x-anyapi-must-populate": true }, - "playlistUrl": { - "description": "Populated whenever the provider has data for the entity.", + "likes": { + "description": "Public like count when supplied by the upstream response.", + "minimum": 0, + "type": "integer" + }, + "title": { + "description": "Public title or caption for the Short. Populated whenever the provider has data for the entity.", "type": "string", "x-anyapi-must-populate": true }, - "thumbnail": { - "type": "string" - }, - "title": { - "description": "Populated whenever the provider has data for the entity.", + "url": { + "description": "Public YouTube URL for the Short. Populated whenever the provider has data for the entity.", + "format": "uri", "type": "string", "x-anyapi-must-populate": true }, - "videoCount": { + "views": { + "description": "Public view count when supplied by the upstream response.", + "minimum": 0, "type": "integer" + }, + "viewsAvailable": { + "description": "Whether views is backed by a public count in the upstream response.", + "type": "boolean" } }, "required": [ "id", - "title", - "playlistUrl", - "videoCount", - "thumbnail" + "url", + "views", + "viewsAvailable", + "likes", + "duration", + "contentType" ], "type": "object" }, @@ -197733,7 +202394,7 @@ } }, "required": [ - "playlists", + "shorts", "nextCursor" ], "type": "object" @@ -197741,6 +202402,7 @@ ] }, "found": { + "description": "Whether the channel Shorts feed was found.", "type": "boolean" } }, @@ -197748,7 +202410,7 @@ "found", "data" ], - "title": "YouTube Channel Playlists output", + "title": "YouTube Channel Shorts output", "type": "object" }, { @@ -197953,18 +202615,19 @@ }, {} ], - "summary": "YouTube Channel Playlists", + "summary": "YouTube Channel Shorts", "tags": [ "youtube" ], "x-mint": { - "href": "/api-reference/youtube/channel-playlists" + "href": "/api-reference/youtube/channel-shorts" }, "x-payment-info": { "price": { - "amount": "0.002000", "currency": "USD", - "mode": "fixed" + "max": "0.003600", + "min": "0.002000", + "mode": "dynamic" }, "protocols": [ { @@ -198004,10 +202667,11 @@ ] }, "pricing": { - "amount": "0.002000", "currency": "USD", + "max": "0.003600", + "min": "0.002000", "minimumUsd": "0.001000", - "mode": "fixed", + "mode": "dynamic", "quoteBasis": "floor" }, "protocol": { @@ -198036,10 +202700,11 @@ ] }, "pricing": { - "amount": "0.002000", "currency": "USD", + "max": "0.003600", + "min": "0.002000", "minimumUsd": null, - "mode": "fixed", + "mode": "dynamic", "quoteBasis": "funded_ceiling" }, "protocol": { @@ -198063,10 +202728,10 @@ } } }, - "/v1/run/youtube.channel_shorts": { + "/v1/run/youtube.channel_videos": { "post": { - "description": "List a YouTube channel's Shorts by handle or channel ID with cursor pagination, views, and publish timestamps.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes are available in execution order. A failed attempt uses the next lane only when the request's payment authorizes that lane's price; the normalized schema stays the same.\n\n**Catalog:** [YouTube Channel Shorts pricing and uptime](https://getanyapi.com/api/youtube/channel-shorts) - live USD price, lane routing, and measured 30-day uptime. [Every YouTube endpoint](https://getanyapi.com/api/youtube).", - "operationId": "youtube_channel_shorts", + "description": "List a YouTube channel's videos by handle or channel ID with cursor pagination (title, views, length, publish time).\n\n**Price:** \\$0.90 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 3 independent lanes are available in execution order. A failed attempt uses the next lane only when the request's payment authorizes that lane's price; the normalized schema stays the same.\n\n**Catalog:** [YouTube Channel Videos pricing and uptime](https://getanyapi.com/api/youtube/channel-videos) - live USD price, lane routing, and measured 30-day uptime. [Every YouTube endpoint](https://getanyapi.com/api/youtube).", + "operationId": "youtube_channel_videos", "parameters": [ { "description": "Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.", @@ -198105,6 +202770,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -198121,8 +202795,7 @@ "content": { "application/json": { "example": { - "handle": "@zachking", - "sort": "latest" + "handle": "@mkbhd" }, "schema": { "additionalProperties": false, @@ -198139,20 +202812,19 @@ } ], "example": { - "handle": "@zachking", - "sort": "latest" + "handle": "@mkbhd" }, "properties": { "channelId": { - "description": "YouTube channel ID beginning with UC.", + "description": "YouTube channel ID.", "type": "string" }, "cursor": { - "description": "Continuation token from a previous response.", + "description": "Continuation token from a previous response for pagination.", "type": "string" }, "handle": { - "description": "YouTube channel handle, including or omitting the leading @.", + "description": "YouTube channel handle.", "type": "string" }, "preferLatencyUnderMs": { @@ -198161,16 +202833,15 @@ "type": "integer" }, "sort": { - "description": "Sort order for the Shorts feed. latest and newest are equivalent.", + "description": "Sort order.", "enum": [ "latest", - "newest", "popular" ], "type": "string" } }, - "title": "YouTube Channel Shorts input", + "title": "YouTube channel videos input", "type": "object" } } @@ -198205,7 +202876,6 @@ "additionalProperties": false, "properties": { "data": { - "description": "The normalized Shorts page, or null when the channel was not found.", "oneOf": [ { "type": "null" @@ -198214,60 +202884,41 @@ "additionalProperties": false, "properties": { "nextCursor": { - "description": "Opaque cursor for the next Shorts page, or null when no next page is available.", + "description": "Opaque cursor for the next page of videos, or null when this lane has no more. Pass it back as cursor to continue.", "type": [ "string", "null" ] }, - "shorts": { - "description": "Short-form videos returned by the provider's dedicated YouTube Shorts endpoint. Populated whenever the provider has data for the entity.", + "videos": { + "description": "Populated whenever the provider has data for the entity.", "items": { "properties": { - "contentType": { - "description": "Explicit normalized provenance that this item came from a dedicated Shorts feed.", - "enum": [ - "short" - ], - "type": "string" - }, - "createdUtc": { - "description": "UTC epoch timestamp in seconds when supplied by the upstream response.", - "type": "number" + "id": { + "description": "Populated whenever the provider has data for the entity.", + "type": "string", + "x-anyapi-must-populate": true }, - "duration": { - "description": "Published duration when supplied by the upstream response.", + "lengthText": { "type": "string" }, - "id": { - "description": "Unique YouTube video identifier. Populated whenever the provider has data for the entity.", + "publishedTime": { + "description": "Populated whenever the provider has data for the entity.", "type": "string", "x-anyapi-must-populate": true }, - "likes": { - "description": "Public like count when supplied by the upstream response.", - "minimum": 0, - "type": "integer" - }, "title": { - "description": "Public title or caption for the Short. Populated whenever the provider has data for the entity.", + "description": "Populated whenever the provider has data for the entity.", "type": "string", "x-anyapi-must-populate": true }, "url": { - "description": "Public YouTube URL for the Short. Populated whenever the provider has data for the entity.", - "format": "uri", + "description": "Populated whenever the provider has data for the entity.", "type": "string", "x-anyapi-must-populate": true }, "views": { - "description": "Public view count when supplied by the upstream response.", - "minimum": 0, "type": "integer" - }, - "viewsAvailable": { - "description": "Whether views is backed by a public count in the upstream response.", - "type": "boolean" } }, "required": [ @@ -198275,10 +202926,8 @@ "url", "title", "views", - "viewsAvailable", - "likes", - "duration", - "contentType" + "lengthText", + "publishedTime" ], "type": "object" }, @@ -198287,7 +202936,7 @@ } }, "required": [ - "shorts", + "videos", "nextCursor" ], "type": "object" @@ -198295,7 +202944,6 @@ ] }, "found": { - "description": "Whether the channel Shorts feed was found.", "type": "boolean" } }, @@ -198303,7 +202951,7 @@ "found", "data" ], - "title": "YouTube Channel Shorts output", + "title": "YouTube channel videos output", "type": "object" }, { @@ -198508,18 +203156,18 @@ }, {} ], - "summary": "YouTube Channel Shorts", + "summary": "YouTube Channel Videos", "tags": [ "youtube" ], "x-mint": { - "href": "/api-reference/youtube/channel-shorts" + "href": "/api-reference/youtube/channel-videos" }, "x-payment-info": { "price": { "currency": "USD", "max": "0.003600", - "min": "0.002000", + "min": "0.000900", "mode": "dynamic" }, "protocols": [ @@ -198562,7 +203210,7 @@ "pricing": { "currency": "USD", "max": "0.003600", - "min": "0.002000", + "min": "0.001000", "minimumUsd": "0.001000", "mode": "dynamic", "quoteBasis": "floor" @@ -198595,7 +203243,7 @@ "pricing": { "currency": "USD", "max": "0.003600", - "min": "0.002000", + "min": "0.000900", "minimumUsd": null, "mode": "dynamic", "quoteBasis": "funded_ceiling" @@ -198621,10 +203269,10 @@ } } }, - "/v1/run/youtube.channel_videos": { + "/v1/run/youtube.comment_replies": { "post": { - "description": "List a YouTube channel's videos by handle or channel ID with cursor pagination (title, views, length, publish time).\n\n**Price:** \\$0.90 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 3 independent lanes are available in execution order. A failed attempt uses the next lane only when the request's payment authorizes that lane's price; the normalized schema stays the same.\n\n**Catalog:** [YouTube Channel Videos pricing and uptime](https://getanyapi.com/api/youtube/channel-videos) - live USD price, lane routing, and measured 30-day uptime. [Every YouTube endpoint](https://getanyapi.com/api/youtube).", - "operationId": "youtube_channel_videos", + "description": "List replies to a YouTube comment using a continuation token with cursor pagination (text, author, likes, publish time).\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Payment outcome follows the selected rail's settlement policy.\n\n**Catalog:** [YouTube Comment Replies pricing and uptime](https://getanyapi.com/api/youtube/comment-replies) - live USD price, lane routing, and measured 30-day uptime. [Every YouTube endpoint](https://getanyapi.com/api/youtube).", + "operationId": "youtube_comment_replies", "parameters": [ { "description": "Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.", @@ -198663,6 +203311,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -198679,53 +203336,28 @@ "content": { "application/json": { "example": { - "handle": "@mkbhd" + "continuationToken": "Eg0SC19fZm1EajBaSjFRGAYygwEaUBIaVWd3aXRjRk9fdmtpM0x4LUNfZDRBYUFCQWciAggAKhhVQ1g2T1EzRGtjc2JZTkU2SDh1UVF1VkEyC19fZm1EajBaSjFRQABICoIBAggBQi9jb21tZW50LXJlcGxpZXMtaXRlbS1VZ3dpdGNGT192a2kzTHgtQ19kNEFhQUJBZw==" }, "schema": { "additionalProperties": false, - "anyOf": [ - { - "required": [ - "handle" - ] - }, - { - "required": [ - "channelId" - ] - } - ], "example": { - "handle": "@mkbhd" + "continuationToken": "Eg0SC19fZm1EajBaSjFRGAYygwEaUBIaVWd3aXRjRk9fdmtpM0x4LUNfZDRBYUFCQWciAggAKhhVQ1g2T1EzRGtjc2JZTkU2SDh1UVF1VkEyC19fZm1EajBaSjFRQABICoIBAggBQi9jb21tZW50LXJlcGxpZXMtaXRlbS1VZ3dpdGNGT192a2kzTHgtQ19kNEFhQUJBZw==" }, "properties": { - "channelId": { - "description": "YouTube channel ID.", - "type": "string" - }, - "cursor": { - "description": "Continuation token from a previous response for pagination.", - "type": "string" - }, - "handle": { - "description": "YouTube channel handle.", + "continuationToken": { + "description": "Replies continuation token from the comments endpoint, or the continuationToken from a previous replies response for further pagination.", "type": "string" }, "preferLatencyUnderMs": { "description": "Optional; omit it and routing is unchanged, with the cheapest source serving. Prefer sources whose typical response time (median over the trailing 30 days, as published on this endpoint's lane health) is under this many milliseconds; among those, the cheapest serves. This can raise your price: when the cheapest source misses the target, a faster and dearer one serves, and you are quoted and charged its price. If no source is that fast the request is still served, by whichever source offers the best speed for its price - it is never refused for being slow. Sources we have not timed are tried last. This is a preference, not a guarantee: the median describes past requests and is not a ceiling on this one, and it excludes any wait this request itself asks for. On a paginated walk it applies to the first page only: later pages stay with the source that page chose, at the price it was quoted.", "minimum": 1, "type": "integer" - }, - "sort": { - "description": "Sort order.", - "enum": [ - "latest", - "popular" - ], - "type": "string" } }, - "title": "YouTube channel videos input", + "required": [ + "continuationToken" + ], + "title": "YouTube Comment Replies input", "type": "object" } } @@ -198767,60 +203399,52 @@ { "additionalProperties": false, "properties": { - "nextCursor": { - "description": "Opaque cursor for the next page of videos, or null when this lane has no more. Pass it back as cursor to continue.", - "type": [ - "string", - "null" - ] - }, - "videos": { + "comments": { "description": "Populated whenever the provider has data for the entity.", "items": { "properties": { - "id": { + "authorName": { "description": "Populated whenever the provider has data for the entity.", "type": "string", "x-anyapi-must-populate": true }, - "lengthText": { - "type": "string" - }, - "publishedTime": { + "content": { "description": "Populated whenever the provider has data for the entity.", "type": "string", "x-anyapi-must-populate": true }, - "title": { + "id": { "description": "Populated whenever the provider has data for the entity.", "type": "string", "x-anyapi-must-populate": true }, - "url": { + "likes": { + "type": "integer" + }, + "publishedTime": { "description": "Populated whenever the provider has data for the entity.", "type": "string", "x-anyapi-must-populate": true - }, - "views": { - "type": "integer" } }, "required": [ "id", - "url", - "title", - "views", - "lengthText", + "content", + "authorName", + "likes", "publishedTime" ], "type": "object" }, "type": "array", "x-anyapi-must-populate": true + }, + "nextCursor": { + "type": "string" } }, "required": [ - "videos", + "comments", "nextCursor" ], "type": "object" @@ -198835,7 +203459,7 @@ "found", "data" ], - "title": "YouTube channel videos output", + "title": "YouTube Comment Replies output", "type": "object" }, { @@ -199040,19 +203664,18 @@ }, {} ], - "summary": "YouTube Channel Videos", + "summary": "YouTube Comment Replies", "tags": [ "youtube" ], "x-mint": { - "href": "/api-reference/youtube/channel-videos" + "href": "/api-reference/youtube/comment-replies" }, "x-payment-info": { "price": { + "amount": "0.002000", "currency": "USD", - "max": "0.003600", - "min": "0.000900", - "mode": "dynamic" + "mode": "fixed" }, "protocols": [ { @@ -199092,11 +203715,10 @@ ] }, "pricing": { + "amount": "0.002000", "currency": "USD", - "max": "0.003600", - "min": "0.001000", "minimumUsd": "0.001000", - "mode": "dynamic", + "mode": "fixed", "quoteBasis": "floor" }, "protocol": { @@ -199125,11 +203747,10 @@ ] }, "pricing": { + "amount": "0.002000", "currency": "USD", - "max": "0.003600", - "min": "0.000900", "minimumUsd": null, - "mode": "dynamic", + "mode": "fixed", "quoteBasis": "funded_ceiling" }, "protocol": { @@ -199153,10 +203774,10 @@ } } }, - "/v1/run/youtube.comment_replies": { + "/v1/run/youtube.community_post": { "post": { - "description": "List replies to a YouTube comment using a continuation token with cursor pagination (text, author, likes, publish time).\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Payment outcome follows the selected rail's settlement policy.\n\n**Catalog:** [YouTube Comment Replies pricing and uptime](https://getanyapi.com/api/youtube/comment-replies) - live USD price, lane routing, and measured 30-day uptime. [Every YouTube endpoint](https://getanyapi.com/api/youtube).", - "operationId": "youtube_comment_replies", + "description": "Fetch a single YouTube community post by URL (text, images, channel, publish time).\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes are available in execution order. A failed attempt uses the next lane only when the request's payment authorizes that lane's price; the normalized schema stays the same.\n\n**Catalog:** [YouTube Community Post pricing and uptime](https://getanyapi.com/api/youtube/community-post) - live USD price, lane routing, and measured 30-day uptime. [Every YouTube endpoint](https://getanyapi.com/api/youtube).", + "operationId": "youtube_community_post", "parameters": [ { "description": "Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.", @@ -199195,6 +203816,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -199211,28 +203841,28 @@ "content": { "application/json": { "example": { - "continuationToken": "Eg0SC19fZm1EajBaSjFRGAYygwEaUBIaVWd3aXRjRk9fdmtpM0x4LUNfZDRBYUFCQWciAggAKhhVQ1g2T1EzRGtjc2JZTkU2SDh1UVF1VkEyC19fZm1EajBaSjFRQABICoIBAggBQi9jb21tZW50LXJlcGxpZXMtaXRlbS1VZ3dpdGNGT192a2kzTHgtQ19kNEFhQUJBZw==" + "url": "https://www.youtube.com/post/Ugkx1LonSRBBUqASv-J8j9_FesxwlMAhT3_e" }, "schema": { "additionalProperties": false, "example": { - "continuationToken": "Eg0SC19fZm1EajBaSjFRGAYygwEaUBIaVWd3aXRjRk9fdmtpM0x4LUNfZDRBYUFCQWciAggAKhhVQ1g2T1EzRGtjc2JZTkU2SDh1UVF1VkEyC19fZm1EajBaSjFRQABICoIBAggBQi9jb21tZW50LXJlcGxpZXMtaXRlbS1VZ3dpdGNGT192a2kzTHgtQ19kNEFhQUJBZw==" + "url": "https://www.youtube.com/post/Ugkx1LonSRBBUqASv-J8j9_FesxwlMAhT3_e" }, "properties": { - "continuationToken": { - "description": "Replies continuation token from the comments endpoint, or the continuationToken from a previous replies response for further pagination.", - "type": "string" - }, "preferLatencyUnderMs": { "description": "Optional; omit it and routing is unchanged, with the cheapest source serving. Prefer sources whose typical response time (median over the trailing 30 days, as published on this endpoint's lane health) is under this many milliseconds; among those, the cheapest serves. This can raise your price: when the cheapest source misses the target, a faster and dearer one serves, and you are quoted and charged its price. If no source is that fast the request is still served, by whichever source offers the best speed for its price - it is never refused for being slow. Sources we have not timed are tried last. This is a preference, not a guarantee: the median describes past requests and is not a ceiling on this one, and it excludes any wait this request itself asks for. On a paginated walk it applies to the first page only: later pages stay with the source that page chose, at the price it was quoted.", "minimum": 1, "type": "integer" + }, + "url": { + "description": "URL of the YouTube community post.", + "type": "string" } }, "required": [ - "continuationToken" + "url" ], - "title": "YouTube Comment Replies input", + "title": "YouTube Community Post input", "type": "object" } } @@ -199272,55 +203902,39 @@ "type": "null" }, { - "additionalProperties": false, "properties": { - "comments": { + "channelHandle": { "description": "Populated whenever the provider has data for the entity.", - "items": { - "properties": { - "authorName": { - "description": "Populated whenever the provider has data for the entity.", - "type": "string", - "x-anyapi-must-populate": true - }, - "content": { - "description": "Populated whenever the provider has data for the entity.", - "type": "string", - "x-anyapi-must-populate": true - }, - "id": { - "description": "Populated whenever the provider has data for the entity.", - "type": "string", - "x-anyapi-must-populate": true - }, - "likes": { - "type": "integer" - }, - "publishedTime": { - "description": "Populated whenever the provider has data for the entity.", - "type": "string", - "x-anyapi-must-populate": true - } - }, - "required": [ - "id", - "content", - "authorName", - "likes", - "publishedTime" - ], - "type": "object" - }, - "type": "array", + "type": "string", "x-anyapi-must-populate": true }, - "nextCursor": { - "type": "string" + "channelTitle": { + "description": "Populated whenever the provider has data for the entity.", + "type": "string", + "x-anyapi-must-populate": true + }, + "content": { + "description": "Populated whenever the provider has data for the entity.", + "type": "string", + "x-anyapi-must-populate": true + }, + "id": { + "description": "Populated whenever the provider has data for the entity.", + "type": "string", + "x-anyapi-must-populate": true + }, + "publishedTime": { + "description": "Populated whenever the provider has data for the entity.", + "type": "string", + "x-anyapi-must-populate": true } }, "required": [ - "comments", - "nextCursor" + "id", + "content", + "publishedTime", + "channelTitle", + "channelHandle" ], "type": "object" } @@ -199334,7 +203948,7 @@ "found", "data" ], - "title": "YouTube Comment Replies output", + "title": "YouTube Community Post output", "type": "object" }, { @@ -199539,18 +204153,19 @@ }, {} ], - "summary": "YouTube Comment Replies", + "summary": "YouTube Community Post", "tags": [ "youtube" ], "x-mint": { - "href": "/api-reference/youtube/comment-replies" + "href": "/api-reference/youtube/community-post" }, "x-payment-info": { "price": { - "amount": "0.002000", "currency": "USD", - "mode": "fixed" + "max": "0.003600", + "min": "0.002000", + "mode": "dynamic" }, "protocols": [ { @@ -199590,10 +204205,11 @@ ] }, "pricing": { - "amount": "0.002000", "currency": "USD", + "max": "0.003600", + "min": "0.002000", "minimumUsd": "0.001000", - "mode": "fixed", + "mode": "dynamic", "quoteBasis": "floor" }, "protocol": { @@ -199622,10 +204238,11 @@ ] }, "pricing": { - "amount": "0.002000", "currency": "USD", + "max": "0.003600", + "min": "0.002000", "minimumUsd": null, - "mode": "fixed", + "mode": "dynamic", "quoteBasis": "funded_ceiling" }, "protocol": { @@ -199649,10 +204266,10 @@ } } }, - "/v1/run/youtube.community_post": { + "/v1/run/youtube.playlist": { "post": { - "description": "Fetch a single YouTube community post by URL (text, images, channel, publish time).\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes are available in execution order. A failed attempt uses the next lane only when the request's payment authorizes that lane's price; the normalized schema stays the same.\n\n**Catalog:** [YouTube Community Post pricing and uptime](https://getanyapi.com/api/youtube/community-post) - live USD price, lane routing, and measured 30-day uptime. [Every YouTube endpoint](https://getanyapi.com/api/youtube).", - "operationId": "youtube_community_post", + "description": "List every video in a YouTube playlist (title, length, and channel per video plus playlist owner and totals).\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Payment outcome follows the selected rail's settlement policy.\n\n**Catalog:** [YouTube Playlist pricing and uptime](https://getanyapi.com/api/youtube/playlist) - live USD price, lane routing, and measured 30-day uptime. [Every YouTube endpoint](https://getanyapi.com/api/youtube).", + "operationId": "youtube_playlist", "parameters": [ { "description": "Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.", @@ -199691,6 +204308,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -199707,28 +204333,28 @@ "content": { "application/json": { "example": { - "url": "https://www.youtube.com/post/Ugkx1LonSRBBUqASv-J8j9_FesxwlMAhT3_e" + "playlistId": "PLMC9KNkIncKtPzgY-5rmhvj7fax8fdxoj" }, "schema": { "additionalProperties": false, "example": { - "url": "https://www.youtube.com/post/Ugkx1LonSRBBUqASv-J8j9_FesxwlMAhT3_e" + "playlistId": "PLMC9KNkIncKtPzgY-5rmhvj7fax8fdxoj" }, "properties": { + "playlistId": { + "description": "The playlist ID: the \"list\" parameter in a playlist URL (e.g. \"PLu0W_9lII9ahIappRPN0MCAgtOu3lQjQi\").", + "type": "string" + }, "preferLatencyUnderMs": { "description": "Optional; omit it and routing is unchanged, with the cheapest source serving. Prefer sources whose typical response time (median over the trailing 30 days, as published on this endpoint's lane health) is under this many milliseconds; among those, the cheapest serves. This can raise your price: when the cheapest source misses the target, a faster and dearer one serves, and you are quoted and charged its price. If no source is that fast the request is still served, by whichever source offers the best speed for its price - it is never refused for being slow. Sources we have not timed are tried last. This is a preference, not a guarantee: the median describes past requests and is not a ceiling on this one, and it excludes any wait this request itself asks for. On a paginated walk it applies to the first page only: later pages stay with the source that page chose, at the price it was quoted.", "minimum": 1, "type": "integer" - }, - "url": { - "description": "URL of the YouTube community post.", - "type": "string" } }, "required": [ - "url" + "playlistId" ], - "title": "YouTube Community Post input", + "title": "YouTube playlist input", "type": "object" } } @@ -199768,39 +204394,77 @@ "type": "null" }, { + "additionalProperties": false, "properties": { - "channelHandle": { - "description": "Populated whenever the provider has data for the entity.", - "type": "string", - "x-anyapi-must-populate": true - }, - "channelTitle": { + "owner": { "description": "Populated whenever the provider has data for the entity.", "type": "string", "x-anyapi-must-populate": true }, - "content": { + "title": { "description": "Populated whenever the provider has data for the entity.", "type": "string", "x-anyapi-must-populate": true }, - "id": { - "description": "Populated whenever the provider has data for the entity.", - "type": "string", - "x-anyapi-must-populate": true + "totalVideos": { + "type": "integer" }, - "publishedTime": { + "videos": { "description": "Populated whenever the provider has data for the entity.", - "type": "string", + "items": { + "properties": { + "channel": { + "description": "Populated whenever the provider has data for the entity.", + "type": "string", + "x-anyapi-must-populate": true + }, + "id": { + "description": "Populated whenever the provider has data for the entity.", + "type": "string", + "x-anyapi-must-populate": true + }, + "lengthSeconds": { + "type": "integer" + }, + "lengthText": { + "description": "Populated whenever the provider has data for the entity.", + "type": "string", + "x-anyapi-must-populate": true + }, + "thumbnail": { + "description": "Populated whenever the provider has data for the entity.", + "type": "string", + "x-anyapi-must-populate": true + }, + "title": { + "type": "string" + }, + "url": { + "description": "Populated whenever the provider has data for the entity.", + "type": "string", + "x-anyapi-must-populate": true + } + }, + "required": [ + "id", + "title", + "url", + "thumbnail", + "lengthText", + "lengthSeconds", + "channel" + ], + "type": "object" + }, + "type": "array", "x-anyapi-must-populate": true } }, "required": [ - "id", - "content", - "publishedTime", - "channelTitle", - "channelHandle" + "title", + "owner", + "totalVideos", + "videos" ], "type": "object" } @@ -199814,7 +204478,7 @@ "found", "data" ], - "title": "YouTube Community Post output", + "title": "YouTube playlist output", "type": "object" }, { @@ -200019,19 +204683,18 @@ }, {} ], - "summary": "YouTube Community Post", + "summary": "YouTube Playlist", "tags": [ "youtube" ], "x-mint": { - "href": "/api-reference/youtube/community-post" + "href": "/api-reference/youtube/playlist" }, "x-payment-info": { "price": { + "amount": "0.002000", "currency": "USD", - "max": "0.003600", - "min": "0.002000", - "mode": "dynamic" + "mode": "fixed" }, "protocols": [ { @@ -200071,11 +204734,10 @@ ] }, "pricing": { + "amount": "0.002000", "currency": "USD", - "max": "0.003600", - "min": "0.002000", "minimumUsd": "0.001000", - "mode": "dynamic", + "mode": "fixed", "quoteBasis": "floor" }, "protocol": { @@ -200104,11 +204766,10 @@ ] }, "pricing": { + "amount": "0.002000", "currency": "USD", - "max": "0.003600", - "min": "0.002000", "minimumUsd": null, - "mode": "dynamic", + "mode": "fixed", "quoteBasis": "funded_ceiling" }, "protocol": { @@ -200132,10 +204793,10 @@ } } }, - "/v1/run/youtube.playlist": { + "/v1/run/youtube.search": { "post": { - "description": "List every video in a YouTube playlist (title, length, and channel per video plus playlist owner and totals).\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Payment outcome follows the selected rail's settlement policy.\n\n**Catalog:** [YouTube Playlist pricing and uptime](https://getanyapi.com/api/youtube/playlist) - live USD price, lane routing, and measured 30-day uptime. [Every YouTube endpoint](https://getanyapi.com/api/youtube).", - "operationId": "youtube_playlist", + "description": "Search YouTube and get matching videos (title, channel, views, length, publish time) as normalized JSON.\n\n**Price:** \\$0.80 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 4 independent lanes are available in execution order. A failed attempt uses the next lane only when the request's payment authorizes that lane's price; the normalized schema stays the same.\n\n**Catalog:** [YouTube Search pricing and uptime](https://getanyapi.com/api/youtube/search) - live USD price, lane routing, and measured 30-day uptime. [Every YouTube endpoint](https://getanyapi.com/api/youtube).", + "operationId": "youtube_search", "parameters": [ { "description": "Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.", @@ -200174,6 +204835,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -200190,28 +204860,55 @@ "content": { "application/json": { "example": { - "playlistId": "PLMC9KNkIncKtPzgY-5rmhvj7fax8fdxoj" + "query": "how to cook rice" }, "schema": { "additionalProperties": false, "example": { - "playlistId": "PLMC9KNkIncKtPzgY-5rmhvj7fax8fdxoj" + "query": "how to cook rice" }, "properties": { - "playlistId": { - "description": "The playlist ID: the \"list\" parameter in a playlist URL (e.g. \"PLu0W_9lII9ahIappRPN0MCAgtOu3lQjQi\").", + "cursor": { + "description": "Continuation token from a previous response for pagination.", "type": "string" }, "preferLatencyUnderMs": { "description": "Optional; omit it and routing is unchanged, with the cheapest source serving. Prefer sources whose typical response time (median over the trailing 30 days, as published on this endpoint's lane health) is under this many milliseconds; among those, the cheapest serves. This can raise your price: when the cheapest source misses the target, a faster and dearer one serves, and you are quoted and charged its price. If no source is that fast the request is still served, by whichever source offers the best speed for its price - it is never refused for being slow. Sources we have not timed are tried last. This is a preference, not a guarantee: the median describes past requests and is not a ceiling on this one, and it excludes any wait this request itself asks for. On a paginated walk it applies to the first page only: later pages stay with the source that page chose, at the price it was quoted.", "minimum": 1, "type": "integer" + }, + "query": { + "description": "The YouTube search query.", + "type": "string" + }, + "requireCursor": { + "description": "Set true if you intend to page through results. The cheapest source for this search cannot return a nextCursor, so by default a single call may come back with no way to continue; setting this routes to a source that can page, at a higher price per request.", + "type": "boolean" + }, + "sortBy": { + "default": "relevance", + "description": "Sort order: \"relevance\" (default) or \"popular\" (most-viewed).", + "enum": [ + "relevance", + "popular" + ], + "type": "string" + }, + "uploadDate": { + "description": "Filter by upload recency. Omit for any time.", + "enum": [ + "today", + "this_week", + "this_month", + "this_year" + ], + "type": "string" } }, "required": [ - "playlistId" + "query" ], - "title": "YouTube playlist input", + "title": "YouTube search input", "type": "object" } } @@ -200253,18 +204950,12 @@ { "additionalProperties": false, "properties": { - "owner": { - "description": "Populated whenever the provider has data for the entity.", - "type": "string", - "x-anyapi-must-populate": true - }, - "title": { - "description": "Populated whenever the provider has data for the entity.", - "type": "string", - "x-anyapi-must-populate": true - }, - "totalVideos": { - "type": "integer" + "nextCursor": { + "description": "Opaque cursor for the next page of results, or null when this lane has no more. Pass it back as cursor to continue.", + "type": [ + "string", + "null" + ] }, "videos": { "description": "Populated whenever the provider has data for the entity.", @@ -200280,36 +204971,36 @@ "type": "string", "x-anyapi-must-populate": true }, - "lengthSeconds": { - "type": "integer" - }, "lengthText": { + "type": "string" + }, + "publishedTime": { "description": "Populated whenever the provider has data for the entity.", "type": "string", "x-anyapi-must-populate": true }, - "thumbnail": { + "title": { "description": "Populated whenever the provider has data for the entity.", "type": "string", "x-anyapi-must-populate": true }, - "title": { - "type": "string" - }, "url": { "description": "Populated whenever the provider has data for the entity.", "type": "string", "x-anyapi-must-populate": true + }, + "views": { + "type": "integer" } }, "required": [ "id", - "title", "url", - "thumbnail", + "title", + "channel", + "views", "lengthText", - "lengthSeconds", - "channel" + "publishedTime" ], "type": "object" }, @@ -200318,9 +205009,6 @@ } }, "required": [ - "title", - "owner", - "totalVideos", "videos" ], "type": "object" @@ -200335,7 +205023,7 @@ "found", "data" ], - "title": "YouTube playlist output", + "title": "YouTube search output", "type": "object" }, { @@ -200540,18 +205228,19 @@ }, {} ], - "summary": "YouTube Playlist", + "summary": "YouTube Search", "tags": [ "youtube" ], "x-mint": { - "href": "/api-reference/youtube/playlist" + "href": "/api-reference/youtube/search" }, "x-payment-info": { "price": { - "amount": "0.002000", "currency": "USD", - "mode": "fixed" + "max": "0.003600", + "min": "0.000800", + "mode": "dynamic" }, "protocols": [ { @@ -200591,10 +205280,11 @@ ] }, "pricing": { - "amount": "0.002000", "currency": "USD", + "max": "0.003600", + "min": "0.001000", "minimumUsd": "0.001000", - "mode": "fixed", + "mode": "dynamic", "quoteBasis": "floor" }, "protocol": { @@ -200623,10 +205313,11 @@ ] }, "pricing": { - "amount": "0.002000", "currency": "USD", + "max": "0.003600", + "min": "0.000800", "minimumUsd": null, - "mode": "fixed", + "mode": "dynamic", "quoteBasis": "funded_ceiling" }, "protocol": { @@ -200650,10 +205341,10 @@ } } }, - "/v1/run/youtube.search": { + "/v1/run/youtube.search_hashtag": { "post": { - "description": "Search YouTube and get matching videos (title, channel, views, length, publish time) as normalized JSON.\n\n**Price:** \\$0.80 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 4 independent lanes are available in execution order. A failed attempt uses the next lane only when the request's payment authorizes that lane's price; the normalized schema stays the same.\n\n**Catalog:** [YouTube Search pricing and uptime](https://getanyapi.com/api/youtube/search) - live USD price, lane routing, and measured 30-day uptime. [Every YouTube endpoint](https://getanyapi.com/api/youtube).", - "operationId": "youtube_search", + "description": "Search YouTube videos by hashtag with cursor pagination (title, channel, views, length, publish time).\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Payment outcome follows the selected rail's settlement policy.\n\n**Catalog:** [YouTube Hashtag Search pricing and uptime](https://getanyapi.com/api/youtube/search-hashtag) - live USD price, lane routing, and measured 30-day uptime. [Every YouTube endpoint](https://getanyapi.com/api/youtube).", + "operationId": "youtube_search_hashtag", "parameters": [ { "description": "Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.", @@ -200692,6 +205383,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -200708,55 +205408,39 @@ "content": { "application/json": { "example": { - "query": "how to cook rice" + "hashtag": "funny" }, "schema": { "additionalProperties": false, "example": { - "query": "how to cook rice" + "hashtag": "funny" }, "properties": { "cursor": { "description": "Continuation token from a previous response for pagination.", "type": "string" }, + "hashtag": { + "description": "Hashtag to search for (without the leading #).", + "type": "string" + }, "preferLatencyUnderMs": { "description": "Optional; omit it and routing is unchanged, with the cheapest source serving. Prefer sources whose typical response time (median over the trailing 30 days, as published on this endpoint's lane health) is under this many milliseconds; among those, the cheapest serves. This can raise your price: when the cheapest source misses the target, a faster and dearer one serves, and you are quoted and charged its price. If no source is that fast the request is still served, by whichever source offers the best speed for its price - it is never refused for being slow. Sources we have not timed are tried last. This is a preference, not a guarantee: the median describes past requests and is not a ceiling on this one, and it excludes any wait this request itself asks for. On a paginated walk it applies to the first page only: later pages stay with the source that page chose, at the price it was quoted.", "minimum": 1, "type": "integer" }, - "query": { - "description": "The YouTube search query.", - "type": "string" - }, - "requireCursor": { - "description": "Set true if you intend to page through results. The cheapest source for this search cannot return a nextCursor, so by default a single call may come back with no way to continue; setting this routes to a source that can page, at a higher price per request.", - "type": "boolean" - }, - "sortBy": { - "default": "relevance", - "description": "Sort order: \"relevance\" (default) or \"popular\" (most-viewed).", - "enum": [ - "relevance", - "popular" - ], - "type": "string" - }, - "uploadDate": { - "description": "Filter by upload recency. Omit for any time.", + "type": { + "description": "Content filter. Only \"all\" is served: no source we buy returns a Shorts row with the channel and publish time this endpoint requires.", "enum": [ - "today", - "this_week", - "this_month", - "this_year" + "all" ], "type": "string" } }, "required": [ - "query" + "hashtag" ], - "title": "YouTube search input", + "title": "YouTube Hashtag Search input", "type": "object" } } @@ -200799,7 +205483,7 @@ "additionalProperties": false, "properties": { "nextCursor": { - "description": "Opaque cursor for the next page of results, or null when this lane has no more. Pass it back as cursor to continue.", + "description": "Opaque cursor for the next page of videos, or null when this lane has no more. Pass it back as cursor to continue.", "type": [ "string", "null" @@ -200809,7 +205493,7 @@ "description": "Populated whenever the provider has data for the entity.", "items": { "properties": { - "channel": { + "channelTitle": { "description": "Populated whenever the provider has data for the entity.", "type": "string", "x-anyapi-must-populate": true @@ -200845,7 +205529,7 @@ "id", "url", "title", - "channel", + "channelTitle", "views", "lengthText", "publishedTime" @@ -200857,7 +205541,8 @@ } }, "required": [ - "videos" + "videos", + "nextCursor" ], "type": "object" } @@ -200871,7 +205556,7 @@ "found", "data" ], - "title": "YouTube search output", + "title": "YouTube Hashtag Search output", "type": "object" }, { @@ -201076,19 +205761,18 @@ }, {} ], - "summary": "YouTube Search", + "summary": "YouTube Hashtag Search", "tags": [ "youtube" ], "x-mint": { - "href": "/api-reference/youtube/search" + "href": "/api-reference/youtube/search-hashtag" }, "x-payment-info": { "price": { + "amount": "0.002000", "currency": "USD", - "max": "0.003600", - "min": "0.000800", - "mode": "dynamic" + "mode": "fixed" }, "protocols": [ { @@ -201128,11 +205812,10 @@ ] }, "pricing": { + "amount": "0.002000", "currency": "USD", - "max": "0.003600", - "min": "0.001000", "minimumUsd": "0.001000", - "mode": "dynamic", + "mode": "fixed", "quoteBasis": "floor" }, "protocol": { @@ -201161,11 +205844,10 @@ ] }, "pricing": { + "amount": "0.002000", "currency": "USD", - "max": "0.003600", - "min": "0.000800", "minimumUsd": null, - "mode": "dynamic", + "mode": "fixed", "quoteBasis": "funded_ceiling" }, "protocol": { @@ -201189,10 +205871,10 @@ } } }, - "/v1/run/youtube.search_hashtag": { + "/v1/run/youtube.search_shorts": { "post": { - "description": "Search YouTube videos by hashtag with cursor pagination (title, channel, views, length, publish time).\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes are available in execution order. A failed attempt uses the next lane only when the request's payment authorizes that lane's price; the normalized schema stays the same.\n\n**Catalog:** [YouTube Hashtag Search pricing and uptime](https://getanyapi.com/api/youtube/search-hashtag) - live USD price, lane routing, and measured 30-day uptime. [Every YouTube endpoint](https://getanyapi.com/api/youtube).", - "operationId": "youtube_search_hashtag", + "description": "Search YouTube Shorts by keyword and get matching Shorts (title, views, URL) with cursor pagination as normalized JSON.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Payment outcome follows the selected rail's settlement policy.\n\n**Catalog:** [YouTube Shorts Search pricing and uptime](https://getanyapi.com/api/youtube/search-shorts) - live USD price, lane routing, and measured 30-day uptime. [Every YouTube endpoint](https://getanyapi.com/api/youtube).", + "operationId": "youtube_search_shorts", "parameters": [ { "description": "Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.", @@ -201231,6 +205913,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -201247,40 +205938,51 @@ "content": { "application/json": { "example": { - "hashtag": "funny" + "query": "cats" }, "schema": { "additionalProperties": false, "example": { - "hashtag": "funny" + "query": "cats" }, "properties": { "cursor": { "description": "Continuation token from a previous response for pagination.", "type": "string" }, - "hashtag": { - "description": "Hashtag to search for (without the leading #).", - "type": "string" - }, "preferLatencyUnderMs": { "description": "Optional; omit it and routing is unchanged, with the cheapest source serving. Prefer sources whose typical response time (median over the trailing 30 days, as published on this endpoint's lane health) is under this many milliseconds; among those, the cheapest serves. This can raise your price: when the cheapest source misses the target, a faster and dearer one serves, and you are quoted and charged its price. If no source is that fast the request is still served, by whichever source offers the best speed for its price - it is never refused for being slow. Sources we have not timed are tried last. This is a preference, not a guarantee: the median describes past requests and is not a ceiling on this one, and it excludes any wait this request itself asks for. On a paginated walk it applies to the first page only: later pages stay with the source that page chose, at the price it was quoted.", "minimum": 1, "type": "integer" }, - "type": { - "description": "Content filter.", + "query": { + "description": "The keyword to search Shorts for.", + "type": "string" + }, + "sortBy": { + "default": "relevance", + "description": "Sort order: \"relevance\" (default) or \"popular\" (most-viewed).", "enum": [ - "all", - "shorts" + "relevance", + "popular" + ], + "type": "string" + }, + "uploadDate": { + "description": "Filter by upload recency. Omit for any time.", + "enum": [ + "today", + "this_week", + "this_month", + "this_year" ], "type": "string" } }, "required": [ - "hashtag" + "query" ], - "title": "YouTube Hashtag Search input", + "title": "YouTube Shorts Search input", "type": "object" } } @@ -201323,56 +206025,51 @@ "additionalProperties": false, "properties": { "nextCursor": { - "description": "Opaque cursor for the next page of videos, or null when this lane has no more. Pass it back as cursor to continue.", + "description": "Opaque cursor for the next page of results, or null when there are no more. Pass it back as cursor to continue.", "type": [ "string", "null" ] }, - "videos": { + "shorts": { "description": "Populated whenever the provider has data for the entity.", "items": { "properties": { - "channelTitle": { - "description": "Populated whenever the provider has data for the entity.", - "type": "string", - "x-anyapi-must-populate": true - }, - "id": { - "description": "Populated whenever the provider has data for the entity.", - "type": "string", - "x-anyapi-must-populate": true - }, - "lengthText": { + "contentType": { + "description": "Always \"short\": every row here comes from YouTube's Shorts shelf.", "type": "string" }, - "publishedTime": { - "description": "Populated whenever the provider has data for the entity.", + "id": { + "description": "YouTube video id of the Short. Populated whenever the provider has data for the entity.", "type": "string", "x-anyapi-must-populate": true }, "title": { - "description": "Populated whenever the provider has data for the entity.", + "description": "Title of the Short. Populated whenever the provider has data for the entity.", "type": "string", "x-anyapi-must-populate": true }, "url": { - "description": "Populated whenever the provider has data for the entity.", + "description": "Watch URL for the Short. Populated whenever the provider has data for the entity.", "type": "string", "x-anyapi-must-populate": true }, "views": { + "description": "View count, or 0 when the source did not publish one. Read viewsAvailable before trusting a 0.", "type": "integer" + }, + "viewsAvailable": { + "description": "False when the source published no view count, so views is a placeholder rather than a measured zero.", + "type": "boolean" } }, "required": [ "id", "url", "title", - "channelTitle", "views", - "lengthText", - "publishedTime" + "viewsAvailable", + "contentType" ], "type": "object" }, @@ -201381,8 +206078,7 @@ } }, "required": [ - "videos", - "nextCursor" + "shorts" ], "type": "object" } @@ -201396,7 +206092,7 @@ "found", "data" ], - "title": "YouTube Hashtag Search output", + "title": "YouTube Shorts Search output", "type": "object" }, { @@ -201601,19 +206297,18 @@ }, {} ], - "summary": "YouTube Hashtag Search", + "summary": "YouTube Shorts Search", "tags": [ "youtube" ], "x-mint": { - "href": "/api-reference/youtube/search-hashtag" + "href": "/api-reference/youtube/search-shorts" }, "x-payment-info": { "price": { + "amount": "0.002000", "currency": "USD", - "max": "0.003600", - "min": "0.002000", - "mode": "dynamic" + "mode": "fixed" }, "protocols": [ { @@ -201653,11 +206348,10 @@ ] }, "pricing": { + "amount": "0.002000", "currency": "USD", - "max": "0.003600", - "min": "0.002000", "minimumUsd": "0.001000", - "mode": "dynamic", + "mode": "fixed", "quoteBasis": "floor" }, "protocol": { @@ -201686,11 +206380,10 @@ ] }, "pricing": { + "amount": "0.002000", "currency": "USD", - "max": "0.003600", - "min": "0.002000", "minimumUsd": null, - "mode": "dynamic", + "mode": "fixed", "quoteBasis": "funded_ceiling" }, "protocol": { @@ -201756,6 +206449,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -202207,7 +206909,7 @@ }, "/v1/run/youtube.video": { "post": { - "description": "Fetch a YouTube video's metadata (title, channel, views, likes, duration, publish date) by URL or ID.\n\n**Price:** \\$1.25 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes are available in execution order. A failed attempt uses the next lane only when the request's payment authorizes that lane's price; the normalized schema stays the same.\n\n**Catalog:** [YouTube Video pricing and uptime](https://getanyapi.com/api/youtube/video) - live USD price, lane routing, and measured 30-day uptime. [Every YouTube endpoint](https://getanyapi.com/api/youtube).", + "description": "Fetch a YouTube video or Short's metadata (title, channel, views, likes, duration, publish date) by URL or ID.\n\n**Price:** \\$1.25 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes are available in execution order. A failed attempt uses the next lane only when the request's payment authorizes that lane's price; the normalized schema stays the same.\n\n**Catalog:** [YouTube Video pricing and uptime](https://getanyapi.com/api/youtube/video) - live USD price, lane routing, and measured 30-day uptime. [Every YouTube endpoint](https://getanyapi.com/api/youtube).", "operationId": "youtube_video", "parameters": [ { @@ -202247,6 +206949,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -202284,7 +206995,7 @@ }, "properties": { "id": { - "description": "YouTube video ID.", + "description": "YouTube video ID. A Short uses the same ID as any other video.", "type": "string" }, "preferLatencyUnderMs": { @@ -202293,7 +207004,7 @@ "type": "integer" }, "url": { - "description": "Full YouTube video URL.", + "description": "Full YouTube video URL. Shorts (youtube.com/shorts/...), youtu.be, live, and embed URLs all work.", "type": "string" } }, @@ -202719,7 +207430,7 @@ }, "/v1/run/youtube.video_comments": { "post": { - "description": "List the comments on a YouTube video by URL with cursor pagination (text, author, likes, reply count).\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes are available in execution order. A failed attempt uses the next lane only when the request's payment authorizes that lane's price; the normalized schema stays the same.\n\n**Catalog:** [YouTube Video Comments pricing and uptime](https://getanyapi.com/api/youtube/video-comments) - live USD price, lane routing, and measured 30-day uptime. [Every YouTube endpoint](https://getanyapi.com/api/youtube).", + "description": "List the comments on a YouTube video or Short by URL with cursor pagination (text, author, likes, reply count).\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes are available in execution order. A failed attempt uses the next lane only when the request's payment authorizes that lane's price; the normalized schema stays the same.\n\n**Catalog:** [YouTube Video Comments pricing and uptime](https://getanyapi.com/api/youtube/video-comments) - live USD price, lane routing, and measured 30-day uptime. [Every YouTube endpoint](https://getanyapi.com/api/youtube).", "operationId": "youtube_video_comments", "parameters": [ { @@ -202759,6 +207470,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -202797,7 +207517,7 @@ "type": "integer" }, "url": { - "description": "Full YouTube video URL.", + "description": "Full YouTube video URL. Shorts (youtube.com/shorts/...) and youtu.be URLs also work.", "type": "string" } }, @@ -203274,6 +207994,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -203734,7 +208463,7 @@ }, "/v1/run/youtube.video_transcript": { "post": { - "description": "Fetch the transcript/captions of a YouTube video by URL or ID.\n\n**Price:** \\$1.25 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes are available in execution order. A failed attempt uses the next lane only when the request's payment authorizes that lane's price; the normalized schema stays the same.\n\n**Catalog:** [YouTube Video Transcript pricing and uptime](https://getanyapi.com/api/youtube/video-transcript) - live USD price, lane routing, and measured 30-day uptime. [Every YouTube endpoint](https://getanyapi.com/api/youtube).", + "description": "Fetch the transcript/captions of a YouTube video or Short by URL or ID.\n\n**Price:** \\$1.25 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes are available in execution order. A failed attempt uses the next lane only when the request's payment authorizes that lane's price; the normalized schema stays the same.\n\n**Catalog:** [YouTube Video Transcript pricing and uptime](https://getanyapi.com/api/youtube/video-transcript) - live USD price, lane routing, and measured 30-day uptime. [Every YouTube endpoint](https://getanyapi.com/api/youtube).", "operationId": "youtube_video_transcript", "parameters": [ { @@ -203774,6 +208503,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -203811,7 +208549,7 @@ }, "properties": { "id": { - "description": "YouTube video ID.", + "description": "YouTube video ID. A Short uses the same ID as any other video.", "type": "string" }, "preferLatencyUnderMs": { @@ -203820,7 +208558,7 @@ "type": "integer" }, "url": { - "description": "Full YouTube video URL.", + "description": "Full YouTube video URL. Shorts (youtube.com/shorts/...), youtu.be, live, and embed URLs all work.", "type": "string" } }, @@ -204241,7 +208979,7 @@ }, "/v1/run/youtube.video_transcript_full": { "post": { - "description": "Fetch a YouTube transcript with timed segments and its provenance: whether the words are creator-written captions or machine speech recognition.\n\n**Price:** billed per result - \\$3.08 per 1,000 requests base + \\$0.00 per 1,000 results, capped at \\$3.08 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Payment outcome follows the selected rail's settlement policy.\n\n**Catalog:** [YouTube Video Transcript (Provenance) pricing and uptime](https://getanyapi.com/api/youtube/video-transcript-full) - live USD price, lane routing, and measured 30-day uptime. [Every YouTube endpoint](https://getanyapi.com/api/youtube).", + "description": "Fetch a YouTube video or Short transcript with timed segments and its provenance: whether the words are creator-written captions or machine speech recognition.\n\n**Price:** \\$1.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes are available in execution order. A failed attempt uses the next lane only when the request's payment authorizes that lane's price; the normalized schema stays the same.\n\n**Catalog:** [YouTube Video Transcript (Provenance) pricing and uptime](https://getanyapi.com/api/youtube/video-transcript-full) - live USD price, lane routing, and measured 30-day uptime. [Every YouTube endpoint](https://getanyapi.com/api/youtube).", "operationId": "youtube_video_transcript_full", "parameters": [ { @@ -204281,6 +209019,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -204325,7 +209072,7 @@ "type": "integer" }, "url": { - "description": "YouTube video URL (e.g. \"https://www.youtube.com/watch?v=dQw4w9WgXcQ\").", + "description": "YouTube video or Short URL (e.g. \"https://www.youtube.com/watch?v=dQw4w9WgXcQ\" or \"https://www.youtube.com/shorts/Fir1x9cw2vg\").", "minLength": 1, "type": "string" } @@ -204670,7 +209417,7 @@ "price": { "currency": "USD", "max": "0.003080", - "min": "0.003080", + "min": "0.001000", "mode": "dynamic" }, "protocols": [ @@ -204713,7 +209460,7 @@ "pricing": { "currency": "USD", "max": "0.003080", - "min": "0.003080", + "min": "0.001000", "minimumUsd": "0.001000", "mode": "dynamic", "quoteBasis": "floor" @@ -204746,7 +209493,7 @@ "pricing": { "currency": "USD", "max": "0.003080", - "min": "0.003080", + "min": "0.001000", "minimumUsd": null, "mode": "dynamic", "quoteBasis": "funded_ceiling" @@ -204814,6 +209561,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -205325,6 +210081,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -205836,6 +210601,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -206340,6 +211114,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -206916,6 +211699,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -207512,6 +212304,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", @@ -208066,6 +212867,15 @@ "type": "string" } }, + { + "description": "Optional. The most you are willing to pay for this one request, in US dollars (for example 0.05). Any route that would charge more than this is not used, so a request only ever runs on something you can afford. If nothing is available at or below your amount, the request is refused before it runs, nothing is charged, and the message tells you the cheapest price per request so you can raise it. Leave it out to accept the normal price.", + "in": "query", + "name": "max_cost_usd", + "required": false, + "schema": { + "type": "string" + } + }, { "description": "Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.", "in": "header", diff --git a/packages/python/pyproject.toml b/packages/python/pyproject.toml index 7034bd2..962b9f8 100644 --- a/packages/python/pyproject.toml +++ b/packages/python/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "getanyapi" -version = "0.36.0" +version = "0.37.0" description = "Official typed Python SDK for AnyAPI: any API, one wallet, USD, no subscriptions." readme = "README.md" requires-python = ">=3.10" diff --git a/packages/python/src/getanyapi/__init__.py b/packages/python/src/getanyapi/__init__.py index 6ff16d4..5cf7ae1 100644 --- a/packages/python/src/getanyapi/__init__.py +++ b/packages/python/src/getanyapi/__init__.py @@ -54,7 +54,7 @@ unwrap, ) -__version__ = "0.36.0" +__version__ = "0.37.0" __all__ = [ # clients + top-level functions diff --git a/packages/python/src/getanyapi/platforms/company_enrichment.py b/packages/python/src/getanyapi/platforms/company_enrichment.py index 0b8ad90..968c041 100644 --- a/packages/python/src/getanyapi/platforms/company_enrichment.py +++ b/packages/python/src/getanyapi/platforms/company_enrichment.py @@ -275,7 +275,7 @@ class CompanyEnrichmentCrustdataV3Data(BaseModel): naics: CompanyEnrichmentCrustdataV3Naic | None = Field( default=None, description="Primary NAICS industry classification." ) - name: str = Field(description="Company name.") + name: str | None = Field(default=None, description="Company name.") region_metrics: CompanyEnrichmentCrustdataV3RegionMetric | None = Field( default=None, alias="regionMetrics", diff --git a/packages/python/src/getanyapi/platforms/google.py b/packages/python/src/getanyapi/platforms/google.py index eec1287..bb2b6af 100644 --- a/packages/python/src/getanyapi/platforms/google.py +++ b/packages/python/src/getanyapi/platforms/google.py @@ -705,7 +705,7 @@ def search( as cursor to walk further, or use google.search_100 for up to 100 ranked results in one call, which is cheaper past roughly 20 results. - Price: $0.00099 per request. + Price: $0.0009 per request. Example: res = client.google.search(gl="us", hl="en", limit=10, query="best coffee maker") @@ -970,7 +970,7 @@ async def search( as cursor to walk further, or use google.search_100 for up to 100 ranked results in one call, which is cheaper past roughly 20 results. - Price: $0.00099 per request. + Price: $0.0009 per request. Example: res = client.google.search(gl="us", hl="en", limit=10, query="best coffee maker") diff --git a/packages/python/src/getanyapi/platforms/instagram.py b/packages/python/src/getanyapi/platforms/instagram.py index 5280731..bb5533b 100644 --- a/packages/python/src/getanyapi/platforms/instagram.py +++ b/packages/python/src/getanyapi/platforms/instagram.py @@ -156,7 +156,7 @@ class InstagramPostInput(TypedDict, total=False): requirePlayCount: NotRequired[bool] """Set true to be served only by a source that reports a reel's play count. The default cheapest source does not carry play counts, so `plays` is absent from its responses; opting in guarantees the field when Instagram exposes it, at a higher price per request.""" url: Required[str] - """Full Instagram post or reel URL.""" + """Full Instagram post or reel URL, carrying the media shortcode: /p/, /reel/, /reels/, or /tv/. A profile URL such as https://www.instagram.com/username names no post, so it is rejected instead of charged for an empty result.""" class InstagramPostCommentsInput(TypedDict, total=False): @@ -1876,7 +1876,7 @@ def post( Fetch a single Instagram post or reel by URL (media URLs, like count, owner, type) as normalized JSON. - Price: $0.0009 per request. + Price: $0.0015 per request. Example: res = client.instagram.post(url="https://www.instagram.com/reel/DWzrfE2kaY8/") @@ -1897,7 +1897,7 @@ def post_comments( List the comments on an Instagram post or reel by URL with cursor pagination (text, author, likes). - Price: $0.0015 per request. + Price: $0.00144 per request. Example: res = client.instagram.post_comments(url="https://www.instagram.com/reel/DWzrfE2kaY8/") @@ -2050,7 +2050,9 @@ def search_hashtag( than Instagram's own hashtag feed. That is what lets it filter by date and media type and return reels whose like counts have settled, and it is also why results skew older (median around three months) and stop at roughly 110 - per hashtag. For Instagram's own live ranking of a tag use + per hashtag. If that web search index is unavailable, a first-page request + that sets no date and no media type is served from Instagram's own live top + feed instead. For Instagram's own live ranking of a tag use instagram.hashtag_top_posts, and for the chronological feed use instagram.hashtag_recent_posts. @@ -2741,7 +2743,7 @@ async def post( Fetch a single Instagram post or reel by URL (media URLs, like count, owner, type) as normalized JSON. - Price: $0.0009 per request. + Price: $0.0015 per request. Example: res = client.instagram.post(url="https://www.instagram.com/reel/DWzrfE2kaY8/") @@ -2762,7 +2764,7 @@ async def post_comments( List the comments on an Instagram post or reel by URL with cursor pagination (text, author, likes). - Price: $0.0015 per request. + Price: $0.00144 per request. Example: res = client.instagram.post_comments(url="https://www.instagram.com/reel/DWzrfE2kaY8/") @@ -2915,7 +2917,9 @@ async def search_hashtag( than Instagram's own hashtag feed. That is what lets it filter by date and media type and return reels whose like counts have settled, and it is also why results skew older (median around three months) and stop at roughly 110 - per hashtag. For Instagram's own live ranking of a tag use + per hashtag. If that web search index is unavailable, a first-page request + that sets no date and no media type is served from Instagram's own live top + feed instead. For Instagram's own live ranking of a tag use instagram.hashtag_top_posts, and for the chronological feed use instagram.hashtag_recent_posts. diff --git a/packages/python/src/getanyapi/platforms/maps.py b/packages/python/src/getanyapi/platforms/maps.py index 2a08b05..1278d82 100644 --- a/packages/python/src/getanyapi/platforms/maps.py +++ b/packages/python/src/getanyapi/platforms/maps.py @@ -65,7 +65,7 @@ class MapsReviewsInput(TypedDict, total=False): language: NotRequired[str] """Two-letter language code for the review details (e.g. en). Default: en.""" limit: NotRequired[int] - """Maximum number of results to return (1-100, default 100). You are billed per result returned, so a lower limit costs less. Range: 1 to 100.""" + """Maximum number of results to return (1-100, default 100). Range: 1 to 100.""" placeId: Required[str] """The Google Maps place ID to fetch reviews for (e.g. ChIJj61dQgK6j4AR4GeTYWZsKWw).""" postedLimit: NotRequired[Literal["24h", "week", "month", "year"]] @@ -308,7 +308,7 @@ class MapsReviewsItem(BaseModel): place_id: str | None = Field( default=None, alias="placeId", - description="Google Maps place id the review belongs to. Populated whenever the provider has data for the entity. Present whenever the upstream returns this record.", + description="Google Maps place id the review belongs to. Echoes the requested placeId; a lane that does not repeat it per review omits it.", ) published_ago: str | None = Field( default=None, @@ -468,10 +468,10 @@ def reviews( Fetch up to 100 Google Maps reviews for a place by place ID, sorted the way you need, in one normalized response. - Price: $0.00006 per request plus $0.00044 per result (maximum $0.0441). + Price: $0.0035 per request. Example: - res = client.maps.reviews(limit=3, placeId="ChIJN1t_tDeuEmsRUsoyG83frY4", postedLimit="year") + res = client.maps.reviews(limit=3, placeId="ChIJN1t_tDeuEmsRUsoyG83frY4") """ raw = self._client._run_raw( # pyright: ignore[reportPrivateUsage] "maps.reviews", dict(input), options @@ -556,10 +556,10 @@ async def reviews( Fetch up to 100 Google Maps reviews for a place by place ID, sorted the way you need, in one normalized response. - Price: $0.00006 per request plus $0.00044 per result (maximum $0.0441). + Price: $0.0035 per request. Example: - res = client.maps.reviews(limit=3, placeId="ChIJN1t_tDeuEmsRUsoyG83frY4", postedLimit="year") + res = client.maps.reviews(limit=3, placeId="ChIJN1t_tDeuEmsRUsoyG83frY4") """ raw = await self._client._arun_raw( # pyright: ignore[reportPrivateUsage] "maps.reviews", dict(input), options diff --git a/packages/python/src/getanyapi/platforms/perplexity.py b/packages/python/src/getanyapi/platforms/perplexity.py index a00f2a6..aa97fc9 100644 --- a/packages/python/src/getanyapi/platforms/perplexity.py +++ b/packages/python/src/getanyapi/platforms/perplexity.py @@ -66,7 +66,7 @@ def search( Ask Perplexity a web-grounded question and receive an answer with source citations. - Price: $0.00006 per request plus $0.011 per result (maximum $0.0111). + Price: $0.0036 per request. Example: res = client.perplexity.search(prompt="What is AnyAPI at getanyapi.com, and what does it offer?") @@ -94,7 +94,7 @@ async def search( Ask Perplexity a web-grounded question and receive an answer with source citations. - Price: $0.00006 per request plus $0.011 per result (maximum $0.0111). + Price: $0.0036 per request. Example: res = client.perplexity.search(prompt="What is AnyAPI at getanyapi.com, and what does it offer?") diff --git a/packages/python/src/getanyapi/platforms/reddit.py b/packages/python/src/getanyapi/platforms/reddit.py index 4e3bf89..fd71b8c 100644 --- a/packages/python/src/getanyapi/platforms/reddit.py +++ b/packages/python/src/getanyapi/platforms/reddit.py @@ -710,7 +710,7 @@ def post( Fetch a single Reddit post by URL, including its full body text, score, comment count, upvote ratio, and subreddit, as normalized JSON. - Price: $0.0009 per request. + Price: $0.0012 per request. Example: res = client.reddit.post(url="https://www.reddit.com/r/IAmA/comments/z1c9z/i_am_barack_obama_president_of_the_united_states/") @@ -815,7 +815,7 @@ def search( Search Reddit posts across all subreddits by query. - Price: $0.0009 per request. + Price: $0.0012 per request. Example: res = client.reddit.search(query="mechanical keyboard") @@ -1083,7 +1083,7 @@ async def post( Fetch a single Reddit post by URL, including its full body text, score, comment count, upvote ratio, and subreddit, as normalized JSON. - Price: $0.0009 per request. + Price: $0.0012 per request. Example: res = client.reddit.post(url="https://www.reddit.com/r/IAmA/comments/z1c9z/i_am_barack_obama_president_of_the_united_states/") @@ -1188,7 +1188,7 @@ async def search( Search Reddit posts across all subreddits by query. - Price: $0.0009 per request. + Price: $0.0012 per request. Example: res = client.reddit.search(query="mechanical keyboard") diff --git a/packages/python/src/getanyapi/platforms/threads.py b/packages/python/src/getanyapi/platforms/threads.py index c22c9ad..31667dc 100644 --- a/packages/python/src/getanyapi/platforms/threads.py +++ b/packages/python/src/getanyapi/platforms/threads.py @@ -36,10 +36,14 @@ class ThreadsProfileInput(TypedDict, total=False): class ThreadsSearchInput(TypedDict, total=False): """Input for Threads Search.""" + endDate: NotRequired[str] + """Only return posts published on or before this date, format YYYY-MM-DD (e.g. 2026-08-07). Threads pages backwards in time from here, so narrowing this is how you walk older results.""" preferLatencyUnderMs: NotRequired[int] """Optional; omit it and routing is unchanged, with the cheapest source serving. Prefer sources whose typical response time (median over the trailing 30 days, as published on this endpoint's lane health) is under this many milliseconds; among those, the cheapest serves. This can raise your price: when the cheapest source misses the target, a faster and dearer one serves, and you are quoted and charged its price. If no source is that fast the request is still served, by whichever source offers the best speed for its price - it is never refused for being slow. Sources we have not timed are tried last. This is a preference, not a guarantee: the median describes past requests and is not a ceiling on this one, and it excludes any wait this request itself asks for. On a paginated walk it applies to the first page only: later pages stay with the source that page chose, at the price it was quoted. Minimum: 1.""" query: Required[str] - """Keyword or hashtag to search public Threads posts for; the # prefix is optional (e.g. AI agents).""" + """Keyword or hashtag to search public Threads posts for; the # prefix is optional (e.g. AI agents). Threads matches text in posts, so search a brand or topic rather than a URL - a query that is only a domain is searched by its name (wander.com is searched as wander).""" + startDate: NotRequired[str] + """Only return posts published on or after this date, format YYYY-MM-DD (e.g. 2026-08-01).""" class ThreadsSearchUsersInput(TypedDict, total=False): diff --git a/packages/python/src/getanyapi/platforms/tiktok.py b/packages/python/src/getanyapi/platforms/tiktok.py index f7ca731..0f058ef 100644 --- a/packages/python/src/getanyapi/platforms/tiktok.py +++ b/packages/python/src/getanyapi/platforms/tiktok.py @@ -465,9 +465,11 @@ class TiktokTrendingHashtagsInput(TypedDict, total=False): class TiktokVideoInput(TypedDict, total=False): """Input for TikTok Video.""" + id: NotRequired[str] + """TikTok video ID, the numeric run at the end of a video URL. Use it when a listing SKU handed you an id and no URL.""" preferLatencyUnderMs: NotRequired[int] """Optional; omit it and routing is unchanged, with the cheapest source serving. Prefer sources whose typical response time (median over the trailing 30 days, as published on this endpoint's lane health) is under this many milliseconds; among those, the cheapest serves. This can raise your price: when the cheapest source misses the target, a faster and dearer one serves, and you are quoted and charged its price. If no source is that fast the request is still served, by whichever source offers the best speed for its price - it is never refused for being slow. Sources we have not timed are tried last. This is a preference, not a guarantee: the median describes past requests and is not a ceiling on this one, and it excludes any wait this request itself asks for. On a paginated walk it applies to the first page only: later pages stay with the source that page chose, at the price it was quoted. Minimum: 1.""" - url: Required[str] + url: NotRequired[str] """Full TikTok video URL.""" @@ -1588,7 +1590,7 @@ class TiktokVideoTranscriptFullWord(BaseModel): model_config = ConfigDict(extra="allow", populate_by_name=True) confidence: float = Field( - description="Recognizer confidence for this word, 0 to 1. Low values mark words the recognizer guessed; they are common on names, jargon, and music. Range: 0 to 1." + description="Recognizer score for this word, exactly as the recognizer reported it. It is normally an alignment probability between 0 and 1, but on audio the recognizer could not align it reports a negative log-scale score instead, so read the sign before treating the number as a probability. Either way, lower means less certain, and low values are common on names, jargon, and music." ) end_seconds: float | None = Field( default=None, diff --git a/packages/python/src/getanyapi/platforms/tripadvisor.py b/packages/python/src/getanyapi/platforms/tripadvisor.py index 3598c66..64ad5fe 100644 --- a/packages/python/src/getanyapi/platforms/tripadvisor.py +++ b/packages/python/src/getanyapi/platforms/tripadvisor.py @@ -178,7 +178,7 @@ def reviews( attraction by its page URL: rating, text, date, and trip details as normalized JSON. - Price: $0.0036 per request. + Price: $0.003 per request. Example: res = client.tripadvisor.reviews(limit=3, url="https://www.tripadvisor.com/Hotel_Review-g60763-d93450-Reviews-The_Plaza-New_York_City_New_York.html") @@ -200,7 +200,7 @@ def search( destination and get rich place records (ratings, review counts, contact details, pricing) as normalized JSON. - Price: $0.0036 per request. + Price: $0.003 per request. Example: res = client.tripadvisor.search(limit=3, query="Paris") @@ -229,7 +229,7 @@ async def reviews( attraction by its page URL: rating, text, date, and trip details as normalized JSON. - Price: $0.0036 per request. + Price: $0.003 per request. Example: res = client.tripadvisor.reviews(limit=3, url="https://www.tripadvisor.com/Hotel_Review-g60763-d93450-Reviews-The_Plaza-New_York_City_New_York.html") @@ -251,7 +251,7 @@ async def search( destination and get rich place records (ratings, review counts, contact details, pricing) as normalized JSON. - Price: $0.0036 per request. + Price: $0.003 per request. Example: res = client.tripadvisor.search(limit=3, query="Paris") diff --git a/packages/python/src/getanyapi/platforms/trustpilot.py b/packages/python/src/getanyapi/platforms/trustpilot.py index 113cd8e..69ad658 100644 --- a/packages/python/src/getanyapi/platforms/trustpilot.py +++ b/packages/python/src/getanyapi/platforms/trustpilot.py @@ -21,9 +21,9 @@ class TrustpilotReviewsInput(TypedDict, total=False): company: Required[str] """Brand name or Trustpilot review-page URL to fetch reviews for (e.g. nike or https://www.trustpilot.com/review/nike.com).""" countries: NotRequired[list[str]] - """Only return reviews from reviewers in these ISO 3166-1 alpha-2 countries (e.g. ["US", "GB"]); omit for all countries.""" + """Only return reviews from reviewers in these ISO 3166-1 alpha-2 countries (e.g. ["US", "GB"]). Omit this field for all countries and to stay on the cheapest price; a country filter routes to the dearest source.""" languages: NotRequired[list[str]] - """Only return reviews in these ISO 639-1 languages (e.g. ["en", "de"]); omit for all languages.""" + """Only return reviews in these ISO 639-1 languages (e.g. ["en", "de"]). Omit this field for all languages and to stay on the cheapest price; a language filter routes to the dearest source.""" limit: NotRequired[int] """Maximum number of results to return (1-200, default 200). Trustpilot serves at most 200 reviews per company. Range: 1 to 200. Default: 200.""" preferLatencyUnderMs: NotRequired[int] @@ -31,11 +31,11 @@ class TrustpilotReviewsInput(TypedDict, total=False): sortBy: NotRequired[str] """Review ordering: auto, relevancy, or recent (e.g. recent). Default: auto.""" stars: NotRequired[str] - """Limit reviews to a single star rating from 1 to 5 (e.g. 5); omit for all ratings.""" + """Limit reviews to a single star rating from 1 to 5 (e.g. 5). Omit this field to stay on the cheapest price; a star filter routes to a dearer source.""" startDate: NotRequired[str] - """Only return reviews on or after this date, inclusive, in YYYY-MM-DD format (e.g. 2026-01-01).""" + """Only return reviews on or after this date, inclusive, in YYYY-MM-DD format (e.g. 2026-01-01). Omit this field to stay on the cheapest price; a date floor routes to the dearest source.""" verifiedOnly: NotRequired[bool] - """Set true to return only verified reviews (e.g. true). Default: false.""" + """Set true to return only verified reviews (e.g. true). Omit this field, or send false, to stay on the cheapest price; true routes to a dearer source. Default: false.""" class TrustpilotReviewsData(BaseModel): diff --git a/packages/python/src/getanyapi/platforms/twitter.py b/packages/python/src/getanyapi/platforms/twitter.py index 2fc0d28..9453915 100644 --- a/packages/python/src/getanyapi/platforms/twitter.py +++ b/packages/python/src/getanyapi/platforms/twitter.py @@ -103,8 +103,6 @@ class TwitterSearchInput(TypedDict, total=False): cursor: NotRequired[str] """Opaque pagination cursor from a previous response's nextCursor. Omit for the first page; pass it to fetch the next page of search results.""" - lang: NotRequired[str] - """Optional ISO 639-1 language code to restrict tweets to (e.g. en).""" limit: NotRequired[int] """Per-page maximum number of results to return (1-50, default 20). A provider may return a smaller native page; follow nextCursor for more. Range: 1 to 50. Default: 20.""" preferLatencyUnderMs: NotRequired[int] diff --git a/packages/python/src/getanyapi/platforms/yelp.py b/packages/python/src/getanyapi/platforms/yelp.py index af75b15..34da484 100644 --- a/packages/python/src/getanyapi/platforms/yelp.py +++ b/packages/python/src/getanyapi/platforms/yelp.py @@ -19,7 +19,7 @@ class YelpSearchInput(TypedDict, total=False): """Input for Yelp Search.""" limit: NotRequired[int] - """Maximum number of results to return (1 to 20, default 20). Range: 1 to 20.""" + """Maximum number of results to return (1 to 20, default 20). Range: 1 to 20. Default: 20.""" location: Required[str] """City and state defining the search area (e.g. San Francisco, CA).""" preferLatencyUnderMs: NotRequired[int] @@ -113,7 +113,7 @@ def search( Search Yelp for businesses by keyword and location: up to 20 listings with ratings, categories, and core business info per request. - Price: $0.044 per request plus $0.00083 per result (maximum $0.0605). + Price: $0.0035 per request. Example: res = client.yelp.search(limit=5, location="Chicago, IL", query="pizza") @@ -138,7 +138,7 @@ async def search( Search Yelp for businesses by keyword and location: up to 20 listings with ratings, categories, and core business info per request. - Price: $0.044 per request plus $0.00083 per result (maximum $0.0605). + Price: $0.0035 per request. Example: res = client.yelp.search(limit=5, location="Chicago, IL", query="pizza") diff --git a/packages/python/src/getanyapi/platforms/youtube.py b/packages/python/src/getanyapi/platforms/youtube.py index 0288e5a..4353df9 100644 --- a/packages/python/src/getanyapi/platforms/youtube.py +++ b/packages/python/src/getanyapi/platforms/youtube.py @@ -165,8 +165,23 @@ class YoutubeSearchHashtagInput(TypedDict, total=False): """Hashtag to search for (without the leading #).""" preferLatencyUnderMs: NotRequired[int] """Optional; omit it and routing is unchanged, with the cheapest source serving. Prefer sources whose typical response time (median over the trailing 30 days, as published on this endpoint's lane health) is under this many milliseconds; among those, the cheapest serves. This can raise your price: when the cheapest source misses the target, a faster and dearer one serves, and you are quoted and charged its price. If no source is that fast the request is still served, by whichever source offers the best speed for its price - it is never refused for being slow. Sources we have not timed are tried last. This is a preference, not a guarantee: the median describes past requests and is not a ceiling on this one, and it excludes any wait this request itself asks for. On a paginated walk it applies to the first page only: later pages stay with the source that page chose, at the price it was quoted. Minimum: 1.""" - type: NotRequired[Literal["all", "shorts"]] - """Content filter.""" + type: NotRequired[Literal["all"]] + """Content filter. Only "all" is served: no source we buy returns a Shorts row with the channel and publish time this endpoint requires.""" + + +class YoutubeSearchShortsInput(TypedDict, total=False): + """Input for YouTube Shorts Search.""" + + cursor: NotRequired[str] + """Continuation token from a previous response for pagination.""" + preferLatencyUnderMs: NotRequired[int] + """Optional; omit it and routing is unchanged, with the cheapest source serving. Prefer sources whose typical response time (median over the trailing 30 days, as published on this endpoint's lane health) is under this many milliseconds; among those, the cheapest serves. This can raise your price: when the cheapest source misses the target, a faster and dearer one serves, and you are quoted and charged its price. If no source is that fast the request is still served, by whichever source offers the best speed for its price - it is never refused for being slow. Sources we have not timed are tried last. This is a preference, not a guarantee: the median describes past requests and is not a ceiling on this one, and it excludes any wait this request itself asks for. On a paginated walk it applies to the first page only: later pages stay with the source that page chose, at the price it was quoted. Minimum: 1.""" + query: Required[str] + """The keyword to search Shorts for.""" + sortBy: NotRequired[Literal["relevance", "popular"]] + """Sort order: "relevance" (default) or "popular" (most-viewed). Default: relevance.""" + uploadDate: NotRequired[Literal["today", "this_week", "this_month", "this_year"]] + """Filter by upload recency. Omit for any time.""" class YoutubeTrendingShortsInput(TypedDict, total=False): @@ -180,11 +195,11 @@ class YoutubeVideoInput(TypedDict, total=False): """Input for YouTube Video.""" id: NotRequired[str] - """YouTube video ID.""" + """YouTube video ID. A Short uses the same ID as any other video.""" preferLatencyUnderMs: NotRequired[int] """Optional; omit it and routing is unchanged, with the cheapest source serving. Prefer sources whose typical response time (median over the trailing 30 days, as published on this endpoint's lane health) is under this many milliseconds; among those, the cheapest serves. This can raise your price: when the cheapest source misses the target, a faster and dearer one serves, and you are quoted and charged its price. If no source is that fast the request is still served, by whichever source offers the best speed for its price - it is never refused for being slow. Sources we have not timed are tried last. This is a preference, not a guarantee: the median describes past requests and is not a ceiling on this one, and it excludes any wait this request itself asks for. On a paginated walk it applies to the first page only: later pages stay with the source that page chose, at the price it was quoted. Minimum: 1.""" url: NotRequired[str] - """Full YouTube video URL.""" + """Full YouTube video URL. Shorts (youtube.com/shorts/...), youtu.be, live, and embed URLs all work.""" class YoutubeVideoCommentsInput(TypedDict, total=False): @@ -197,7 +212,7 @@ class YoutubeVideoCommentsInput(TypedDict, total=False): preferLatencyUnderMs: NotRequired[int] """Optional; omit it and routing is unchanged, with the cheapest source serving. Prefer sources whose typical response time (median over the trailing 30 days, as published on this endpoint's lane health) is under this many milliseconds; among those, the cheapest serves. This can raise your price: when the cheapest source misses the target, a faster and dearer one serves, and you are quoted and charged its price. If no source is that fast the request is still served, by whichever source offers the best speed for its price - it is never refused for being slow. Sources we have not timed are tried last. This is a preference, not a guarantee: the median describes past requests and is not a ceiling on this one, and it excludes any wait this request itself asks for. On a paginated walk it applies to the first page only: later pages stay with the source that page chose, at the price it was quoted. Minimum: 1.""" url: Required[str] - """Full YouTube video URL.""" + """Full YouTube video URL. Shorts (youtube.com/shorts/...) and youtu.be URLs also work.""" class YoutubeVideoSponsorsInput(TypedDict, total=False): @@ -215,11 +230,11 @@ class YoutubeVideoTranscriptInput(TypedDict, total=False): """Input for YouTube Video Transcript.""" id: NotRequired[str] - """YouTube video ID.""" + """YouTube video ID. A Short uses the same ID as any other video.""" preferLatencyUnderMs: NotRequired[int] """Optional; omit it and routing is unchanged, with the cheapest source serving. Prefer sources whose typical response time (median over the trailing 30 days, as published on this endpoint's lane health) is under this many milliseconds; among those, the cheapest serves. This can raise your price: when the cheapest source misses the target, a faster and dearer one serves, and you are quoted and charged its price. If no source is that fast the request is still served, by whichever source offers the best speed for its price - it is never refused for being slow. Sources we have not timed are tried last. This is a preference, not a guarantee: the median describes past requests and is not a ceiling on this one, and it excludes any wait this request itself asks for. On a paginated walk it applies to the first page only: later pages stay with the source that page chose, at the price it was quoted. Minimum: 1.""" url: NotRequired[str] - """Full YouTube video URL.""" + """Full YouTube video URL. Shorts (youtube.com/shorts/...), youtu.be, live, and embed URLs all work.""" class YoutubeVideoTranscriptFullInput(TypedDict, total=False): @@ -232,7 +247,7 @@ class YoutubeVideoTranscriptFullInput(TypedDict, total=False): preferLatencyUnderMs: NotRequired[int] """Optional; omit it and routing is unchanged, with the cheapest source serving. Prefer sources whose typical response time (median over the trailing 30 days, as published on this endpoint's lane health) is under this many milliseconds; among those, the cheapest serves. This can raise your price: when the cheapest source misses the target, a faster and dearer one serves, and you are quoted and charged its price. If no source is that fast the request is still served, by whichever source offers the best speed for its price - it is never refused for being slow. Sources we have not timed are tried last. This is a preference, not a guarantee: the median describes past requests and is not a ceiling on this one, and it excludes any wait this request itself asks for. On a paginated walk it applies to the first page only: later pages stay with the source that page chose, at the price it was quoted. Minimum: 1.""" url: Required[str] - """YouTube video URL (e.g. "https://www.youtube.com/watch?v=dQw4w9WgXcQ").""" + """YouTube video or Short URL (e.g. "https://www.youtube.com/watch?v=dQw4w9WgXcQ" or "https://www.youtube.com/shorts/Fir1x9cw2vg").""" class YoutubeChannelData(BaseModel): @@ -388,8 +403,9 @@ class YoutubeChannelShortsShort(BaseModel): likes: int = Field( description="Public like count when supplied by the upstream response. Minimum: 0." ) - title: str = Field( - description="Public title or caption for the Short. Populated whenever the provider has data for the entity." + title: str | None = Field( + default=None, + description="Public title or caption for the Short. Populated whenever the provider has data for the entity. Present whenever the upstream returns this record.", ) url: str = Field( description="Public YouTube URL for the Short. Populated whenever the provider has data for the entity." @@ -597,6 +613,44 @@ class YoutubeSearchHashtagVideo(BaseModel): views: int +class YoutubeSearchShortsData(BaseModel): + model_config = ConfigDict(populate_by_name=True) + + next_cursor: str | None = Field( + default=None, + alias="nextCursor", + description="Opaque cursor for the next page of results, or null when there are no more. Pass it back as cursor to continue.", + ) + shorts: list[YoutubeSearchShortsShort] = Field( + description="Populated whenever the provider has data for the entity." + ) + + +class YoutubeSearchShortsShort(BaseModel): + model_config = ConfigDict(extra="allow", populate_by_name=True) + + content_type: str = Field( + alias="contentType", + description='Always "short": every row here comes from YouTube\'s Shorts shelf.', + ) + id: str = Field( + description="YouTube video id of the Short. Populated whenever the provider has data for the entity." + ) + title: str = Field( + description="Title of the Short. Populated whenever the provider has data for the entity." + ) + url: str = Field( + description="Watch URL for the Short. Populated whenever the provider has data for the entity." + ) + views: int = Field( + description="View count, or 0 when the source did not publish one. Read viewsAvailable before trusting a 0." + ) + views_available: bool = Field( + alias="viewsAvailable", + description="False when the source published no view count, so views is a placeholder rather than a measured zero.", + ) + + class YoutubeTrendingShortsData(BaseModel): shorts: list[YoutubeTrendingShortsShort] = Field( description="Populated whenever the provider has data for the entity." @@ -1203,6 +1257,50 @@ def iter_search_hashtag( options=options, ) + def search_shorts( + self, + *, + options: RequestOptions | None = None, + **input: Unpack[YoutubeSearchShortsInput], + ) -> RunResult[YoutubeSearchShortsData]: + """YouTube Shorts Search + + Search YouTube Shorts by keyword and get matching Shorts (title, views, URL) + with cursor pagination as normalized JSON. + + Price: $0.002 per request. + + Example: + res = client.youtube.search_shorts(query="cats") + """ + raw = self._client._run_raw( # pyright: ignore[reportPrivateUsage] + "youtube.search_shorts", dict(input), options + ) + return RunResult[YoutubeSearchShortsData].model_validate(raw) + + def iter_search_shorts( + self, + *, + options: RequestOptions | None = None, + **input: Unpack[YoutubeSearchShortsInput], + ) -> Paginator[YoutubeSearchShortsShort, YoutubeSearchShortsData]: + """Iterate YouTube Shorts Search results, following pagination cursors. + + Yields validated `YoutubeSearchShortsShort` items from the `shorts` field of + each page. Use `.pages()` on the returned paginator to walk whole + `RunResult` pages. + """ + return paginate( + self._client, + "youtube.search_shorts", + dict(input), + "shorts", + item_model=YoutubeSearchShortsShort, + data_model=YoutubeSearchShortsData, + bare=False, + options=options, + ) + def trending_shorts( self, *, @@ -1232,8 +1330,8 @@ def video( ) -> RunResult[YoutubeVideoData]: """YouTube Video - Fetch a YouTube video's metadata (title, channel, views, likes, duration, - publish date) by URL or ID. + Fetch a YouTube video or Short's metadata (title, channel, views, likes, + duration, publish date) by URL or ID. Price: $0.00125 per request. @@ -1253,8 +1351,8 @@ def video_comments( ) -> RunResult[YoutubeVideoCommentsData]: """YouTube Video Comments - List the comments on a YouTube video by URL with cursor pagination (text, - author, likes, reply count). + List the comments on a YouTube video or Short by URL with cursor pagination + (text, author, likes, reply count). Price: $0.002 per request. @@ -1318,7 +1416,7 @@ def video_transcript( ) -> RunResult[YoutubeVideoTranscriptData]: """YouTube Video Transcript - Fetch the transcript/captions of a YouTube video by URL or ID. + Fetch the transcript/captions of a YouTube video or Short by URL or ID. Price: $0.00125 per request. @@ -1338,10 +1436,11 @@ def video_transcript_full( ) -> RunResult[YoutubeVideoTranscriptFullData]: """YouTube Video Transcript (Provenance) - Fetch a YouTube transcript with timed segments and its provenance: whether - the words are creator-written captions or machine speech recognition. + Fetch a YouTube video or Short transcript with timed segments and its + provenance: whether the words are creator-written captions or machine speech + recognition. - Price: $0.00308 per request plus $0 per result (maximum $0.00308). + Price: $0.001 per request. Example: res = client.youtube.video_transcript_full(url="https://www.youtube.com/watch?v=dQw4w9WgXcQ") @@ -1775,6 +1874,50 @@ def iter_search_hashtag( options=options, ) + async def search_shorts( + self, + *, + options: RequestOptions | None = None, + **input: Unpack[YoutubeSearchShortsInput], + ) -> RunResult[YoutubeSearchShortsData]: + """YouTube Shorts Search + + Search YouTube Shorts by keyword and get matching Shorts (title, views, URL) + with cursor pagination as normalized JSON. + + Price: $0.002 per request. + + Example: + res = client.youtube.search_shorts(query="cats") + """ + raw = await self._client._arun_raw( # pyright: ignore[reportPrivateUsage] + "youtube.search_shorts", dict(input), options + ) + return RunResult[YoutubeSearchShortsData].model_validate(raw) + + def iter_search_shorts( + self, + *, + options: RequestOptions | None = None, + **input: Unpack[YoutubeSearchShortsInput], + ) -> AsyncPaginator[YoutubeSearchShortsShort, YoutubeSearchShortsData]: + """Iterate YouTube Shorts Search results, following pagination cursors. + + Yields validated `YoutubeSearchShortsShort` items from the `shorts` field of + each page. Use `.pages()` on the returned paginator to walk whole + `RunResult` pages. + """ + return apaginate( + self._client, + "youtube.search_shorts", + dict(input), + "shorts", + item_model=YoutubeSearchShortsShort, + data_model=YoutubeSearchShortsData, + bare=False, + options=options, + ) + async def trending_shorts( self, *, @@ -1804,8 +1947,8 @@ async def video( ) -> RunResult[YoutubeVideoData]: """YouTube Video - Fetch a YouTube video's metadata (title, channel, views, likes, duration, - publish date) by URL or ID. + Fetch a YouTube video or Short's metadata (title, channel, views, likes, + duration, publish date) by URL or ID. Price: $0.00125 per request. @@ -1825,8 +1968,8 @@ async def video_comments( ) -> RunResult[YoutubeVideoCommentsData]: """YouTube Video Comments - List the comments on a YouTube video by URL with cursor pagination (text, - author, likes, reply count). + List the comments on a YouTube video or Short by URL with cursor pagination + (text, author, likes, reply count). Price: $0.002 per request. @@ -1890,7 +2033,7 @@ async def video_transcript( ) -> RunResult[YoutubeVideoTranscriptData]: """YouTube Video Transcript - Fetch the transcript/captions of a YouTube video by URL or ID. + Fetch the transcript/captions of a YouTube video or Short by URL or ID. Price: $0.00125 per request. @@ -1910,10 +2053,11 @@ async def video_transcript_full( ) -> RunResult[YoutubeVideoTranscriptFullData]: """YouTube Video Transcript (Provenance) - Fetch a YouTube transcript with timed segments and its provenance: whether - the words are creator-written captions or machine speech recognition. + Fetch a YouTube video or Short transcript with timed segments and its + provenance: whether the words are creator-written captions or machine speech + recognition. - Price: $0.00308 per request plus $0 per result (maximum $0.00308). + Price: $0.001 per request. Example: res = client.youtube.video_transcript_full(url="https://www.youtube.com/watch?v=dQw4w9WgXcQ") diff --git a/packages/typescript/package.json b/packages/typescript/package.json index 2171afc..fb79d21 100644 --- a/packages/typescript/package.json +++ b/packages/typescript/package.json @@ -1,6 +1,6 @@ { "name": "@getanyapi/sdk", - "version": "0.36.0", + "version": "0.37.0", "description": "Official typed TypeScript SDK for AnyAPI: any API, one wallet, USD, no subscriptions.", "type": "module", "sideEffects": false, diff --git a/packages/typescript/src/generated/platforms/company_enrichment.ts b/packages/typescript/src/generated/platforms/company_enrichment.ts index 6461098..070ee60 100644 --- a/packages/typescript/src/generated/platforms/company_enrichment.ts +++ b/packages/typescript/src/generated/platforms/company_enrichment.ts @@ -304,7 +304,7 @@ export interface CompanyEnrichmentCrustdataV3Data { /** * Company name. */ - name: string; + name?: string; /** * Regions bucketed by the share of headcount they represent. Restates headcountByRegionPercent as bands. */ diff --git a/packages/typescript/src/generated/platforms/google.ts b/packages/typescript/src/generated/platforms/google.ts index b2c2ebb..a1ae868 100644 --- a/packages/typescript/src/generated/platforms/google.ts +++ b/packages/typescript/src/generated/platforms/google.ts @@ -913,7 +913,7 @@ export class GoogleNamespace { * * Run a Google web search and get the organic results (title, link, snippet, position) as clean JSON. Returns about 10 results per call - Google stopped honoring bulk result counts in September 2025, so a limit above 10 is accepted but returns no more than a page. Pass the returned nextCursor back as cursor to walk further, or use google.search_100 for up to 100 ranked results in one call, which is cheaper past roughly 20 results. * - * Price: $0.00099 per request. + * Price: $0.0009 per request. * * @example * const res = await client.google.search({ query: "best coffee maker", gl: "us", hl: "en", limit: 10 }); diff --git a/packages/typescript/src/generated/platforms/instagram.ts b/packages/typescript/src/generated/platforms/instagram.ts index 85caf2d..ab3eee9 100644 --- a/packages/typescript/src/generated/platforms/instagram.ts +++ b/packages/typescript/src/generated/platforms/instagram.ts @@ -728,7 +728,7 @@ export interface InstagramPostInput { */ requirePlayCount?: boolean; /** - * Full Instagram post or reel URL. + * Full Instagram post or reel URL, carrying the media shortcode: /p/, /reel/, /reels/, or /tv/. A profile URL such as https://www.instagram.com/username names no post, so it is rejected instead of charged for an empty result. */ url: string; } @@ -2248,7 +2248,7 @@ export class InstagramNamespace { * * Fetch a single Instagram post or reel by URL (media URLs, like count, owner, type) as normalized JSON. * - * Price: $0.0009 per request. + * Price: $0.0015 per request. * * @example * const res = await client.instagram.post({ url: "https://www.instagram.com/reel/DWzrfE2kaY8/" }); @@ -2265,7 +2265,7 @@ export class InstagramNamespace { * * List the comments on an Instagram post or reel by URL with cursor pagination (text, author, likes). * - * Price: $0.0015 per request. + * Price: $0.00144 per request. * * @example * const res = await client.instagram.postComments({ url: "https://www.instagram.com/reel/DWzrfE2kaY8/" }); @@ -2391,7 +2391,7 @@ export class InstagramNamespace { /** * Instagram Hashtag Search * - * Search posts under an Instagram hashtag through a web search index rather than Instagram's own hashtag feed. That is what lets it filter by date and media type and return reels whose like counts have settled, and it is also why results skew older (median around three months) and stop at roughly 110 per hashtag. For Instagram's own live ranking of a tag use instagram.hashtag_top_posts, and for the chronological feed use instagram.hashtag_recent_posts. + * Search posts under an Instagram hashtag through a web search index rather than Instagram's own hashtag feed. That is what lets it filter by date and media type and return reels whose like counts have settled, and it is also why results skew older (median around three months) and stop at roughly 110 per hashtag. If that web search index is unavailable, a first-page request that sets no date and no media type is served from Instagram's own live top feed instead. For Instagram's own live ranking of a tag use instagram.hashtag_top_posts, and for the chronological feed use instagram.hashtag_recent_posts. * * Price: $0.002 per request. * diff --git a/packages/typescript/src/generated/platforms/maps.ts b/packages/typescript/src/generated/platforms/maps.ts index afac549..0d26d06 100644 --- a/packages/typescript/src/generated/platforms/maps.ts +++ b/packages/typescript/src/generated/platforms/maps.ts @@ -315,7 +315,7 @@ export interface MapsReviewsInput { */ language?: string; /** - * Maximum number of results to return (1-100, default 100). You are billed per result returned, so a lower limit costs less. + * Maximum number of results to return (1-100, default 100). * Range: minimum 1, maximum 100. */ limit?: number; @@ -377,8 +377,7 @@ export interface MapsReviewsItem { */ ownerResponseAt?: string; /** - * Google Maps place id the review belongs to. Populated whenever the provider has data for the entity. - * Present whenever the upstream returns this record. + * Google Maps place id the review belongs to. Echoes the requested placeId; a lane that does not repeat it per review omits it. */ placeId?: string; /** @@ -607,10 +606,10 @@ export class MapsNamespace { * * Fetch up to 100 Google Maps reviews for a place by place ID, sorted the way you need, in one normalized response. * - * Price: $0.00006 per request plus $0.00044 per result (maximum $0.0441). + * Price: $0.0035 per request. * * @example - * const res = await client.maps.reviews({ placeId: "ChIJN1t_tDeuEmsRUsoyG83frY4", limit: 3, postedLimit: "year" }); + * const res = await client.maps.reviews({ placeId: "ChIJN1t_tDeuEmsRUsoyG83frY4", limit: 3 }); */ reviews( input: MapsReviewsInput, diff --git a/packages/typescript/src/generated/platforms/perplexity.ts b/packages/typescript/src/generated/platforms/perplexity.ts index 38c6459..5c734c2 100644 --- a/packages/typescript/src/generated/platforms/perplexity.ts +++ b/packages/typescript/src/generated/platforms/perplexity.ts @@ -68,7 +68,7 @@ export class PerplexityNamespace { * * Ask Perplexity a web-grounded question and receive an answer with source citations. * - * Price: $0.00006 per request plus $0.011 per result (maximum $0.0111). + * Price: $0.0036 per request. * * @example * const res = await client.perplexity.search({ prompt: "What is AnyAPI at getanyapi.com, and what does it offer?" }); diff --git a/packages/typescript/src/generated/platforms/reddit.ts b/packages/typescript/src/generated/platforms/reddit.ts index 0bcc38b..32c130e 100644 --- a/packages/typescript/src/generated/platforms/reddit.ts +++ b/packages/typescript/src/generated/platforms/reddit.ts @@ -920,7 +920,7 @@ export class RedditNamespace { * * Fetch a single Reddit post by URL, including its full body text, score, comment count, upvote ratio, and subreddit, as normalized JSON. * - * Price: $0.0009 per request. + * Price: $0.0012 per request. * * @example * const res = await client.reddit.post({ url: "https://www.reddit.com/r/IAmA/comments/z1c9z/i_am_barack_obama_president_of_the_united_states/" }); @@ -1011,7 +1011,7 @@ export class RedditNamespace { * * Search Reddit posts across all subreddits by query. * - * Price: $0.0009 per request. + * Price: $0.0012 per request. * * @example * const res = await client.reddit.search({ query: "mechanical keyboard" }); diff --git a/packages/typescript/src/generated/platforms/threads.ts b/packages/typescript/src/generated/platforms/threads.ts index 644dc1d..042359f 100644 --- a/packages/typescript/src/generated/platforms/threads.ts +++ b/packages/typescript/src/generated/platforms/threads.ts @@ -117,15 +117,23 @@ export interface ThreadsProfileData { * Input for Threads Search (threads.search). */ export interface ThreadsSearchInput { + /** + * Only return posts published on or before this date, format YYYY-MM-DD (e.g. 2026-08-07). Threads pages backwards in time from here, so narrowing this is how you walk older results. + */ + endDate?: string; /** * Optional; omit it and routing is unchanged, with the cheapest source serving. Prefer sources whose typical response time (median over the trailing 30 days, as published on this endpoint's lane health) is under this many milliseconds; among those, the cheapest serves. This can raise your price: when the cheapest source misses the target, a faster and dearer one serves, and you are quoted and charged its price. If no source is that fast the request is still served, by whichever source offers the best speed for its price - it is never refused for being slow. Sources we have not timed are tried last. This is a preference, not a guarantee: the median describes past requests and is not a ceiling on this one, and it excludes any wait this request itself asks for. On a paginated walk it applies to the first page only: later pages stay with the source that page chose, at the price it was quoted. * Range: minimum 1. */ preferLatencyUnderMs?: number; /** - * Keyword or hashtag to search public Threads posts for; the # prefix is optional (e.g. AI agents). + * Keyword or hashtag to search public Threads posts for; the # prefix is optional (e.g. AI agents). Threads matches text in posts, so search a brand or topic rather than a URL - a query that is only a domain is searched by its name (wander.com is searched as wander). */ query: string; + /** + * Only return posts published on or after this date, format YYYY-MM-DD (e.g. 2026-08-01). + */ + startDate?: string; } export interface ThreadsSearchPost { diff --git a/packages/typescript/src/generated/platforms/tiktok.ts b/packages/typescript/src/generated/platforms/tiktok.ts index 9b0c182..235d5f6 100644 --- a/packages/typescript/src/generated/platforms/tiktok.ts +++ b/packages/typescript/src/generated/platforms/tiktok.ts @@ -1764,6 +1764,10 @@ export interface TiktokTrendingHashtagsData { * Input for TikTok Video (tiktok.video). */ export interface TiktokVideoInput { + /** + * TikTok video ID, the numeric run at the end of a video URL. Use it when a listing SKU handed you an id and no URL. + */ + id?: string; /** * Optional; omit it and routing is unchanged, with the cheapest source serving. Prefer sources whose typical response time (median over the trailing 30 days, as published on this endpoint's lane health) is under this many milliseconds; among those, the cheapest serves. This can raise your price: when the cheapest source misses the target, a faster and dearer one serves, and you are quoted and charged its price. If no source is that fast the request is still served, by whichever source offers the best speed for its price - it is never refused for being slow. Sources we have not timed are tried last. This is a preference, not a guarantee: the median describes past requests and is not a ceiling on this one, and it excludes any wait this request itself asks for. On a paginated walk it applies to the first page only: later pages stay with the source that page chose, at the price it was quoted. * Range: minimum 1. @@ -1772,7 +1776,7 @@ export interface TiktokVideoInput { /** * Full TikTok video URL. */ - url: string; + url?: string; } /** @@ -1979,8 +1983,7 @@ export interface TiktokVideoTranscriptFullSegment { export interface TiktokVideoTranscriptFullWord { /** - * Recognizer confidence for this word, 0 to 1. Low values mark words the recognizer guessed; they are common on names, jargon, and music. - * Range: minimum 0, maximum 1. + * Recognizer score for this word, exactly as the recognizer reported it. It is normally an alignment probability between 0 and 1, but on audio the recognizer could not align it reports a negative log-scale score instead, so read the sign before treating the number as a probability. Either way, lower means less certain, and low values are common on names, jargon, and music. */ confidence: number; /** diff --git a/packages/typescript/src/generated/platforms/tripadvisor.ts b/packages/typescript/src/generated/platforms/tripadvisor.ts index bd530bd..9c20d08 100644 --- a/packages/typescript/src/generated/platforms/tripadvisor.ts +++ b/packages/typescript/src/generated/platforms/tripadvisor.ts @@ -225,7 +225,7 @@ export class TripadvisorNamespace { * * Fetch the latest reviews for any Tripadvisor hotel, restaurant, or attraction by its page URL: rating, text, date, and trip details as normalized JSON. * - * Price: $0.0036 per request. + * Price: $0.003 per request. * * @example * const res = await client.tripadvisor.reviews({ url: "https://www.tripadvisor.com/Hotel_Review-g60763-d93450-Reviews-The_Plaza-New_York_City_New_York.html", limit: 3 }); @@ -242,7 +242,7 @@ export class TripadvisorNamespace { * * Search Tripadvisor for hotels, restaurants, and attractions in any destination and get rich place records (ratings, review counts, contact details, pricing) as normalized JSON. * - * Price: $0.0036 per request. + * Price: $0.003 per request. * * @example * const res = await client.tripadvisor.search({ query: "Paris", limit: 3 }); diff --git a/packages/typescript/src/generated/platforms/trustpilot.ts b/packages/typescript/src/generated/platforms/trustpilot.ts index 3649bc2..6055955 100644 --- a/packages/typescript/src/generated/platforms/trustpilot.ts +++ b/packages/typescript/src/generated/platforms/trustpilot.ts @@ -15,11 +15,11 @@ export interface TrustpilotReviewsInput { */ company: string; /** - * Only return reviews from reviewers in these ISO 3166-1 alpha-2 countries (e.g. ["US", "GB"]); omit for all countries. + * Only return reviews from reviewers in these ISO 3166-1 alpha-2 countries (e.g. ["US", "GB"]). Omit this field for all countries and to stay on the cheapest price; a country filter routes to the dearest source. */ countries?: string[]; /** - * Only return reviews in these ISO 639-1 languages (e.g. ["en", "de"]); omit for all languages. + * Only return reviews in these ISO 639-1 languages (e.g. ["en", "de"]). Omit this field for all languages and to stay on the cheapest price; a language filter routes to the dearest source. */ languages?: string[]; /** @@ -39,15 +39,15 @@ export interface TrustpilotReviewsInput { */ sortBy?: string; /** - * Limit reviews to a single star rating from 1 to 5 (e.g. 5); omit for all ratings. + * Limit reviews to a single star rating from 1 to 5 (e.g. 5). Omit this field to stay on the cheapest price; a star filter routes to a dearer source. */ stars?: string; /** - * Only return reviews on or after this date, inclusive, in YYYY-MM-DD format (e.g. 2026-01-01). + * Only return reviews on or after this date, inclusive, in YYYY-MM-DD format (e.g. 2026-01-01). Omit this field to stay on the cheapest price; a date floor routes to the dearest source. */ startDate?: string; /** - * Set true to return only verified reviews (e.g. true). + * Set true to return only verified reviews (e.g. true). Omit this field, or send false, to stay on the cheapest price; true routes to a dearer source. * Default: false. */ verifiedOnly?: boolean; diff --git a/packages/typescript/src/generated/platforms/twitter.ts b/packages/typescript/src/generated/platforms/twitter.ts index 41ba066..d766538 100644 --- a/packages/typescript/src/generated/platforms/twitter.ts +++ b/packages/typescript/src/generated/platforms/twitter.ts @@ -624,10 +624,6 @@ export interface TwitterSearchInput { * Opaque pagination cursor from a previous response's nextCursor. Omit for the first page; pass it to fetch the next page of search results. */ cursor?: string; - /** - * Optional ISO 639-1 language code to restrict tweets to (e.g. en). - */ - lang?: string; /** * Per-page maximum number of results to return (1-50, default 20). A provider may return a smaller native page; follow nextCursor for more. * Range: minimum 1, maximum 50. diff --git a/packages/typescript/src/generated/platforms/yelp.ts b/packages/typescript/src/generated/platforms/yelp.ts index 1147172..a410ef1 100644 --- a/packages/typescript/src/generated/platforms/yelp.ts +++ b/packages/typescript/src/generated/platforms/yelp.ts @@ -13,6 +13,7 @@ export interface YelpSearchInput { /** * Maximum number of results to return (1 to 20, default 20). * Range: minimum 1, maximum 20. + * Default: 20. */ limit?: number; /** @@ -161,7 +162,7 @@ export class YelpNamespace { * * Search Yelp for businesses by keyword and location: up to 20 listings with ratings, categories, and core business info per request. * - * Price: $0.044 per request plus $0.00083 per result (maximum $0.0605). + * Price: $0.0035 per request. * * @example * const res = await client.yelp.search({ location: "Chicago, IL", query: "pizza", limit: 5 }); diff --git a/packages/typescript/src/generated/platforms/youtube.ts b/packages/typescript/src/generated/platforms/youtube.ts index 1eb15df..347cd13 100644 --- a/packages/typescript/src/generated/platforms/youtube.ts +++ b/packages/typescript/src/generated/platforms/youtube.ts @@ -306,8 +306,9 @@ export interface YoutubeChannelShortsShort { likes: number; /** * Public title or caption for the Short. Populated whenever the provider has data for the entity. + * Present whenever the upstream returns this record. */ - title: string; + title?: string; /** * Public YouTube URL for the Short. Populated whenever the provider has data for the entity. * Format: uri. @@ -644,10 +645,10 @@ export interface YoutubeSearchHashtagInput { */ preferLatencyUnderMs?: number; /** - * Content filter. - * One of: all, shorts. + * Content filter. Only "all" is served: no source we buy returns a Shorts row with the channel and publish time this endpoint requires. + * One of: all. */ - type?: "all" | "shorts"; + type?: "all"; } export interface YoutubeSearchHashtagVideo { @@ -690,6 +691,78 @@ export interface YoutubeSearchHashtagData { videos: YoutubeSearchHashtagVideo[]; } +/** + * Input for YouTube Shorts Search (youtube.search_shorts). + */ +export interface YoutubeSearchShortsInput { + /** + * Continuation token from a previous response for pagination. + */ + cursor?: string; + /** + * Optional; omit it and routing is unchanged, with the cheapest source serving. Prefer sources whose typical response time (median over the trailing 30 days, as published on this endpoint's lane health) is under this many milliseconds; among those, the cheapest serves. This can raise your price: when the cheapest source misses the target, a faster and dearer one serves, and you are quoted and charged its price. If no source is that fast the request is still served, by whichever source offers the best speed for its price - it is never refused for being slow. Sources we have not timed are tried last. This is a preference, not a guarantee: the median describes past requests and is not a ceiling on this one, and it excludes any wait this request itself asks for. On a paginated walk it applies to the first page only: later pages stay with the source that page chose, at the price it was quoted. + * Range: minimum 1. + */ + preferLatencyUnderMs?: number; + /** + * The keyword to search Shorts for. + */ + query: string; + /** + * Sort order: "relevance" (default) or "popular" (most-viewed). + * One of: relevance, popular. + * Default: relevance. + */ + sortBy?: "relevance" | "popular"; + /** + * Filter by upload recency. Omit for any time. + * One of: today, this_week, this_month, this_year. + */ + uploadDate?: "today" | "this_week" | "this_month" | "this_year"; +} + +export interface YoutubeSearchShortsShort { + /** + * Always "short": every row here comes from YouTube's Shorts shelf. + */ + contentType: string; + /** + * YouTube video id of the Short. Populated whenever the provider has data for the entity. + */ + id: string; + /** + * Title of the Short. Populated whenever the provider has data for the entity. + */ + title: string; + /** + * Watch URL for the Short. Populated whenever the provider has data for the entity. + */ + url: string; + /** + * View count, or 0 when the source did not publish one. Read viewsAvailable before trusting a 0. + */ + views: number; + /** + * False when the source published no view count, so views is a placeholder rather than a measured zero. + */ + viewsAvailable: boolean; + [extra: string]: unknown; +} + +/** + * The `data` payload of YouTube Shorts Search (youtube.search_shorts). + */ +export interface YoutubeSearchShortsData { + /** + * Opaque cursor for the next page of results, or null when there are no more. Pass it back as cursor to continue. + */ + nextCursor?: string | null; + /** + * Populated whenever the provider has data for the entity. + */ + shorts: YoutubeSearchShortsShort[]; +} + /** * Input for YouTube Trending Shorts (youtube.trending_shorts). */ @@ -742,7 +815,7 @@ export interface YoutubeTrendingShortsData { */ export interface YoutubeVideoInput { /** - * YouTube video ID. + * YouTube video ID. A Short uses the same ID as any other video. */ id?: string; /** @@ -751,7 +824,7 @@ export interface YoutubeVideoInput { */ preferLatencyUnderMs?: number; /** - * Full YouTube video URL. + * Full YouTube video URL. Shorts (youtube.com/shorts/...), youtu.be, live, and embed URLs all work. */ url?: string; } @@ -813,7 +886,7 @@ export interface YoutubeVideoCommentsInput { */ preferLatencyUnderMs?: number; /** - * Full YouTube video URL. + * Full YouTube video URL. Shorts (youtube.com/shorts/...) and youtu.be URLs also work. */ url: string; } @@ -905,7 +978,7 @@ export interface YoutubeVideoSponsorsData { */ export interface YoutubeVideoTranscriptInput { /** - * YouTube video ID. + * YouTube video ID. A Short uses the same ID as any other video. */ id?: string; /** @@ -914,7 +987,7 @@ export interface YoutubeVideoTranscriptInput { */ preferLatencyUnderMs?: number; /** - * Full YouTube video URL. + * Full YouTube video URL. Shorts (youtube.com/shorts/...), youtu.be, live, and embed URLs all work. */ url?: string; } @@ -976,7 +1049,7 @@ export interface YoutubeVideoTranscriptFullInput { */ preferLatencyUnderMs?: number; /** - * YouTube video URL (e.g. "https://www.youtube.com/watch?v=dQw4w9WgXcQ"). + * YouTube video or Short URL (e.g. "https://www.youtube.com/watch?v=dQw4w9WgXcQ" or "https://www.youtube.com/shorts/Fir1x9cw2vg"). */ url: string; } @@ -1415,6 +1488,46 @@ export class YoutubeNamespace { ); } + /** + * YouTube Shorts Search + * + * Search YouTube Shorts by keyword and get matching Shorts (title, views, URL) with cursor pagination as normalized JSON. + * + * Price: $0.002 per request. + * + * @example + * const res = await client.youtube.searchShorts({ query: "cats" }); + */ + searchShorts( + input: YoutubeSearchShortsInput, + options?: RequestOptions, + ): Promise> { + return this._core.run("youtube.search_shorts", input, options); + } + + /** + * Iterate every result of YouTube Shorts Search across pages. + * + * Yields items directly; call `.pages()` on the return value to walk whole + * result pages instead (each carries its own costUsd). + */ + iterSearchShorts( + input: YoutubeSearchShortsInput, + options?: RequestOptions, + ): Paginator> { + return paginate< + YoutubeSearchShortsShort, + RunResult + >( + this._core, + "youtube.search_shorts", + input as unknown as Record, + "shorts", + false, + options, + ); + } + /** * YouTube Trending Shorts * @@ -1435,7 +1548,7 @@ export class YoutubeNamespace { /** * YouTube Video * - * Fetch a YouTube video's metadata (title, channel, views, likes, duration, publish date) by URL or ID. + * Fetch a YouTube video or Short's metadata (title, channel, views, likes, duration, publish date) by URL or ID. * * Price: $0.00125 per request. * @@ -1452,7 +1565,7 @@ export class YoutubeNamespace { /** * YouTube Video Comments * - * List the comments on a YouTube video by URL with cursor pagination (text, author, likes, reply count). + * List the comments on a YouTube video or Short by URL with cursor pagination (text, author, likes, reply count). * * Price: $0.002 per request. * @@ -1512,7 +1625,7 @@ export class YoutubeNamespace { /** * YouTube Video Transcript * - * Fetch the transcript/captions of a YouTube video by URL or ID. + * Fetch the transcript/captions of a YouTube video or Short by URL or ID. * * Price: $0.00125 per request. * @@ -1529,9 +1642,9 @@ export class YoutubeNamespace { /** * YouTube Video Transcript (Provenance) * - * Fetch a YouTube transcript with timed segments and its provenance: whether the words are creator-written captions or machine speech recognition. + * Fetch a YouTube video or Short transcript with timed segments and its provenance: whether the words are creator-written captions or machine speech recognition. * - * Price: $0.00308 per request plus $0 per result (maximum $0.00308). + * Price: $0.001 per request. * * @example * const res = await client.youtube.videoTranscriptFull({ url: "https://www.youtube.com/watch?v=dQw4w9WgXcQ" }); diff --git a/packages/typescript/src/generated/sku-map.ts b/packages/typescript/src/generated/sku-map.ts index 8e17c3b..12ca2fe 100644 --- a/packages/typescript/src/generated/sku-map.ts +++ b/packages/typescript/src/generated/sku-map.ts @@ -830,6 +830,8 @@ import type { YoutubeSearchHashtagData, YoutubeSearchHashtagInput, YoutubeSearchInput, + YoutubeSearchShortsData, + YoutubeSearchShortsInput, YoutubeTrendingShortsData, YoutubeTrendingShortsInput, YoutubeVideoCommentsData, @@ -2614,6 +2616,11 @@ export interface SkuMap { data: YoutubeSearchHashtagData; result: RunResult; }; + "youtube.search_shorts": { + input: YoutubeSearchShortsInput; + data: YoutubeSearchShortsData; + result: RunResult; + }; "youtube.trending_shorts": { input: YoutubeTrendingShortsInput; data: YoutubeTrendingShortsData;