{"openapi":"3.1.0","info":{"title":"Vaaya","version":"1.0.0","description":"Pay-per-call agent services: media & video generation, web search & scraping, deep research, lead enrichment, memory, file storage, and more. Authenticate with a Vaaya API key (Authorization: Bearer vaaya_sk_..., see https://vaaya.ai/api-keys — one key unlocks every operation here), pay per request with x402 (USDC on Base, no account), or connect via OAuth/MCP at https://vaaya.ai/mcp for the full conversational catalog.","x-guidance":"Every paid operation is POST /api/run/{service}/{action} with a JSON body (schema per operation). Accountholders send Authorization: Bearer vaaya_sk_... (one API key covers every operation; docs at https://vaaya.ai/docs/reference); accountless agents pay the x402 challenge exactly as returned (fixed USDC amounts on Base). Billing happens only on success and every call is capped at the listed price. Start with exa_search for web search, firecrawl_scrape for scraping, fal_upload + the media services for generation, mem0/zep/letta for memory. GET the same URL for a free descriptor; GET /api/run for the full catalog. For multi-step workflows and dynamic-priced services use the MCP server at https://vaaya.ai/mcp (OAuth or API-key bearer, consult-driven).","contact":{"name":"Vaaya Support","email":"support@vaaya.ai","url":"https://vaaya.ai/docs"},"termsOfService":"https://vaaya.ai/terms","license":{"name":"Proprietary","url":"https://vaaya.ai/terms"},"x-api-versioning":"URL path versioning. Stable endpoints are namespaced under /api/v1/. The catalog runner /api/run/{service}/{action} is additive-only; any breaking change ships under a new version prefix (/api/v2/) and the old surface stays until its sunset date.","x-deprecation-policy":"A retiring endpoint returns `Deprecation: true` (RFC 9745) and a `Sunset: <HTTP-date>` (RFC 8594) header for at least 90 days before removal, with a `Link: <...>; rel=\"successor-version\"` pointer to the replacement.","x-rate-limits":"Every response carries the IETF RateLimit headers (RateLimit-Limit, RateLimit-Remaining, RateLimit-Reset in seconds, and RateLimit-Policy) so agents can self-throttle. On 429 honour Retry-After before retrying. Separate limits also apply to agent signup (per source IP, per hour) and to concurrent in-flight calls per account."},"servers":[{"url":"https://vaaya.ai","description":"Production"}],"components":{"schemas":{"Error":{"type":"object","properties":{"error":{"type":"string","description":"Stable, machine-readable error code","examples":["invalid_token","x402_not_sellable","rate_limited","insufficient_balance","upstream_error"]},"message":{"type":"string","description":"Human-readable explanation"},"ok":{"type":"boolean","const":false,"description":"Present on envelope-shaped failures"},"data":{"description":"Partial/diagnostic payload, when available"}},"required":["error"]}},"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Vaaya API key (vaaya_sk_…, see https://vaaya.ai/api-keys) or OAuth access token (scope vaaya:pay)"}}},"paths":{"/api/run/fal/upload":{"post":{"operationId":"fal_upload","summary":"fal/upload","description":"Stage a media file on the fal CDN before a fal generation. Returns { upload_url, file_url }: PUT the raw file bytes to upload_url (with the matching Content-Type header), then pass file_url as the image_url/video_url/audio_url param of the generation. Upload originals UNCOMPRESSED — never downscale or re-encode; high-res inputs cost nothing extra and compression degrades outputs.","tags":["fal"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"file_name":{"type":"string","minLength":1},"content_type":{"type":"string","minLength":1}},"required":["file_name","content_type"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/cueframe/upload":{"post":{"operationId":"cueframe_upload","summary":"cueframe/upload","description":"Step 1 of video assembly. Stage an asset you've ALREADY uploaded to Vaaya Files onto CueFrame. First `files/upload` the asset (screen recording, narration/music audio, b-roll/video clip) → you get a `file_id`; then call this with that `file_id`. Vaaya imports it onto CueFrame from your stored copy and returns `{ media_id, status }` — reference `media_id` in put_composition. You do NOT handle CueFrame upload URLs/tokens; Vaaya does the transfer. Params: file_id (required, from files/upload), optional contentType override. Content type must be one CueFrame accepts: video (mp4/quicktime/mkv/webm), audio (mpeg/wav/x-wav/mp4/aac), or image (png/jpeg/webp). Returns the media_id immediately; the import finishes processing server-side.","tags":["cueframe"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"file_id":{"type":"string","minLength":1},"filename":{"type":"string","minLength":1,"maxLength":500},"contentType":{"type":"string","minLength":1}},"required":["file_id"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/cueframe/create_project":{"post":{"operationId":"cueframe_create_project","summary":"cueframe/create_project","description":"Step 2 of video assembly. Create a CueFrame project for any video style (1A demo, 1B PIP-avatar, 1C conceptual, 1D launch). Returns `{ id }` (the project_id) used by put_composition + render. Params: name (required), format {aspectRatio 16:9|9:16|1:1|4:5, fps 24|30|60, resolution hd|fhd|4k}, optional brandKitId.","tags":["cueframe"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200}},"required":["name"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/cueframe/put_composition":{"post":{"operationId":"cueframe_put_composition","summary":"cueframe/put_composition","description":"Step 3 of video assembly. Set the project's composition (the edit). Params: project_id (required) + the full composition object (pass its fields — v/format/tracks — at the top level alongside project_id; a nested `composition: {...}` wrapper is also accepted and unwrapped). Composition shape (CueFrame `Composition`): `{ v:1, format:{ aspectRatio:16:9|9:16|1:1|4:5, fps:24|30|60, resolution:hd|fhd|4k }, tracks:[{ id, kind:video|audio|image|overlay|effect, contents:[ clip ] }] }`. A clip = `{ id, startTime, duration, source, opacity?, scale?, rotation?, position?, region?, fit?, effects?, transitionIn? }`. A `source` is one of: `{ kind:\"media\", mediaId, trim:{start,end}, volume?(0–4), muted?, loop?, fadeInMs?, fadeOutMs?, kenBurns?, excludedRanges?, reframe:{ segments:[{ startSec, endSec, zoom, focus:{mode:\"point\",x,y}|{mode:\"frame-center\"}|{mode:\"face\"|...}, ease?:{in,out}, bias?:{x,y} }] } }` (reframe = the 1A autoZoom engine), `{ kind:\"component\", componentId, props }`, `{ kind:\"effect\", primitiveId, params }`, or an overlay `{ kind:\"overlay\", primitiveId, params, zPlane?, anchor?, parallax? }` (overlay `primitiveId`s come from CueFrame's /registry/overlays — overlays use primitiveId+params, NOT type/at/position). Prefer to let `consult` author this JSON — upload your assets to Vaaya Files, call `consult` with the manifest, and run the returned call; Vaaya has the taste for a tight demo.","tags":["cueframe"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"project_id":{"type":"string","minLength":1}},"required":["project_id"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/cueframe/validate":{"post":{"operationId":"cueframe_validate","summary":"cueframe/validate","description":"Dry-run validate a composition WITHOUT saving or rendering. Pass the bare Composition (its v/format/tracks fields at the top level; a nested `composition: {...}` wrapper is also accepted). Returns `{ valid: boolean, errors: [{ code, stage, category, retryable, message, fix? }] }`. ALWAYS validate before `put_composition` + `render`: CueFrame silently drops clips that fail validation (e.g. reframe `zoom` > 1.0), so an invalid edit renders as \"Composition has no scenes\" and wastes a paid render. Fix every error (use the `fix` hint) until `valid:true`, then put_composition + render.","tags":["cueframe"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/cueframe/render":{"post":{"operationId":"cueframe_render","summary":"cueframe/render","description":"Step 4 of video assembly. Render the project to a finished MP4. Async: returns a job_id (the renderId); poll with `result` for the output URL — never re-run render to \"check\" (that starts a new paid render). Render intent:\"preview\" first for a fast cheap draft to review the cut, then intent:\"final\" for the full-resolution master. Params: project_id (required), intent (preview|final), optional format {aspectRatio,fps,resolution}, priority (\"standard\" (default) or \"background\" — NEVER \"interactive\"; interactive is reserved for editor-session tokens and returns 403 for API callers).","tags":["cueframe"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"1.000000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"project_id":{"type":"string","minLength":1},"intent":{"type":"string","enum":["preview","final"]}},"required":["project_id"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/vaaya/consult":{"post":{"operationId":"vaaya_consult","summary":"vaaya/consult","description":"Vaaya — one paid endpoint for agents. Describe any goal in plain English and get back the exact Vaaya calls to run: image & video generation, product-demo videos, web search & scraping, deep & market research, GTM lead enrichment & outreach, code sandboxes, browser automation, email, and persistent memory. Returns ready-to-run { service, action, params } calls with prices — then POST each to /api/run/{service}/{action}. Pay-per-call in USDC on Base (x402), no account or API key.","tags":["vaaya"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"intent":{"type":"string","minLength":1,"maxLength":2000}},"required":["intent"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/vaaya/fetch":{"post":{"operationId":"vaaya_fetch","summary":"vaaya/fetch","description":"Vaaya — fetch any public https URL and, when it answers 402 with an x402 or MPP payment challenge, pay it from your balance (up to your max_cost_cents) and return the resource. A URL that serves without payment comes back at 0¢. Pass { url, method?, headers?, body? }. Hard cap $5 per call; you pay the merchant's actual settle. Private, internal and Vaaya hosts are refused.","tags":["vaaya"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"5.000000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","minLength":8,"maxLength":2000},"method":{"type":"string","enum":["GET","POST","PUT","PATCH","DELETE"],"default":"GET"},"headers":{"type":"object","additionalProperties":{"type":"string","maxLength":4000},"propertyNames":{"minLength":1,"maxLength":100}},"body":{}},"required":["url"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/vaaya/onesearch":{"post":{"operationId":"vaaya_onesearch","summary":"vaaya/onesearch","description":"Vaaya OneSearch: answer a question with cited evidence, in one call. Pass `query` in plain English; an intent classifier picks the facets, races independent indexes when the question is time-critical, and fetches full page content when fidelity matters. Returns `evidence`, each item with url, title, snippet, optional full `content`, `source` (vendor/action) and the `tx_id` it came from. To route it yourself, add any of: `facets` (one or more of web, docs, news, academic, code, public-filings, funding, financials, legal, nonprofits, regulatory, compliance; default [\"web\"]), `timeCritical`, `fidelityRequired` (docs come back as complete markdown, never summarized), `recencyDays`, `domains` / `excludeDomains`, `urls` (skip search and extract these), `asOf` (YYYYMMDD, Wayback copy), `maxResults`. Flat 5¢ per call; the internal source calls are included. Not charged when every source failed. For people use onefind; for pages you already have use the scraping vendors.","tags":["vaaya"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.050000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","minLength":1,"maxLength":2000},"facets":{"type":"array","items":{"type":"string","enum":["web","docs","news","academic","code","public-filings","compliance","funding","financials","legal","nonprofits","regulatory","scrape","scrape-hard","social"]},"minItems":1,"maxItems":15,"default":["web"]},"timeCritical":{"type":"boolean"},"fidelityRequired":{"type":"boolean"},"recencyDays":{"type":"integer","minimum":1,"maximum":3650},"domains":{"type":"array","items":{"type":"string","minLength":1},"maxItems":10},"excludeDomains":{"type":"array","items":{"type":"string","minLength":1},"maxItems":10},"urls":{"type":"array","items":{"type":"string","format":"uri"},"minItems":1,"maxItems":5},"asOf":{"type":"string","pattern":"^\\d{4,14}$"},"maxResults":{"type":"integer","minimum":1,"maximum":25},"platform":{"type":"string","enum":["tiktok","instagram","youtube","twitter","weibo","reddit"]},"budgetCents":{"type":"integer","minimum":1,"maximum":4}},"required":["query"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/vaaya/supersearch":{"post":{"operationId":"vaaya_supersearch","summary":"vaaya/supersearch","description":"Deprecated alias of vaaya/onesearch. Same inputs, same flat 5¢. Call onesearch instead.","tags":["vaaya"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.050000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","minLength":1,"maxLength":2000},"facets":{"type":"array","items":{"type":"string","enum":["web","docs","news","academic","code","public-filings","compliance","funding","financials","legal","nonprofits","regulatory","scrape","scrape-hard","social"]},"minItems":1,"maxItems":15,"default":["web"]},"timeCritical":{"type":"boolean"},"fidelityRequired":{"type":"boolean"},"recencyDays":{"type":"integer","minimum":1,"maximum":3650},"domains":{"type":"array","items":{"type":"string","minLength":1},"maxItems":10},"excludeDomains":{"type":"array","items":{"type":"string","minLength":1},"maxItems":10},"urls":{"type":"array","items":{"type":"string","format":"uri"},"minItems":1,"maxItems":5},"asOf":{"type":"string","pattern":"^\\d{4,14}$"},"maxResults":{"type":"integer","minimum":1,"maximum":25},"platform":{"type":"string","enum":["tiktok","instagram","youtube","twitter","weibo","reddit"]},"budgetCents":{"type":"integer","minimum":1,"maximum":4}},"required":["query"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/vaaya/onefind":{"post":{"operationId":"vaaya_onefind","summary":"vaaya/onefind","description":"Vaaya OneFind: find people from a plain-English query, as rows. Pass `query`, either a description (\"series A fintech founders in India\", \"heads of talent at Series B startups\") for a table of people, or a name + company (\"Jerry Liu LlamaIndex\") for that one person (the response says which: `person: true/false`), plus optional `limit` (1–25, default 15). Returns `rows`, each with name, title, company, location, linkedin and per-field `sources`. Contact fields (email, phone) are null and `enriched: false`: this tier finds, it does not buy contact data. Flat 2¢ per call regardless of rows. To add emails/phones, call onefind-deep with the same query or with `rows: [<linkedin urls>]` for the people you pick. For one known person (an email or LinkedIn URL), use onefind-deep directly; this call refuses identifiers without charging.","tags":["vaaya"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.020000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","minLength":2,"maxLength":500},"limit":{"type":"integer","minimum":1,"maximum":25,"default":15}},"required":["query"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/files/upload":{"post":{"operationId":"files_upload","summary":"files/upload","description":"Store a file from the local machine in your persistent Vaaya file library. Returns put_url (PUT the raw bytes there with curl) plus file_id and get_url. Files persist across tasks — check files/list before re-uploading. Max 100MB per file.","tags":["files"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":200},"size_bytes":{"type":"integer","exclusiveMinimum":0,"maximum":104857600},"mime":{"type":"string","maxLength":100},"tags":{"type":"array","items":{"type":"string","minLength":1,"maxLength":40},"maxItems":10},"note":{"type":"string","maxLength":500}},"required":["filename","size_bytes"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/files/upload_from_url":{"post":{"operationId":"files_upload_from_url","summary":"files/upload_from_url","description":"Fetch a file from a public URL into your persistent Vaaya file library (server-side — no local download needed). Returns file_id and get_url. Max 100MB per file.","tags":["files"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"filename":{"type":"string","minLength":1,"maxLength":200},"tags":{"type":"array","items":{"type":"string","minLength":1,"maxLength":40},"maxItems":10},"note":{"type":"string","maxLength":500}},"required":["url"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/rentcast/properties":{"post":{"operationId":"rentcast_properties","summary":"rentcast/properties","description":"RentCast — Look up US property RECORDS (150M+ properties): structural attributes, features, tax assessments + tax history, sale history, owner names/type. One exact property: pass `address` (\"Street, City, State, Zip\"). Area search: `zipCode` or `city`+`state` (both case-sensitive) or `latitude`+`longitude`+`radius` (miles, max 100), with filters `propertyType`, `bedrooms`/`bathrooms`/`squareFootage`/`lotSize`/`yearBuilt` (ranges like \"2-4\" supported), `limit` (default 50, max 100) + `offset` to page. Records, not listings — for what is FOR SALE/RENT use rentcast/sale-listings or rentcast/rental-listings.","tags":["rentcast"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.300000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","minLength":3},"city":{"type":"string","minLength":1},"state":{"type":"string","minLength":2,"maxLength":2},"zipCode":{"type":"string","pattern":"^\\d{5}$"},"latitude":{"type":"number"},"longitude":{"type":"number"},"radius":{"type":"number","exclusiveMinimum":0,"maximum":100},"propertyType":{"type":"string","enum":["Single Family","Condo","Townhouse","Manufactured","Multi-Family","Apartment","Land"]},"bedrooms":{"anyOf":[{"type":"string","minLength":1},{"type":"number"}]},"bathrooms":{"anyOf":[{"type":"string","minLength":1},{"type":"number"}]},"squareFootage":{"anyOf":[{"type":"string","minLength":1},{"type":"number"}]},"lotSize":{"anyOf":[{"type":"string","minLength":1},{"type":"number"}]},"yearBuilt":{"anyOf":[{"type":"string","minLength":1},{"type":"number"}]},"limit":{"type":"integer","minimum":1,"maximum":100},"offset":{"type":"integer","minimum":0},"saleDateRange":{"anyOf":[{"type":"string","minLength":1},{"type":"number"}]}},"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/rentcast/value-estimate":{"post":{"operationId":"rentcast_value_estimate","summary":"rentcast/value-estimate","description":"RentCast — Property VALUE estimate (AVM): estimated sale price + priceRangeLow/High + the ranked comparable listings used (sorted by correlation). Pass `address` (\"Street, City, State, Zip\") or `latitude`+`longitude`; subject attributes are auto-looked-up, or override with `propertyType`, `bedrooms` (0 = studio), `bathrooms`, `squareFootage`. Tune comps with `maxRadius` (miles), `daysOld`, `compCount` (5-25, default 15).","tags":["rentcast"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.350000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","minLength":3},"latitude":{"type":"number"},"longitude":{"type":"number"},"propertyType":{"type":"string","enum":["Single Family","Condo","Townhouse","Manufactured","Multi-Family","Apartment","Land"]},"bedrooms":{"type":"number","minimum":0},"bathrooms":{"type":"number","minimum":0},"squareFootage":{"type":"number","exclusiveMinimum":0},"maxRadius":{"type":"number","exclusiveMinimum":0},"daysOld":{"type":"integer","minimum":1},"compCount":{"type":"integer","minimum":5,"maximum":25}},"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/rentcast/rent-estimate":{"post":{"operationId":"rentcast_rent_estimate","summary":"rentcast/rent-estimate","description":"RentCast — Monthly RENT estimate (long-term AVM): rent + rentRangeLow/High + the ranked comparable rental listings used. Same request shape as rentcast/value-estimate: `address` or `latitude`+`longitude`, optional `propertyType`/`bedrooms`/`bathrooms`/`squareFootage` overrides, comps tuning via `maxRadius`/`daysOld`/`compCount` (5-25).","tags":["rentcast"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.350000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","minLength":3},"latitude":{"type":"number"},"longitude":{"type":"number"},"propertyType":{"type":"string","enum":["Single Family","Condo","Townhouse","Manufactured","Multi-Family","Apartment","Land"]},"bedrooms":{"type":"number","minimum":0},"bathrooms":{"type":"number","minimum":0},"squareFootage":{"type":"number","exclusiveMinimum":0},"maxRadius":{"type":"number","exclusiveMinimum":0},"daysOld":{"type":"integer","minimum":1},"compCount":{"type":"integer","minimum":5,"maximum":25}},"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/rentcast/sale-listings":{"post":{"operationId":"rentcast_sale_listings","summary":"rentcast/sale-listings","description":"RentCast — Properties FOR SALE: active (default) or historical sale listings with price, status, days on market, agent/office contacts, listing history. Location required (`address` / `zipCode` / `city`+`state` / `latitude`+`longitude`+`radius`); filters `propertyType`, `bedrooms`/`bathrooms`/`squareFootage`/`lotSize`/`yearBuilt`/`price` (range syntax \"300000-500000\"), `status` (Active|Inactive), `daysOld` (listed within N days), `limit` (default 50, max 100) + `offset`.","tags":["rentcast"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.300000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","minLength":3},"city":{"type":"string","minLength":1},"state":{"type":"string","minLength":2,"maxLength":2},"zipCode":{"type":"string","pattern":"^\\d{5}$"},"latitude":{"type":"number"},"longitude":{"type":"number"},"radius":{"type":"number","exclusiveMinimum":0,"maximum":100},"propertyType":{"type":"string","enum":["Single Family","Condo","Townhouse","Manufactured","Multi-Family","Apartment","Land"]},"bedrooms":{"anyOf":[{"type":"string","minLength":1},{"type":"number"}]},"bathrooms":{"anyOf":[{"type":"string","minLength":1},{"type":"number"}]},"squareFootage":{"anyOf":[{"type":"string","minLength":1},{"type":"number"}]},"lotSize":{"anyOf":[{"type":"string","minLength":1},{"type":"number"}]},"yearBuilt":{"anyOf":[{"type":"string","minLength":1},{"type":"number"}]},"limit":{"type":"integer","minimum":1,"maximum":100},"offset":{"type":"integer","minimum":0},"status":{"type":"string","enum":["Active","Inactive"]},"price":{"anyOf":[{"type":"string","minLength":1},{"type":"number"}]},"daysOld":{"anyOf":[{"type":"string","minLength":1},{"type":"number"}]}},"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/rentcast/rental-listings":{"post":{"operationId":"rentcast_rental_listings","summary":"rentcast/rental-listings","description":"RentCast — Properties FOR RENT: active (default) or historical long-term rental listings with asking rent, status, days on market, listing history. Same request shape as rentcast/sale-listings (`price` filters the monthly rent).","tags":["rentcast"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.300000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","minLength":3},"city":{"type":"string","minLength":1},"state":{"type":"string","minLength":2,"maxLength":2},"zipCode":{"type":"string","pattern":"^\\d{5}$"},"latitude":{"type":"number"},"longitude":{"type":"number"},"radius":{"type":"number","exclusiveMinimum":0,"maximum":100},"propertyType":{"type":"string","enum":["Single Family","Condo","Townhouse","Manufactured","Multi-Family","Apartment","Land"]},"bedrooms":{"anyOf":[{"type":"string","minLength":1},{"type":"number"}]},"bathrooms":{"anyOf":[{"type":"string","minLength":1},{"type":"number"}]},"squareFootage":{"anyOf":[{"type":"string","minLength":1},{"type":"number"}]},"lotSize":{"anyOf":[{"type":"string","minLength":1},{"type":"number"}]},"yearBuilt":{"anyOf":[{"type":"string","minLength":1},{"type":"number"}]},"limit":{"type":"integer","minimum":1,"maximum":100},"offset":{"type":"integer","minimum":0},"status":{"type":"string","enum":["Active","Inactive"]},"price":{"anyOf":[{"type":"string","minLength":1},{"type":"number"}]},"daysOld":{"anyOf":[{"type":"string","minLength":1},{"type":"number"}]}},"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/rentcast/market-stats":{"post":{"operationId":"rentcast_market_stats","summary":"rentcast/market-stats","description":"RentCast — MARKET statistics for one zip code: average/median/min/max sale prices and rents, price per sqft, days on market, listing counts — segmented by property type and bedroom count, with monthly history. REQUIRED: `zipCode` (5-digit). Optional `dataType` (All|Sale|Rental, default All), `historyRange` (months, default 12; sale history from Jan 2024, rental from Apr 2020).","tags":["rentcast"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.300000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"zipCode":{"type":"string","pattern":"^\\d{5}$"},"dataType":{"type":"string","enum":["All","Sale","Rental"]},"historyRange":{"type":"integer","minimum":1,"maximum":120}},"required":["zipCode"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/realestateapi/autocomplete":{"post":{"operationId":"realestateapi_autocomplete","summary":"realestateapi/autocomplete","description":"RealEstateAPI — Resolve a PARTIAL address/city/zip/county string to canonical, searchable values (the disambiguation step before a search or lookup). Pass `search` (3+ chars); optional `search_types` filters the result kinds: A address, C city+state, G neighborhood, N county, T state, Z zip. Returns candidates with the formatted `address`, city/state/zip, county, fips, apn, lat/long and the RealEstateAPI `id` to feed realestateapi/property-detail. Cheap — use it whenever the user address is messy rather than guessing a format.","tags":["realestateapi"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"search":{"type":"string","minLength":3},"search_types":{"type":"array","items":{"type":"string","enum":["A","C","G","N","P","T","Z"]},"minItems":1},"latitude":{"type":"number"},"longitude":{"type":"number"},"precision":{"type":"integer","minimum":1,"maximum":10}},"required":["search"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/realestateapi/property-detail":{"post":{"operationId":"realestateapi_property_detail","summary":"realestateapi/property-detail","description":"RealEstateAPI — Full RECORD for ONE property (1 record, flat 20¢): 200+ fields covering structure, lot, owner + mailing address, absentee/corporate/occupancy flags, tax assessment history, sale + deed history, mortgages (balance, rate, maturity, lender), estimated value/equity, MLS status and price, flood zone, foreclosure and lien flags. Identify the property by `id` (from autocomplete/property-search), formatted `address`, house+street+city+state+zip, or apn+fips. For comparable sales use realestateapi/property-comps, which bounds how many comps you buy.","tags":["realestateapi"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.200000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"anyOf":[{"type":"string","minLength":1},{"type":"number"}]},"address":{"type":"string","minLength":5},"house":{"type":"string","minLength":1},"street":{"type":"string","minLength":1},"unit":{"type":"string","minLength":1},"city":{"type":"string","minLength":1},"state":{"type":"string","minLength":2,"maxLength":2},"zip":{"type":"string","pattern":"^\\d{5}$"},"county":{"type":"string","minLength":1},"apn":{"type":"string","minLength":1},"fips":{"type":"string","minLength":1},"exact_match":{"type":"boolean"},"prior_owner":{"type":"boolean"}},"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/realestateapi/avm":{"post":{"operationId":"realestateapi_avm","summary":"realestateapi/avm","description":"RealEstateAPI — LENDER-GRADE AVM for one property: `avm` (point value), `avmMin`/`avmMax` range and a `confidence` score 0-100, plus apn/fips and the matched address. Identify by `address` or `id`; `strict: true` refuses a fuzzy address match instead of valuing the wrong house. Returns 404 when the address cannot be confidently matched.","tags":["realestateapi"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.250000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"anyOf":[{"type":"string","minLength":1},{"type":"number"}]},"address":{"type":"string","minLength":5},"house":{"type":"string","minLength":1},"street":{"type":"string","minLength":1},"unit":{"type":"string","minLength":1},"city":{"type":"string","minLength":1},"state":{"type":"string","minLength":2,"maxLength":2},"zip":{"type":"string","pattern":"^\\d{5}$"},"county":{"type":"string","minLength":1},"apn":{"type":"string","minLength":1},"fips":{"type":"string","minLength":1},"strict":{"type":"boolean"}},"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/realestateapi/skiptrace":{"post":{"operationId":"realestateapi_skiptrace","summary":"realestateapi/skiptrace","description":"RealEstateAPI — SKIP TRACE a property owner or person to contact data: returns matched persons with full name, age, gender, phone numbers (type, carrier, DNC flag), email addresses, current + previous addresses, and demographic codes. Address input needs the peers together: `address`+`city`+`state` (or `zip`), optionally `unit` and the mail_* variants; or trace a person directly with `first_name`+`last_name`+location, or by `phone` / `email`. This returns personal contact data — only call it when the user is doing owner outreach.","tags":["realestateapi"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.250000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","minLength":3},"unit":{"type":"string","minLength":1},"city":{"type":"string","minLength":1},"state":{"type":"string","minLength":2,"maxLength":2},"zip":{"type":"string","pattern":"^\\d{5}$"},"mail_address":{"type":"string","minLength":3},"mail_unit":{"type":"string","minLength":1},"mail_city":{"type":"string","minLength":1},"mail_state":{"type":"string","minLength":2,"maxLength":2},"mail_zip":{"type":"string","pattern":"^\\d{5}$"},"first_name":{"type":"string","minLength":1},"last_name":{"type":"string","minLength":1},"phone":{"type":"string","minLength":7},"email":{"type":"string","format":"email"}},"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/realestateapi/parcel":{"post":{"operationId":"realestateapi_parcel","summary":"realestateapi/parcel","description":"RealEstateAPI — PARCEL BOUNDARY (GeoJSON) plus the core property record for one property: lot geometry for mapping, acreage, apn/fips, assessed + estimated value, owner and use code. Identify by `id`, formatted `address`, house+street+city+state+zip, apn+fips, or `latitude`+`longitude` (optional `radius`). Use it when the answer needs the shape of the lot, not just its attributes.","tags":["realestateapi"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.200000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"anyOf":[{"type":"string","minLength":1},{"type":"number"}]},"address":{"type":"string","minLength":5},"house":{"type":"string","minLength":1},"street":{"type":"string","minLength":1},"unit":{"type":"string","minLength":1},"city":{"type":"string","minLength":1},"state":{"type":"string","minLength":2,"maxLength":2},"zip":{"type":"string","pattern":"^\\d{5}$"},"county":{"type":"string","minLength":1},"apn":{"type":"string","minLength":1},"fips":{"type":"string","minLength":1},"latitude":{"type":"number"},"longitude":{"type":"number"},"radius":{"type":"number","exclusiveMinimum":0,"maximum":100},"polygon":{"type":"array","items":{"type":"object","properties":{"latitude":{"type":"number"},"longitude":{"type":"number"}},"required":["latitude","longitude"],"additionalProperties":false},"minItems":3},"size":{"type":"integer","minimum":1,"maximum":25},"resultIndex":{"type":"integer","minimum":0}},"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/firecrawl/scrape":{"post":{"operationId":"firecrawl_scrape","summary":"firecrawl/scrape","description":"Firecrawl — Scrape a single URL and return clean markdown/HTML.","tags":["firecrawl"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"formats":{"type":"array","items":{"type":"string"}},"onlyMainContent":{"type":"boolean"},"waitFor":{"type":"integer","exclusiveMinimum":0}},"required":["url"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/firecrawl/crawl":{"post":{"operationId":"firecrawl_crawl","summary":"firecrawl/crawl","description":"Firecrawl — Crawl a website starting from a URL, following links.","tags":["firecrawl"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"limit":{"type":"integer","exclusiveMinimum":0},"maxDepth":{"type":"integer","exclusiveMinimum":0}},"required":["url"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/firecrawl/map":{"post":{"operationId":"firecrawl_map","summary":"firecrawl/map","description":"Firecrawl — Map all URLs on a website without scraping content.","tags":["firecrawl"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri"}},"required":["url"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/firecrawl/search":{"post":{"operationId":"firecrawl_search","summary":"firecrawl/search","description":"Firecrawl — Search the web and return scraped results.","tags":["firecrawl"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","minLength":1},"limit":{"type":"integer","exclusiveMinimum":0}},"required":["query"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/firecrawl/extract":{"post":{"operationId":"firecrawl_extract","summary":"firecrawl/extract","description":"Firecrawl — Extract structured data from URLs using a schema.","tags":["firecrawl"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"urls":{"type":"array","items":{"type":"string","format":"uri"}},"prompt":{"type":"string"},"schema":{"type":"object","additionalProperties":{}}},"required":["urls"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/crw/scrape":{"post":{"operationId":"crw_scrape","summary":"crw/scrape","description":"CRW — Scrape a single URL to clean markdown/HTML/JSON (Firecrawl-compatible). Pass `url`; optional `formats` (markdown|html|rawHtml|plainText|links|json|summary|screenshot, default markdown), `onlyMainContent` (default true), `renderJs` (null = auto-detect), `waitFor` (ms), `stealth` (anti-bot browser), `country` (2-letter proxy egress), `jsonSchema` (structured output). Sync — returns the scraped content directly. Cheapest full-featured scrape rung.","tags":["crw"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"formats":{"type":"array","items":{"type":"string"}},"onlyMainContent":{"type":"boolean"},"renderJs":{"type":["boolean","null"]},"waitFor":{"type":"integer","minimum":0},"stealth":{"type":"boolean"},"country":{"type":"string","minLength":2,"maxLength":2},"jsonSchema":{"type":"object","additionalProperties":{}}},"required":["url"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/crw/search":{"post":{"operationId":"crw_search","summary":"crw/search","description":"CRW — Search the web and optionally scrape the hits in one call. Pass `query`; optional `limit` (1-20, default 5), `tbs` (freshness: qdr:h|d|w|m|y), `sources` (web|news|images), `lang`, and `scrapeOptions` ({ formats, onlyMainContent }) to return full page content per hit instead of snippets.","tags":["crw"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","minLength":1,"maxLength":2000},"limit":{"type":"integer","minimum":1,"maximum":20},"tbs":{"type":"string","enum":["qdr:h","qdr:d","qdr:w","qdr:m","qdr:y"]},"sources":{"type":"array","items":{"type":"string","enum":["web","news","images"]}},"lang":{"type":"string","minLength":2,"maxLength":5},"scrapeOptions":{"type":"object","additionalProperties":{}}},"required":["query"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/crw/map":{"post":{"operationId":"crw_map","summary":"crw/map","description":"CRW — Discover the URLs of a website without scraping content (sitemap + crawl fallback). Pass `url`; optional `maxDepth`, `useSitemap` (default true), `timeout` (seconds, default 120). Recon step before targeted crw/scrape or crw/crawl.","tags":["crw"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"maxDepth":{"type":"integer","minimum":0},"useSitemap":{"type":"boolean"},"timeout":{"type":"integer","exclusiveMinimum":0}},"required":["url"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/crw/crawl":{"post":{"operationId":"crw_crawl","summary":"crw/crawl","description":"CRW — Start an ASYNC multi-page crawl from a seed URL, following links. Pass `url`; optional `maxPages` (1-100, default 100 — vendor bills 1 credit/page so keep it tight), `maxDepth` (default 2), `formats`, `onlyMainContent`, `renderJs`. Returns `{ id }` immediately; KEEP POLLING `crw/crawl_status` with that id until status is completed/failed. One price covers the whole job.","tags":["crw"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.100000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"maxPages":{"type":"integer","minimum":1,"maximum":100},"maxDepth":{"type":"integer","minimum":0},"formats":{"type":"array","items":{"type":"string"}},"onlyMainContent":{"type":"boolean"},"renderJs":{"type":["boolean","null"]}},"required":["url"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/crw/crawl_status":{"post":{"operationId":"crw_crawl_status","summary":"crw/crawl_status","description":"CRW — Poll an async crawl started by crw/crawl. Pass `id` (from the crawl response). Returns `{ status: scraping|completed|failed|cancelled, completed, total, data }` — `data` holds the scraped pages once completed. Poll every few seconds until status leaves `scraping`.","tags":["crw"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","minLength":1}},"required":["id"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/crw/extract":{"post":{"operationId":"crw_extract","summary":"crw/extract","description":"CRW — Structured extraction over up to 10 URLs using an LLM. Pass `urls` plus `prompt` (natural language) and/or `schema` (JSON schema); optional `basis: true` for per-field source evidence. Usually returns the extracted objects INLINE and already complete: `{ results: [{ url, status: completed, data }] }` — read `data` directly, do not poll. The extracted object may be nested one level (`data.data`) on multi-URL calls; unwrap defensively. If a call instead returns `{ id, status: processing }`, poll `crw/extract_status` with that id.","tags":["crw"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.050000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"urls":{"type":"array","items":{"type":"string","format":"uri"},"minItems":1,"maxItems":10},"prompt":{"type":"string","minLength":1},"schema":{"type":"object","additionalProperties":{}},"basis":{"type":"boolean"}},"required":["urls"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/crw/extract_status":{"post":{"operationId":"crw_extract_status","summary":"crw/extract_status","description":"CRW — Poll an async extraction started by crw/extract, on the rare occasions it returns an `id` instead of inline results. Pass `id`. Returns `{ status: processing|completed|failed|cancelled, results: [{ url, status, data, error }] }` — `data` holds the extracted object per URL once completed. Only call this if crw/extract actually handed you an `id`; it normally does not.","tags":["crw"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","minLength":1}},"required":["id"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/scrapingant/scrape":{"post":{"operationId":"scrapingant_scrape","summary":"scrapingant/scrape","description":"ScrapingAnt — Scrape a URL through a managed headless-Chrome cluster (datacenter proxies). Pass `url`; optional `browser` (default true — set false for plain HTTP fetch), `wait_for_selector` (CSS selector to await), `js_snippet` (base64 JS to execute on the page), `block_resource`, `proxy_country` (2-letter), `timeout` (5-60s), `cookies`, `return_page_source`. Returns the rendered page as `{ raw: \"<html>…\" }`. For Cloudflare/anti-bot-walled pages use scrapingant/scrape_residential.","tags":["scrapingant"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"browser":{"type":"boolean"},"return_page_source":{"type":"boolean"},"wait_for_selector":{"type":"string","minLength":1},"js_snippet":{"type":"string","minLength":1},"block_resource":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"proxy_country":{"type":"string","minLength":2,"maxLength":2},"timeout":{"type":"integer","minimum":5,"maximum":60},"cookies":{"type":"string","minLength":1}},"required":["url"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/scrapingant/scrape_residential":{"post":{"operationId":"scrapingant_scrape_residential","summary":"scrapingant/scrape_residential","description":"ScrapingAnt — Scrape a HARD page through the 3M+ residential-proxy pool + headless Chrome: Cloudflare and anti-bot walls, geo-fenced content, sites that block datacenter IPs. Same params as scrapingant/scrape (`url` + browser/wait_for_selector/js_snippet/proxy_country/timeout/cookies). Returns `{ raw: \"<html>…\" }`. NOT the first escalation any more — brightdata/unblock (2¢) is half the price and beat this outright on a live DataDome page. Use this as a SECOND OPINION when brightdata/unblock fails or is unavailable, or when a different residential pool might win.","tags":["scrapingant"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.040000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"browser":{"type":"boolean"},"return_page_source":{"type":"boolean"},"wait_for_selector":{"type":"string","minLength":1},"js_snippet":{"type":"string","minLength":1},"block_resource":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"proxy_country":{"type":"string","minLength":2,"maxLength":2},"timeout":{"type":"integer","minimum":5,"maximum":60},"cookies":{"type":"string","minLength":1}},"required":["url"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/scrapingant/markdown":{"post":{"operationId":"scrapingant_markdown","summary":"scrapingant/markdown","description":"ScrapingAnt — Scrape a URL and return LLM-ready markdown (rendered in headless Chrome, then converted). Pass `url`; optional browser/wait_for_selector/proxy_country/timeout knobs. Returns `{ url, markdown }`. Alternative to crw/scrape or firecrawl/scrape when you want ScrapingAnt's proxy pool behind the fetch.","tags":["scrapingant"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"browser":{"type":"boolean"},"return_page_source":{"type":"boolean"},"wait_for_selector":{"type":"string","minLength":1},"js_snippet":{"type":"string","minLength":1},"block_resource":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"proxy_country":{"type":"string","minLength":2,"maxLength":2},"timeout":{"type":"integer","minimum":5,"maximum":60},"cookies":{"type":"string","minLength":1}},"required":["url"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/scrapingant/extract":{"post":{"operationId":"scrapingant_extract","summary":"scrapingant/extract","description":"ScrapingAnt — AI data extraction WITHOUT a schema: describe the fields in plain English and get structured JSON back. Pass `url` and `extract_properties` — a comma-separated list like 'product title, price(number), full description, reviews(list: review title, review content)'. Optional browser/wait_for_selector/proxy_country/timeout knobs. Vendor cost scales with page length (1 credit per 30 chars of markdown) — prefer crw/extract (schema-driven, 5¢) for big pages; this rung is for quick no-schema pulls.","tags":["scrapingant"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.200000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"browser":{"type":"boolean"},"return_page_source":{"type":"boolean"},"wait_for_selector":{"type":"string","minLength":1},"js_snippet":{"type":"string","minLength":1},"block_resource":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"proxy_country":{"type":"string","minLength":2,"maxLength":2},"timeout":{"type":"integer","minimum":5,"maximum":60},"cookies":{"type":"string","minLength":1},"extract_properties":{"type":"string","minLength":3,"maxLength":2000}},"required":["url","extract_properties"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/brightdata/unblock":{"post":{"operationId":"brightdata_unblock","summary":"brightdata/unblock","description":"Bright Data Web Unlocker — Fetch a page that actively BLOCKS scrapers: Cloudflare/DataDome/PerimeterX walls, CAPTCHA challenges, aggressive bot detection, geo-fenced content. Bright Data rotates residential exit IPs, solves challenges and retries internally, then returns the final page as `{ raw: \"<html>…\" }`. Pass `url`; optional `country` (2-letter geo), `render` (execute JS first), `format` (\"raw\" page, default, or \"json\" for their envelope with status/headers). This is the FIRST escalation once a cheap rung comes back blocked — try firecrawl/scrape (1¢) or scrapingant/scrape (1¢), then come straight here. Do NOT pay for scrapingant/scrape_residential (4¢) first: it is twice the price and lost outright on a live DataDome page (2,641-byte challenge stub vs the real 1.19 MB page). That rung is now only a second opinion if this one fails.","tags":["brightdata"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.020000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"country":{"type":"string","minLength":2,"maxLength":2},"format":{"type":"string","enum":["raw","json"]},"render":{"type":"boolean"}},"required":["url"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/diffbot/analyze":{"post":{"operationId":"diffbot_analyze","summary":"diffbot/analyze","description":"Diffbot — Extract STRUCTURED, typed data from a URL: it classifies the page (article / product / discussion / image) and returns parsed fields — title, author, date, breadcrumb, categories, sentiment, language, plus clean text — instead of raw HTML or markdown. Pass `url`; optional `timeout` (ms, upstream fetch budget, raise for slow pages), `paging` (follow multi-page articles). Use INSTEAD of firecrawl/scrape + an LLM pass when you want typed fields deterministically and cheaply. NOTE it does NOT defeat bot protection — on a Cloudflare/DataDome page it returns \"could not download page\"; for those, call brightdata/unblock first and pass the HTML to diffbot/analyze_html.","tags":["diffbot"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"timeout":{"type":"integer","minimum":1000,"maximum":180000},"paging":{"type":"boolean"}},"required":["url"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/diffbot/analyze_html":{"post":{"operationId":"diffbot_analyze_html","summary":"diffbot/analyze_html","description":"Diffbot — Same structured extraction as diffbot/analyze, but over HTML YOU already fetched rather than a URL Diffbot fetches itself. This is the pairing for pages that block scrapers: call brightdata/unblock (2¢) to get past the wall, then pass its `raw` HTML here as `html` to get typed fields back. Also useful for HTML from a browser session or a file you hold. Pass `html` (required) and `url` (the page it came from — Diffbot uses it to resolve relative links and pick the right extractor).","tags":["diffbot"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"html":{"type":"string","minLength":1,"maxLength":5000000}},"required":["url","html"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/jina/read":{"post":{"operationId":"jina_read","summary":"jina/read","description":"Jina Reader — fetch a URL and return LLM-ready markdown (r.jina.ai). Pass `url`. Handles JS rendering and boilerplate stripping automatically; returns `{ title, url, content }`. The lightweight single-URL rung next to exa/contents (0.1¢, no JS) and firecrawl/scrape (1¢, more knobs) — a good fall-through when either errors.","tags":["jina"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri"}},"required":["url"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/jina/search":{"post":{"operationId":"jina_search","summary":"jina/search","description":"Jina Search — web search that returns the top hits WITH their full reader-processed page content in one call (s.jina.ai). Pass `q`; optional `num` (result count), `gl` (2-letter country), `hl` (language). Content-heavy responses — use when you want readable pages back immediately (like firecrawl/search); use serper/brave for link-only SERPs or exa/search for semantic recall.","tags":["jina"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":2000},"num":{"type":"integer","minimum":1,"maximum":20},"gl":{"type":"string","minLength":2,"maxLength":2},"hl":{"type":"string","minLength":2,"maxLength":5}},"required":["q"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/serper/search":{"post":{"operationId":"serper_search","summary":"serper/search","description":"Serper — real Google web results: organic ranks with snippets, knowledge graph, people-also-ask, related searches. Pass `q`; optional `num` (1-100 results), `page`, `gl` (2-letter country), `hl` (language), `location` (city-level), `tbs` (freshness qdr:h|d|w|m|y). The \"what does Google actually rank\" baseline — use exa/search for semantic recall, brave/search for an independent index, this for Google SERP structure.","tags":["serper"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":2000},"gl":{"type":"string","minLength":2,"maxLength":2},"hl":{"type":"string","minLength":2,"maxLength":5},"location":{"type":"string","minLength":2,"maxLength":200},"num":{"type":"integer","minimum":1,"maximum":100},"page":{"type":"integer","minimum":1,"maximum":10},"tbs":{"type":"string","enum":["qdr:h","qdr:d","qdr:w","qdr:m","qdr:y"]}},"required":["q"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/serper/news":{"post":{"operationId":"serper_news","summary":"serper/news","description":"Serper — Google News results: recent articles with source, date, and thumbnail. Pass `q`; optional `num`, `page`, `gl`, `hl`, `location`, `tbs` (freshness qdr:h|d|w|m|y — always set one for current events). Use for news-cycle queries; brave/news is the non-Google comparison.","tags":["serper"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":2000},"gl":{"type":"string","minLength":2,"maxLength":2},"hl":{"type":"string","minLength":2,"maxLength":5},"location":{"type":"string","minLength":2,"maxLength":200},"num":{"type":"integer","minimum":1,"maximum":100},"page":{"type":"integer","minimum":1,"maximum":10},"tbs":{"type":"string","enum":["qdr:h","qdr:d","qdr:w","qdr:m","qdr:y"]}},"required":["q"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/scrapedo/scrape":{"post":{"operationId":"scrapedo_scrape","summary":"scrapedo/scrape","description":"Scrape.do — Fetch a page through a rotating datacenter-proxy pool with anti-bot handling. Surprisingly strong for the price: it returned the REAL page on a DataDome-protected target where ScrapingAnt residential (4¢) got only a challenge stub. Pass `url`; optional `geoCode` (2-letter proxy country), `customHeaders` (forward your own headers), `timeout` (ms). Returns the raw page HTML. Try this BEFORE the more expensive unblocking rungs. Vendor credit cost is 1 on ordinary pages but Scrape.do AUTO-ESCALATES to its residential path on real anti-bot walls and bills 25 there — you cannot cap that, and our free plan is 1,000 credits/month (~40 hard pages). If it still comes back blocked, try brightdata/unblock (2¢), a different provider.","tags":["scrapedo"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"geoCode":{"type":"string","minLength":2,"maxLength":2},"customHeaders":{"type":"boolean"},"timeout":{"type":"integer","minimum":5000,"maximum":120000}},"required":["url"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/scrapedo/scrape_super":{"post":{"operationId":"scrapedo_scrape_super","summary":"scrapedo/scrape_super","description":"Scrape.do — The heavy rung: RESIDENTIAL/mobile proxy pool plus full JS rendering (`super` + `render`). For pages that bounce the plain scrapedo/scrape call. Same params (`url`, `geoCode`, `customHeaders`, `timeout`). Always 25 vendor credits, so do NOT reach for it first — use it only when you already know the plain call loses. Our free plan is 1,000 credits/month, i.e. ~40 calls at this rung. brightdata/unblock (2¢) is the alternative at the same price with a different provider; race or fall through between them.","tags":["scrapedo"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.020000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"geoCode":{"type":"string","minLength":2,"maxLength":2},"customHeaders":{"type":"boolean"},"timeout":{"type":"integer","minimum":5000,"maximum":120000}},"required":["url"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/tavily/search":{"post":{"operationId":"tavily_search","summary":"tavily/search","description":"Tavily — AI-native web search tuned for RAG: ranked results with relevance scores, optional LLM answer synthesis. Pass `query`; optional `topic` (general|news|finance), `max_results` (1-20), `include_answer` (true = synthesized answer), `include_raw_content` (true|\"markdown\" = full page text per hit), `include_domains`/`exclude_domains`, `time_range` (day|week|month|year), `country`. Alternative to exa/search (semantic recall) and brave/search (keyword index).","tags":["tavily"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","minLength":1,"maxLength":2000},"topic":{"type":"string","enum":["general","news","finance"]},"max_results":{"type":"integer","minimum":1,"maximum":20},"include_answer":{"anyOf":[{"type":"boolean"},{"type":"string","enum":["basic","advanced"]}]},"include_raw_content":{"anyOf":[{"type":"boolean"},{"type":"string","enum":["markdown","text"]}]},"include_domains":{"type":"array","items":{"type":"string"}},"exclude_domains":{"type":"array","items":{"type":"string"}},"time_range":{"type":"string","enum":["day","week","month","year","d","w","m","y"]},"country":{"type":"string"}},"required":["query"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/tavily/extract":{"post":{"operationId":"tavily_extract","summary":"tavily/extract","description":"Tavily — extract clean page content (JS handled) from up to 5 URLs you already have, in one 1¢ call. Pass `urls` (array, ≤5); optional `format` (markdown default | text). For bigger batches make multiple calls. Alternative to exa/contents (0.1¢/url, no JS) and firecrawl/scrape (1¢/url, full rendering).","tags":["tavily"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"urls":{"type":"array","items":{"type":"string","format":"uri"},"minItems":1,"maxItems":5},"format":{"type":"string","enum":["markdown","text"]}},"required":["urls"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/brave/search":{"post":{"operationId":"brave_search","summary":"brave/search","description":"Brave — keyword web search over Brave's own independent index (not Google/Bing). Pass `q`; optional `count` (1-20), `offset` (pagination), `country` (2-letter), `search_lang`, `freshness` (pd|pw|pm|py or YYYY-MM-DDtoYYYY-MM-DD), `safesearch`, `result_filter` (comma list: web,news,videos,faq,discussions), `extra_snippets` (up to 5 alternative excerpts per hit). Returns ranked results with snippets — no page content; chain a scrape action for full text. The independent keyword-index alternative to the semantic engines (exa/tavily).","tags":["brave"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":400},"country":{"type":"string","minLength":2,"maxLength":2},"search_lang":{"type":"string","minLength":2,"maxLength":5},"safesearch":{"type":"string","enum":["off","moderate","strict"]},"spellcheck":{"type":"boolean"},"offset":{"type":"integer","minimum":0,"maximum":9},"freshness":{"type":"string","minLength":2,"maxLength":30},"count":{"type":"integer","minimum":1,"maximum":20},"result_filter":{"type":"string","minLength":1,"maxLength":120},"extra_snippets":{"type":"boolean"}},"required":["q"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/brave/news":{"post":{"operationId":"brave_news","summary":"brave/news","description":"Brave — news-only search over the Brave index: recent articles with source, age, and breaking flags. Pass `q`; optional `count` (1-50), `country`, `search_lang`, `freshness` (pd|pw|pm|py), `safesearch`, `offset`. Use for current-events queries where web search returns stale evergreen pages.","tags":["brave"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":400},"country":{"type":"string","minLength":2,"maxLength":2},"search_lang":{"type":"string","minLength":2,"maxLength":5},"safesearch":{"type":"string","enum":["off","moderate","strict"]},"spellcheck":{"type":"boolean"},"offset":{"type":"integer","minimum":0,"maximum":9},"freshness":{"type":"string","minLength":2,"maxLength":30},"count":{"type":"integer","minimum":1,"maximum":50}},"required":["q"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/linkup/search":{"post":{"operationId":"linkup_search","summary":"linkup/search","description":"Linkup — AI web search returning a cited answer or ranked results. Pass `q`; optional `outputType` (sourcedAnswer default — synthesized answer with sources | searchResults — raw ranked hits | structured — pass `structuredOutputSchema` JSON-schema string), `fromDate`/`toDate` (ISO), `includeDomains`/`excludeDomains`, `includeImages`, `includeInlineCitations`. Standard depth — one-pass retrieval. For hard multi-hop questions escalate to linkup/deep-search (5¢).","tags":["linkup"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":4000},"outputType":{"type":"string","enum":["sourcedAnswer","searchResults","structured"]},"structuredOutputSchema":{"type":"string","minLength":2},"includeImages":{"type":"boolean"},"includeInlineCitations":{"type":"boolean"},"fromDate":{"type":"string","minLength":4,"maxLength":30},"toDate":{"type":"string","minLength":4,"maxLength":30},"includeDomains":{"type":"array","items":{"type":"string"}},"excludeDomains":{"type":"array","items":{"type":"string"}}},"required":["q"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/linkup/deep-search":{"post":{"operationId":"linkup_deep_search","summary":"linkup/deep-search","description":"Linkup — DEEP agentic search: iterative multi-query retrieval for hard or multi-hop questions where one-pass search misses. Same params as linkup/search (`q` + outputType/dates/domain filters). Slower (tens of seconds) and 5× the price — escalate here only after linkup/search or exa/search come back thin. For full multi-step research reports, parallel/task (10-30¢) is the bigger rung.","tags":["linkup"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.050000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":4000},"outputType":{"type":"string","enum":["sourcedAnswer","searchResults","structured"]},"structuredOutputSchema":{"type":"string","minLength":2},"includeImages":{"type":"boolean"},"includeInlineCitations":{"type":"boolean"},"fromDate":{"type":"string","minLength":4,"maxLength":30},"toDate":{"type":"string","minLength":4,"maxLength":30},"includeDomains":{"type":"array","items":{"type":"string"}},"excludeDomains":{"type":"array","items":{"type":"string"}}},"required":["q"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/valyu/search":{"post":{"operationId":"valyu_search","summary":"valyu/search","description":"Valyu — web search returning ranked results with full-text excerpts already extracted (no follow-up scrape for the body text). Pass `query`; optional `max_num_results` (1-10, default 5), `relevance_threshold` (0-1, default 0.5), `start_date`/`end_date` (YYYY-MM-DD), `country_code` (ISO-2), `fast_mode` (skip LLM rewrite/rerank for lower latency), `url_only` (URLs without content). Excerpts come back inline, which is the difference from brave/serper — those return snippets you then have to fetch. For papers use valyu/academic instead.","tags":["valyu"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.020000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","minLength":1,"maxLength":4000},"max_num_results":{"type":"integer","minimum":1,"maximum":10},"relevance_threshold":{"type":"number","minimum":0,"maximum":1},"start_date":{"type":"string","minLength":4,"maxLength":30},"end_date":{"type":"string","minLength":4,"maxLength":30},"country_code":{"type":"string","minLength":2,"maxLength":2},"fast_mode":{"type":"boolean"},"url_only":{"type":"boolean"}},"required":["query"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/valyu/academic":{"post":{"operationId":"valyu_academic","summary":"valyu/academic","description":"Valyu — search arXiv and PubMed directly and get the paper text back, not a link to it. Pass `query`; optional `max_num_results` (1-10), `relevance_threshold`, `start_date`/`end_date` (YYYY-MM-DD), `include_abstracts` (widen PubMed from full-text papers to the whole abstract corpus), `instructions` (<=500 chars, ranks results by intent, e.g. \"focus on oncology trials from 2023 onwards\"). Returns title, authors, DOI, publication date and the relevant full-text chunks. The only catalog source that reads papers directly — everything else would need a web search plus a scrape, and paywalled abstracts defeat that.","tags":["valyu"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","minLength":1,"maxLength":4000},"max_num_results":{"type":"integer","minimum":1,"maximum":10},"relevance_threshold":{"type":"number","minimum":0,"maximum":1},"start_date":{"type":"string","minLength":4,"maxLength":30},"end_date":{"type":"string","minLength":4,"maxLength":30},"include_abstracts":{"type":"boolean"},"instructions":{"type":"string","minLength":1,"maxLength":500}},"required":["query"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/perplexity/search":{"post":{"operationId":"perplexity_search","summary":"perplexity/search","description":"Perplexity — web search over Perplexity's own retrieval index, the one behind its answer engine, returning ranked results with snippets plus `date` and `last_updated` per hit. Pass `query`; optional `max_results` (1-10), `search_recency_filter` (hour|day|week|month|year), `country` (ISO-2), `max_tokens_per_page` (trim the excerpt), `search_domain_filter` (array of domains to include, or `-domain.com` to exclude). The freshness signal is the differentiator — results carry when the page was last updated, so an agent can tell a stale evergreen page from a current one. Snippets only: chain a scrape action for full text.","tags":["perplexity"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","minLength":1,"maxLength":4000},"max_results":{"type":"integer","minimum":1,"maximum":10},"search_recency_filter":{"type":"string","enum":["hour","day","week","month","year"]},"country":{"type":"string","minLength":2,"maxLength":2},"max_tokens_per_page":{"type":"integer","minimum":64,"maximum":4096},"search_domain_filter":{"type":"array","items":{"type":"string"},"maxItems":10}},"required":["query"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/mem0/add":{"post":{"operationId":"mem0_add","summary":"mem0/add","description":"Mem0 — store conversation turns as long-term memory. Pass `messages` ([{role,content}]) and a `user_id`; Mem0 auto-extracts facts. Returns a queued event id.","tags":["mem0"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"messages":{"type":"array","items":{"type":"object","properties":{"role":{"type":"string","minLength":1},"content":{"type":"string"}},"required":["role","content"],"additionalProperties":false},"minItems":1},"user_id":{"type":"string","minLength":1},"metadata":{"type":"object","additionalProperties":{}},"infer":{"type":"boolean"}},"required":["messages","user_id"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/mem0/search":{"post":{"operationId":"mem0_search","summary":"mem0/search","description":"Mem0 — semantic search over a user’s stored memories. Pass `query` and `user_id`; returns ranked memories with scores.","tags":["mem0"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","minLength":1},"user_id":{"type":"string","minLength":1},"top_k":{"type":"integer","exclusiveMinimum":0}},"required":["query","user_id"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/letta/agent-create":{"post":{"operationId":"letta_agent_create","summary":"letta/agent-create","description":"Letta — create a stateful agent with self-managed memory blocks. Returns an agent `id` to drive with `letta:message`. Optional: name, model, memory_blocks.","tags":["letta"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"model":{"type":"string"},"memory_blocks":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","minLength":1},"value":{"type":"string"}},"required":["label","value"],"additionalProperties":false}},"system":{"type":"string"}},"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/letta/message":{"post":{"operationId":"letta_message","summary":"letta/message","description":"Letta — send a message to an agent; the agent thinks and self-edits its memory. Pass `agent_id` (from agent-create) and `input` (the user message). Reply is the assistant_message in the response.","tags":["letta"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"agent_id":{"type":"string","minLength":1},"input":{"anyOf":[{"type":"string"},{"type":"array","items":{}}]},"messages":{"type":"array","items":{}}},"required":["agent_id"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/zep/user-add":{"post":{"operationId":"zep_user_add","summary":"zep/user-add","description":"Zep — create a user (prerequisite before threads/messages). Pass a stable `user_id`. Optional: email, first_name, last_name, metadata.","tags":["zep"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"user_id":{"type":"string","minLength":1},"email":{"type":"string"},"first_name":{"type":"string"},"last_name":{"type":"string"},"metadata":{"type":"object","additionalProperties":{}}},"required":["user_id"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/zep/thread-create":{"post":{"operationId":"zep_thread_create","summary":"zep/thread-create","description":"Zep — open a thread (conversation container) for a user. Pass `thread_id` and `user_id`. Facts ingested in one thread are available across all the user’s threads.","tags":["zep"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"thread_id":{"type":"string","minLength":1},"user_id":{"type":"string","minLength":1},"metadata":{"type":"object","additionalProperties":{}}},"required":["thread_id","user_id"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/zep/add":{"post":{"operationId":"zep_add","summary":"zep/add","description":"Zep — add messages to a thread; Zep ingests them into the user’s knowledge graph. Pass `thread_id` and `messages` ([{role,content,name?}]). Set return_context:true to get the context block back inline.","tags":["zep"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"thread_id":{"type":"string","minLength":1},"messages":{"type":"array","items":{"type":"object","properties":{"role":{"type":"string","minLength":1},"content":{"type":"string"},"name":{"type":"string"}},"required":["role","content"],"additionalProperties":false},"minItems":1},"return_context":{"type":"boolean"}},"required":["thread_id","messages"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/zep/get-context":{"post":{"operationId":"zep_get_context","summary":"zep/get-context","description":"Zep — fetch the token-efficient summarized context block for a thread (drop it into your LLM prompt). Pass `thread_id`.","tags":["zep"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"thread_id":{"type":"string","minLength":1}},"required":["thread_id"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/zep/search":{"post":{"operationId":"zep_search","summary":"zep/search","description":"Zep — search a user’s knowledge graph for specific facts (vs the summarized context). Pass `query` and `user_id`. Optional scope (edges|nodes|episodes) and limit.","tags":["zep"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","minLength":1},"user_id":{"type":"string","minLength":1},"scope":{"type":"string","enum":["edges","nodes","episodes"]},"limit":{"type":"integer","exclusiveMinimum":0,"maximum":50}},"required":["query","user_id"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/edgar/fulltext":{"post":{"operationId":"edgar_fulltext","summary":"edgar/fulltext","description":"SEC EDGAR full-text search over all filings (2001+). Pass `q` (quote for exact phrase) + optional `forms` (comma-separated: D = private fundraises, C/C-AR = Reg CF financials, 1-K/1-SA = Reg A financials, 4 = insider trades, UPLOAD/CORRESP = SEC comment letters), `startdt`/`enddt` (YYYY-MM-DD), `from` (pagination offset). Hits include the filer, date, and {accession}:{filename} ids for edgar/document.","tags":["edgar"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"q":{"type":"string","minLength":1},"forms":{"type":"string"},"startdt":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"enddt":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"from":{"type":"integer","minimum":0,"maximum":9990}},"required":["q"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/edgar/filings":{"post":{"operationId":"edgar_filings","summary":"edgar/filings","description":"SEC EDGAR filing history for one company by CIK (data.sec.gov submissions). Returns entity metadata + every filing (form type, date, accession number) — the sweep source for a company's Form Ds (fundraises), Form 4s (insider trades), 8-Ks, S-1s. Find the CIK via edgar/fulltext hits or the company's EDGAR page.","tags":["edgar"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"cik":{"anyOf":[{"type":"string","pattern":"^\\d{1,10}$"},{"type":"integer","exclusiveMinimum":0}]}},"required":["cik"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/edgar/document":{"post":{"operationId":"edgar_document","summary":"edgar/document","description":"Fetch one SEC filing document from EDGAR Archives by { cik, accession, filename } (from edgar/fulltext hit ids or edgar/filings). Returns the raw document — Form D XML carries offering amounts, Form C/C-AR XML carries revenue/net income of private companies, Form 4 XML carries insider buys/sells. Prefer .xml/.htm/.txt files (not PDFs).","tags":["edgar"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"cik":{"anyOf":[{"type":"string","pattern":"^\\d{1,10}$"},{"type":"integer","exclusiveMinimum":0}]},"accession":{"type":"string","pattern":"^\\d{10}-?\\d{2}-?\\d{6}$"},"filename":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._-]{0,200}$"}},"required":["cik","accession","filename"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/edgar/entities":{"post":{"operationId":"edgar_entities","summary":"edgar/entities","description":"SEC EDGAR entity search: company/fund name → registrant CIKs (the autocomplete index). Pass `q` (name fragment). Returns ranked entities with CIK. START HERE for any company-scoped EDGAR question — resolves brand → legal entity, finds SPV families, and proves \"never registered\" negatives that full-text search cannot.","tags":["edgar"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"q":{"type":"string","minLength":1}},"required":["q"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/edgar/concept":{"post":{"operationId":"edgar_concept","summary":"edgar/concept","description":"One XBRL financial concept for a PUBLIC company, all fiscal periods (data.sec.gov companyconcept). Pass `cik` + `concept` (us-gaap tag, e.g. RevenueFromContractWithCustomerExcludingAssessedTax, Revenues, NetIncomeLoss, Assets). Small structured response — the right way to answer \"what was <public co>'s revenue\", instead of scraping a multi-MB 10-K.","tags":["edgar"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"cik":{"anyOf":[{"type":"string","pattern":"^\\d{1,10}$"},{"type":"integer","exclusiveMinimum":0}]},"concept":{"type":"string","pattern":"^[A-Za-z][A-Za-z0-9]{0,120}$"},"taxonomy":{"type":"string","enum":["us-gaap","dei","ifrs-full"]}},"required":["cik","concept"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/edgar/index":{"post":{"operationId":"edgar_index","summary":"edgar/index","description":"EDGAR daily index: EVERY filing of EVERY form type for one day (plain-text form.idx). Pass `date` (YYYY-MM-DD, business days; weekends/holidays 404 = no filings). Rows: form type, company, CIK, date, filing path. THE way to enumerate all Form Ds (or any form) in a date window — one call per day; filter rows by form prefix; full-text/kadec0 search cannot do this (they need a query term).","tags":["edgar"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"required":["date"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/courtlistener/cases":{"post":{"operationId":"courtlistener_cases","summary":"courtlistener/cases","description":"Search 10M+ US court opinions (CourtListener v4). Pass `q` + optional `court` (e.g. cand, ca9, scotus), `judge`, `filed_after`/`filed_before`, `order_by` (\"dateFiled desc\"), `cursor` (pagination). Returns case names, courts, dates, cites, and absolute_url links to full opinions.","tags":["courtlistener"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"q":{"type":"string","minLength":1},"court":{"type":"string"},"judge":{"type":"string"},"party_name":{"type":"string"},"docket_number":{"type":"string"},"case_name":{"type":"string"},"filed_after":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"filed_before":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"order_by":{"type":"string"},"cursor":{"type":"string"}},"required":["q"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/courtlistener/dockets":{"post":{"operationId":"courtlistener_dockets","summary":"courtlistener/dockets","description":"Search federal court dockets via RECAP (CourtListener v4) — the litigation profile of any company: every case naming it, parties, attorneys, filing dates, live docket links. Same params as courtlistener/cases. Coverage is federal courts via the RECAP archive; state-court coverage varies — say so in outputs.","tags":["courtlistener"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"q":{"type":"string","minLength":1},"court":{"type":"string"},"judge":{"type":"string"},"party_name":{"type":"string"},"docket_number":{"type":"string"},"case_name":{"type":"string"},"filed_after":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"filed_before":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"order_by":{"type":"string"},"cursor":{"type":"string"}},"required":["q"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/propublica/nonprofit_search":{"post":{"operationId":"propublica_nonprofit_search","summary":"propublica/nonprofit_search","description":"Search all US nonprofits by name/keyword (ProPublica Nonprofit Explorer, IRS 990 data). Pass `q` + optional `state` (2-letter) and `page`. Returns orgs with EINs — feed an EIN to propublica/nonprofit for financials. The route into any 990: foundations, research labs (early OpenAI), the SF NGO network.","tags":["propublica"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"q":{"type":"string","minLength":1},"state":{"type":"string","minLength":2,"maxLength":2},"ntee":{"type":"integer","minimum":1,"maximum":10},"page":{"type":"integer","minimum":0}},"required":["q"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/propublica/nonprofit":{"post":{"operationId":"propublica_nonprofit","summary":"propublica/nonprofit","description":"One nonprofit's full IRS 990 history by EIN (ProPublica): year-by-year revenue, expenses, officer compensation, assets, plus links to the filed 990 PDFs. The primary source for \"what does this NGO/foundation actually take in and pay out\".","tags":["propublica"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ein":{"anyOf":[{"type":"string","pattern":"^\\d{2}-?\\d{7}$"},{"type":"integer","exclusiveMinimum":0}]}},"required":["ein"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/wayback/snapshots":{"post":{"operationId":"wayback_snapshots","summary":"wayback/snapshots","description":"List archived snapshots of a URL from the Internet Archive Wayback Machine (CDX index). Pass `url` + optional `from`/`to` (YYYY..YYYYMMDDhhmmss prefixes) and `limit`. Returns [timestamp, original, mimetype, statuscode, ...] rows — feed a row's timestamp to wayback/fetch. THE source for \"what did this page/pricing/docs say in <year>\" and for recovering dead links.","tags":["wayback"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","minLength":1},"from":{"type":"string","pattern":"^\\d{4,14}$"},"to":{"type":"string","pattern":"^\\d{4,14}$"},"limit":{"type":"integer","minimum":1,"maximum":500}},"required":["url"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/wayback/available":{"post":{"operationId":"wayback_available","summary":"wayback/available","description":"Find the closest archived snapshot of a URL to a moment in time (Wayback availability API). Pass `url` + optional `timestamp` (YYYYMMDD). One small JSON answer — the quick rung before wayback/snapshots when you just need \"an archived copy near date X\".","tags":["wayback"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","minLength":1},"timestamp":{"type":"string","pattern":"^\\d{4,14}$"}},"required":["url"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/wayback/fetch":{"post":{"operationId":"wayback_fetch","summary":"wayback/fetch","description":"Fetch one archived page from the Wayback Machine by { url, timestamp } (from wayback/snapshots). Returns the ORIGINAL page bytes as captured (the `id_` flag strips the archive banner) — chain into your normal extraction flow. Historical pages, deleted posts, pre-pivot marketing copy.","tags":["wayback"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","minLength":1},"timestamp":{"type":"string","pattern":"^\\d{4,14}$"}},"required":["url","timestamp"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/wikipedia/search":{"post":{"operationId":"wikipedia_search","summary":"wikipedia/search","description":"Search Wikipedia article titles + text (MediaWiki search API). Pass `q` + optional `limit`, `offset`, `lang` (subdomain, default en). Returns ranked titles with snippets — feed a title to wikipedia/page. The fast canonical-facts rung: orgs, people, places, concepts.","tags":["wikipedia"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"q":{"type":"string","minLength":1},"limit":{"type":"integer","minimum":1,"maximum":50},"offset":{"type":"integer","minimum":0},"lang":{"type":"string","pattern":"^[a-z]{2,12}$"}},"required":["q"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/wikipedia/page":{"post":{"operationId":"wikipedia_page","summary":"wikipedia/page","description":"Full plain-text extract of one Wikipedia article by exact `title` (redirects followed). Optional `lang` (default en). Returns the whole article as clean text — cheaper and cleaner than scraping the page, with none of the chrome.","tags":["wikipedia"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","minLength":1},"lang":{"type":"string","pattern":"^[a-z]{2,12}$"}},"required":["title"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/wikidata/search":{"post":{"operationId":"wikidata_search","summary":"wikidata/search","description":"Resolve a name to canonical Wikidata entities (wbsearchentities). Pass `q` + optional `type` (item|property), `lang`, `limit`. Returns ranked Q-ids with labels/descriptions — THE entity-resolution rung: disambiguate \"Mercury\", canonicalize a company before fanning out to other sources, get the Q-id for wikidata/entity or wikidata/sparql.","tags":["wikidata"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"q":{"type":"string","minLength":1},"type":{"type":"string","enum":["item","property"]},"lang":{"type":"string","pattern":"^[a-z]{2,12}$"},"limit":{"type":"integer","minimum":1,"maximum":50}},"required":["q"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/wikidata/entity":{"post":{"operationId":"wikidata_entity","summary":"wikidata/entity","description":"One Wikidata entity's full structured record by id (Special:EntityData). Pass `id` (Q-id from wikidata/search, e.g. Q95). Returns all claims — founding date, HQ, subsidiaries, CEOs, identifiers cross-linking to dozens of registries (LEI, Crunchbase, ROR, tickers). Machine-readable facts, no scraping.","tags":["wikidata"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","pattern":"^[QPL]\\d{1,12}$"}},"required":["id"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/wikidata/sparql":{"post":{"operationId":"wikidata_sparql","summary":"wikidata/sparql","description":"Run a SPARQL query against the Wikidata Query Service. Pass `query` (keep it small + LIMITed; 60s hard timeout upstream). Answers set-shaped questions no search engine can: \"all AI companies founded after 2020 with HQ in Europe\", \"every subsidiary of X\". Returns SPARQL JSON results.","tags":["wikidata"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","minLength":10,"maxLength":5000}},"required":["query"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/uspto/patents":{"post":{"operationId":"uspto_patents","summary":"uspto/patents","description":"Search US patent applications + grants (USPTO Open Data Portal, Patent File Wrapper). Pass `q` — plain full-text (\"machine learning\") or field-qualified (applicationMetaData.inventionTitle:\"neural network\") — with optional `date_gte`/`date_lte` (YYYY-MM-DD, effective-filing-date window), `limit`, `offset`. Returns applications newest-first with applicant, inventor, filing/grant dates, and patent numbers. Patent portfolios, prior art, who-is-patenting-what in a space.","tags":["uspto"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"q":{"type":"string","minLength":1},"date_gte":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"date_lte":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"limit":{"type":"integer","minimum":1,"maximum":100},"offset":{"type":"integer","minimum":0}},"required":["q"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/uspto/assignees":{"post":{"operationId":"uspto_assignees","summary":"uspto/assignees","description":"Find US patent applications by applicant/assignee organization (USPTO Open Data Portal, Patent File Wrapper). Pass `organization` (e.g. \"Anthropic\") + optional `limit`/`offset`. Returns that applicant's filings newest-first — the \"does X hold patents\" lookup before a full uspto/patents sweep.","tags":["uspto"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"organization":{"type":"string","minLength":1},"limit":{"type":"integer","minimum":1,"maximum":100},"offset":{"type":"integer","minimum":0}},"required":["organization"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/gdelt/news":{"post":{"operationId":"gdelt_news","summary":"gdelt/news","description":"Search the GDELT global news firehose (worldwide outlets, 65 languages, ~15-min latency). Pass `query` (supports operators like sourcecountry:france, sourcelang:spanish, domain:reuters.com, \"exact phrase\") + optional `timespan` (e.g. 1d, 2w) OR `startdatetime`/`enddatetime` (YYYYMMDDhhmmss), `maxrecords`, `sort`. Global/non-English coverage the mainstream indexes miss.","tags":["gdelt"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","minLength":1},"timespan":{"type":"string","pattern":"^\\d+(min|h|d|w|m)$"},"startdatetime":{"type":"string","pattern":"^\\d{14}$"},"enddatetime":{"type":"string","pattern":"^\\d{14}$"},"maxrecords":{"type":"integer","minimum":1,"maximum":250},"sort":{"type":"string","enum":["datedesc","dateasc","hybridrel","tonedesc","toneasc"]}},"required":["query"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/gdelt/timeline":{"post":{"operationId":"gdelt_timeline","summary":"gdelt/timeline","description":"News-volume or tone timeline for a query from GDELT — how much (or how positively) the world's press covered X over time. Pass `query` + `mode` (timelinevol = coverage volume, timelinetone = average tone) + optional `timespan` or datetime bounds. Chart-ready series for narrative tracking and event detection.","tags":["gdelt"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","minLength":1},"mode":{"type":"string","enum":["timelinevol","timelinetone"]},"timespan":{"type":"string","pattern":"^\\d+(min|h|d|w|m)$"},"startdatetime":{"type":"string","pattern":"^\\d{14}$"},"enddatetime":{"type":"string","pattern":"^\\d{14}$"}},"required":["query"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/openalex/works":{"post":{"operationId":"openalex_works","summary":"openalex/works","description":"Search 250M+ scholarly works (OpenAlex — successor to Microsoft Academic Graph). Pass `search` and/or `filter` (comma-joined, e.g. from_publication_date:2024-01-01,is_oa:true,cited_by_count:>100), optional `sort`, `page`, `per_page`. Returns metadata + abstracts + citation counts + OA links. The citation-graph layer kadec0/papers lacks.","tags":["openalex"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"search":{"type":"string"},"filter":{"type":"string"},"sort":{"type":"string"},"page":{"type":"integer","minimum":1},"per_page":{"type":"integer","minimum":1,"maximum":50}},"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/openalex/work":{"post":{"operationId":"openalex_work","summary":"openalex/work","description":"One scholarly work by OpenAlex id or DOI (e.g. W2741809807 or https://doi.org/10.7717/peerj.4375). Full record: authorships + institutions, abstract, per-year citation counts, referenced/related works, OA locations. The follow-up read after openalex/works.","tags":["openalex"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","pattern":"^[A-Za-z0-9:/._-]{2,300}$"}},"required":["id"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/openalex/authors":{"post":{"operationId":"openalex_authors","summary":"openalex/authors","description":"Search researcher profiles (OpenAlex authors). Pass `search` (name) and/or `filter` (e.g. last_known_institutions.country_code:US,works_count:>50), optional `page`/`per_page`. Returns disambiguated authors with h-index, works counts, affiliations — expert-finding and technical due diligence on founders/teams.","tags":["openalex"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"search":{"type":"string"},"filter":{"type":"string"},"page":{"type":"integer","minimum":1},"per_page":{"type":"integer","minimum":1,"maximum":50}},"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/fedreg/search":{"post":{"operationId":"fedreg_search","summary":"fedreg/search","description":"Search the US Federal Register — every proposed rule, final rule, notice, and presidential document since 1994. Pass `term` + optional `type` (RULE|PRORULE|NOTICE|PRESDOCU), `agency` (slug, e.g. securities-and-exchange-commission), `date_gte`/`date_lte`, `per_page`, `page`. The upstream regulatory pipeline: see rules while they are still proposals.","tags":["fedreg"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"term":{"type":"string","minLength":1},"type":{"type":"string","enum":["RULE","PRORULE","NOTICE","PRESDOCU"]},"agency":{"type":"string","pattern":"^[a-z0-9-]{2,100}$"},"date_gte":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"date_lte":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"per_page":{"type":"integer","minimum":1,"maximum":100},"page":{"type":"integer","minimum":1}},"required":["term"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/fedreg/document":{"post":{"operationId":"fedreg_document","summary":"fedreg/document","description":"One Federal Register document by document number (from fedreg/search results, e.g. 2024-12345). Full metadata: abstract, agencies, docket ids, CFR references, comment-period dates, and links to full text/PDF.","tags":["fedreg"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"document_number":{"type":"string","pattern":"^[0-9]{2,4}-[A-Za-z0-9]{2,10}$"}},"required":["document_number"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/exa/search":{"post":{"operationId":"exa_search","summary":"exa/search","description":"Exa — semantic web search via x402 ($0.007). No API key. numResults max 10 on x402.","tags":["exa"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","minLength":1},"numResults":{"type":"integer","exclusiveMinimum":0,"maximum":10},"type":{"type":"string","enum":["auto","neural","keyword","deep-lite","deep","deep-reasoning"]},"contents":{}},"required":["query"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/agentmail/send":{"post":{"operationId":"agentmail_send","summary":"agentmail/send","description":"AgentMail — Send a transactional email from an agent inbox via x402.","tags":["agentmail"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"inbox_id":{"type":"string","minLength":1},"to":{"anyOf":[{"type":"string","format":"email"},{"type":"array","items":{"type":"string","format":"email"}}]},"subject":{"type":"string","minLength":1},"text":{"type":"string"},"html":{"type":"string"}},"required":["inbox_id","to","subject"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/agentmail/reply":{"post":{"operationId":"agentmail_reply","summary":"agentmail/reply","description":"AgentMail — Reply to a specific message via x402.","tags":["agentmail"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"inbox_id":{"type":"string","minLength":1},"message_id":{"type":"string","minLength":1},"text":{"type":"string"},"html":{"type":"string"}},"required":["inbox_id","message_id"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/mailbox/send":{"post":{"operationId":"mailbox_send","summary":"mailbox/send","description":"Send an email FROM your own connected mailbox (the one linked at vaaya.ai/connected-accounts), so it arrives from your address and replies come back to you. One recipient per call. Use this when the mail should look like it came from the user personally; use agentmail/send when it should come from Vaaya. Fails with mailbox_not_connected if no mailbox is linked.","tags":["mailbox"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","format":"email"},"subject":{"type":"string","minLength":1,"maxLength":200},"html":{"type":"string","minLength":1},"text":{"type":"string","minLength":1}},"required":["to","subject"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/parallel/search":{"post":{"operationId":"parallel_search","summary":"parallel/search","description":"Parallel — AI-powered web search via x402 (1¢ flat).","tags":["parallel"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","minLength":1},"mode":{"type":"string","enum":["one-shot","fast"]},"objective":{"type":"string"}},"required":["query"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/agentmail/create_inbox":{"post":{"operationId":"agentmail_create_inbox","summary":"agentmail/create_inbox","description":"AgentMail — Provision a new agent inbox via x402.","tags":["agentmail"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"2.000000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"username":{"type":"string"},"domain":{"type":"string"},"display_name":{"type":"string"}},"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/modal/sandbox-exec":{"post":{"operationId":"modal_sandbox_exec","summary":"modal/sandbox-exec","description":"Modal — Run a command in a running sandbox and return its output.","tags":["modal"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"sandbox_id":{"type":"string","minLength":1},"command":{"anyOf":[{"type":"string","minLength":1},{"type":"array","items":{"type":"string","minLength":1},"minItems":1}]},"timeout":{"type":"integer","exclusiveMinimum":0}},"required":["sandbox_id","command"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/modal/sandbox-terminate":{"post":{"operationId":"modal_sandbox_terminate","summary":"modal/sandbox-terminate","description":"Modal — Terminate a running sandbox.","tags":["modal"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"sandbox_id":{"type":"string","minLength":1}},"required":["sandbox_id"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/modal/sandbox-status":{"post":{"operationId":"modal_sandbox_status","summary":"modal/sandbox-status","description":"Modal — Check status of a sandbox.","tags":["modal"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"sandbox_id":{"type":"string","minLength":1}},"required":["sandbox_id"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/anthropic/messages":{"post":{"operationId":"anthropic_messages","summary":"anthropic/messages","description":"Anthropic — Claude Messages API, keyless pay-per-call (price varies by model + tokens). Pass standard /v1/messages params: `model` (e.g. claude-sonnet-5), `max_tokens`, `messages`.","tags":["anthropic"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"1.000000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string","minLength":1},"max_tokens":{"type":"integer","exclusiveMinimum":0},"messages":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true},"minItems":1}},"required":["model","max_tokens","messages"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/openai/chat":{"post":{"operationId":"openai_chat","summary":"openai/chat","description":"OpenAI — chat completions, keyless pay-per-call (price varies by model + tokens). Standard /v1/chat/completions params: `model` (gpt-4o, o1, …), `messages`.","tags":["openai"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"1.000000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string","minLength":1},"messages":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true},"minItems":1}},"required":["model","messages"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/openai/embeddings":{"post":{"operationId":"openai_embeddings","summary":"openai/embeddings","description":"OpenAI — create embeddings (/v1/embeddings). Params: `model` (e.g. text-embedding-3-small), `input` (string or array).","tags":["openai"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string","minLength":1},"input":{"anyOf":[{"type":"string","minLength":1},{"type":"array","items":{"type":"string","minLength":1},"minItems":1}]}},"required":["model","input"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/openai/image-generate":{"post":{"operationId":"openai_image_generate","summary":"openai/image-generate","description":"OpenAI — generate images (/v1/images/generations, ~5¢). Params: `prompt`, optionally `model`, `size`, `n`. For most image work prefer fal (cheaper, more models); use this when the caller wants OpenAI specifically.","tags":["openai"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.080000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","minLength":1},"model":{"type":"string"},"size":{"type":"string"},"n":{"type":"integer","exclusiveMinimum":0,"maximum":4}},"required":["prompt"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/openrouter/chat":{"post":{"operationId":"openrouter_chat","summary":"openrouter/chat","description":"OpenRouter — one endpoint for 100+ LLMs, keyless pay-per-call (price varies by model + tokens). Params: `model` (vendor/model id like openai/gpt-4o), `messages`.","tags":["openrouter"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"1.000000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string","minLength":1},"messages":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true},"minItems":1}},"required":["model","messages"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/codestorage/repo-create":{"post":{"operationId":"codestorage_repo_create","summary":"codestorage/repo-create","description":"Code Storage — create a private Git repository ($1.00 one-time) and get an authenticated clone URL back.","tags":["codestorage"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"1.200000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1}},"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/codestorage/repo-get":{"post":{"operationId":"codestorage_repo_get","summary":"codestorage/repo-get","description":"Code Storage — get the authenticated clone URL for a repository by id (~1¢).","tags":["codestorage"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.020000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","minLength":1}},"required":["id"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/oxylabs/scrape":{"post":{"operationId":"oxylabs_scrape","summary":"oxylabs/scrape","description":"Oxylabs — scrape a public URL with optional geo-targeting and JS rendering. Params: `url`, optionally `geo_location`, `render` (\"html\").","tags":["oxylabs"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.250000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"geo_location":{"type":"string"},"render":{"type":"string"}},"required":["url"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/twocaptcha/solve":{"post":{"operationId":"twocaptcha_solve","summary":"twocaptcha/solve","description":"2Captcha — submit a captcha task (reCAPTCHA, Turnstile, hCaptcha, image; ~0.3¢). Params: `task` object per 2Captcha createTask schema. Poll with twocaptcha:result.","tags":["twocaptcha"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"task":{"type":"object","properties":{},"additionalProperties":true}},"required":["task"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/twocaptcha/result":{"post":{"operationId":"twocaptcha_result","summary":"twocaptcha/result","description":"2Captcha — poll a submitted captcha task. Params: `taskId` from twocaptcha:solve.","tags":["twocaptcha"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"taskId":{"type":["string","number"]}},"required":["taskId"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/kicksdb/product-search":{"post":{"operationId":"kicksdb_product_search","summary":"kicksdb/product-search","description":"KicksDB — search sneaker/streetwear products (~0.05¢). Params: `marketplace` (stockx | goat | shopify | snkrs | kream | novelship), `query`.","tags":["kicksdb"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"marketplace":{"type":"string","enum":["stockx","goat","shopify","snkrs","kream","novelship"]},"query":{"type":"string","minLength":1}},"required":["marketplace","query"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/kicksdb/product-detail":{"post":{"operationId":"kicksdb_product_detail","summary":"kicksdb/product-detail","description":"KicksDB — get one product by id (~0.05¢). Params: `marketplace` (stockx | goat | shopify | kream), `id`.","tags":["kicksdb"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"marketplace":{"type":"string","enum":["stockx","goat","shopify","kream"]},"id":{"type":"string","minLength":1}},"required":["marketplace","id"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/kicksdb/sales-history":{"post":{"operationId":"kicksdb_sales_history","summary":"kicksdb/sales-history","description":"KicksDB — sales history for a product (~0.05¢). Params: `marketplace` (stockx | goat), `id`.","tags":["kicksdb"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"marketplace":{"type":"string","enum":["stockx","goat"]},"id":{"type":"string","minLength":1}},"required":["marketplace","id"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/aviationstack/flights":{"post":{"operationId":"aviationstack_flights","summary":"aviationstack/flights","description":"AviationStack — real-time flight status (~0.5¢). Query params like `flight_iata` (AA100), `dep_iata`, `arr_iata`, `airline_iata`.","tags":["aviationstack"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/aviationstack/timetable":{"post":{"operationId":"aviationstack_timetable","summary":"aviationstack/timetable","description":"AviationStack — airport departure/arrival timetable (~0.5¢). Params: `iataCode` (airport), `type` (departure | arrival).","tags":["aviationstack"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"iataCode":{"type":"string","minLength":3},"type":{"type":"string","enum":["departure","arrival"]}},"required":["iataCode","type"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/apex-db/search":{"post":{"operationId":"apex_db_search","summary":"apex-db/search","description":"apex-db — search normalized vehicle variants (specs, emissions, recalls; source-linked). 10¢/search. Query params: `make`, `model`, `year`, `q`.","tags":["apex-db"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.120000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/apex-db/get":{"post":{"operationId":"apex_db_get","summary":"apex-db/get","description":"apex-db — fetch one record by `id` from a prior search. 2.5¢.","tags":["apex-db"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.030000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","minLength":1}},"required":["id"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/rxatlas/search":{"post":{"operationId":"rxatlas_search","summary":"rxatlas/search","description":"rxatlas — search normalized US drug products (FDA, DailyMed, RxNorm; source-linked). 10¢/search. Query params: `q` (name/ingredient), `ndc`.","tags":["rxatlas"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.120000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/rxatlas/get":{"post":{"operationId":"rxatlas_get","summary":"rxatlas/get","description":"rxatlas — fetch one record by `id` from a prior search. 2.5¢.","tags":["rxatlas"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.030000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","minLength":1}},"required":["id"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/trialbase-db/search":{"post":{"operationId":"trialbase_db_search","summary":"trialbase-db/search","description":"trialbase-db — search normalized clinical trials (ClinicalTrials.gov, CTIS, EudraCT). 10¢/search. Query params: `q` (condition/intervention), `status`, `phase`.","tags":["trialbase-db"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.120000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/trialbase-db/get":{"post":{"operationId":"trialbase_db_get","summary":"trialbase-db/get","description":"trialbase-db — fetch one record by `id` from a prior search. 2.5¢.","tags":["trialbase-db"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.030000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","minLength":1}},"required":["id"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/recallradar/search":{"post":{"operationId":"recallradar_search","summary":"recallradar/search","description":"recallradar — search normalized consumer-product safety notices (six public authorities). 10¢/search. Query params: `q` (product/brand).","tags":["recallradar"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.120000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/recallradar/get":{"post":{"operationId":"recallradar_get","summary":"recallradar/get","description":"recallradar — fetch one record by `id` from a prior search. 2.5¢.","tags":["recallradar"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.030000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","minLength":1}},"required":["id"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/govlaws/search":{"post":{"operationId":"govlaws_search","summary":"govlaws/search","description":"GovLaws — semantic search across current US federal regulations (CFR), ~6¢. Params: `query`, optionally `agency`.","tags":["govlaws"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.080000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","minLength":1}},"required":["query"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/govlaws/resolve":{"post":{"operationId":"govlaws_resolve","summary":"govlaws/resolve","description":"GovLaws — resolve a CFR citation to its current text with provenance + recent changes, ~8¢. Params: `citation` (e.g. \"40 CFR 60.1\").","tags":["govlaws"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.100000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"citation":{"type":"string","minLength":1}},"required":["citation"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/dripstack/post":{"post":{"operationId":"dripstack_post","summary":"dripstack/post","description":"DripStack — buy the synthesized summary of one Substack post ($0.05-$1; posts priced above the $1 cap are refused). Params: `publication` (slug like chipstrat.com), `post` (post slug).","tags":["dripstack"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"1.000000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"publication":{"type":"string","minLength":1,"maxLength":200},"post":{"type":"string","minLength":1,"maxLength":200}},"required":["publication","post"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/agentfax/send":{"post":{"operationId":"agentfax_send","summary":"agentfax/send","description":"agentfax — send a real fax to any phone number, $0.20/page (cap 10 pages). Params: `to` (E.164 like +14155550123), `file_url` (public PDF URL).","tags":["agentfax"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"2.000000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","pattern":"^\\+[0-9]{7,15}$"},"file_url":{"type":"string","format":"uri"}},"required":["to","file_url"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/papercut/github-profile":{"post":{"operationId":"papercut_github_profile","summary":"papercut/github-profile","description":"Papercut — fetch a GitHub profile summary (free) to write the roast for papercut:send. Params: `username`.","tags":["papercut"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"username":{"type":"string","minLength":1}},"required":["username"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/postalform/validate":{"post":{"operationId":"postalform_validate","summary":"postalform/validate","description":"PostalForm — quote and validate a print-and-mail order before paying (free). Same body as postalform:order; returns pricing + validation errors.","tags":["postalform"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/postalform/order":{"post":{"operationId":"postalform_order","summary":"postalform/order","description":"PostalForm — create and pay for a print-and-mail order (letters/documents to a physical address; price varies, cap $20). ALWAYS run postalform:validate first and confirm the quote with the user.","tags":["postalform"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"20.000000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/martin-estate/catalog":{"post":{"operationId":"martin_estate_catalog","summary":"martin-estate/catalog","description":"Martin Estate Winery — browse purchasable Napa wines (free). Optional `category` (estate-collection | library-selections | gifts-large-formats) or `slug` for one wine.","tags":["martin-estate"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"category":{"type":"string"},"slug":{"type":"string","minLength":1,"maxLength":200}},"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/martin-estate/purchase":{"post":{"operationId":"martin_estate_purchase","summary":"martin-estate/purchase","description":"Martin Estate Winery — buy wine (real purchase; US only, KYC/21+ identity verification may return a verify_url to complete first). Params: `product_id`, `quantity` (1-12), `email`, `shipping` {name, address_1, city, state, zip}, optional `gift_note`, `order_id` to resume. Requires explicit max_cost_cents; confirm the order and total with the user before calling.","tags":["martin-estate"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"600.000000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"product_id":{"type":"string","minLength":1},"quantity":{"type":"integer","minimum":1,"maximum":12},"email":{"type":"string","format":"email"},"shipping":{"type":"object","properties":{},"additionalProperties":true}},"required":["product_id","quantity","email","shipping"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/sayer-and-stone/catalog":{"post":{"operationId":"sayer_and_stone_catalog","summary":"sayer-and-stone/catalog","description":"Sayer & Stone — browse lab-grown diamond jewelry with variants and prices (free). Optional `category` (earrings | bracelets) or `slug` for one product.","tags":["sayer-and-stone"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"category":{"type":"string"},"slug":{"type":"string","minLength":1,"maxLength":200}},"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/sayer-and-stone/purchase":{"post":{"operationId":"sayer_and_stone_purchase","summary":"sayer-and-stone/purchase","description":"Sayer & Stone — buy made-to-order jewelry (real purchase). Params: `sku` (or `product_slug` + `options`), `quantity` (1-12), `email`, `shipping` {name, address_1, city, state, zip}, optional `gift_note`. Requires explicit max_cost_cents; confirm the piece, variant, and total with the user before calling.","tags":["sayer-and-stone"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"2000.000000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"quantity":{"type":"integer","minimum":1,"maximum":12},"email":{"type":"string","format":"email"},"shipping":{"type":"object","properties":{},"additionalProperties":true}},"required":["quantity","email","shipping"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/autoexchange/search":{"post":{"operationId":"autoexchange_search","summary":"autoexchange/search","description":"Auto.exchange — search the agent marketplace by name, skill, or description (free). Params: `q`.","tags":["autoexchange"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"q":{"type":"string","minLength":1}},"required":["q"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/autoexchange/run":{"post":{"operationId":"autoexchange_run","summary":"autoexchange/run","description":"Auto.exchange — hire and run another agent from the marketplace (price varies by agent + tokens, roughly $0.0006-$0.075 per 1k tokens). Params: `id` (agent id from autoexchange:search), `input`. Requires explicit max_cost_cents.","tags":["autoexchange"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"1.000000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","minLength":1}},"required":["id"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/tomba/email-finder":{"post":{"operationId":"tomba_email_finder","summary":"tomba/email-finder","description":"Find a person's professional email via Tomba from their name + company. Pass `domain` (preferred, e.g. stripe.com) or `company`, plus `full_name` or `first_name` + `last_name`. Returns the most likely email with a confidence score, sources, and position data. 1 Tomba credit — only charged upstream when a valid email is found.","tags":["tomba"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.040000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"domain":{"type":"string","minLength":3},"company":{"type":"string","minLength":1},"full_name":{"type":"string","minLength":2},"first_name":{"type":"string","minLength":1},"last_name":{"type":"string","minLength":1}},"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/tomba/domain-search":{"post":{"operationId":"tomba_domain_search","summary":"tomba/domain-search","description":"List all known professional email addresses at a company via Tomba. Pass `domain` (e.g. stripe.com) or `company` name; optional `country` (2-letter code), `department` (engineering/sales/finance/hr/it/marketing/operations/management), `page` + `limit` (10|20|50). Returns emails with names, positions, and the domain email pattern — good first step before email-finder when you only know the company.","tags":["tomba"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.040000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"domain":{"type":"string","minLength":3},"company":{"type":"string","minLength":1},"country":{"type":"string","minLength":2,"maxLength":2},"department":{"type":"string","minLength":2},"page":{"type":"integer","exclusiveMinimum":0},"limit":{"type":"number","enum":[10,20,50]}},"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/tomba/linkedin-finder":{"post":{"operationId":"tomba_linkedin_finder","summary":"tomba/linkedin-finder","description":"Reveal the professional email behind a LinkedIn profile via Tomba. Pass `url` (a linkedin.com/in/… profile URL); `full: true` returns ALL associated emails. Alternative to contactout:linkedin-contacts when you have the LinkedIn URL (cheaper, lower work-email precision). 1 Tomba credit.","tags":["tomba"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.050000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"full":{"type":"boolean"}},"required":["url"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/tomba/author-finder":{"post":{"operationId":"tomba_author_finder","summary":"tomba/author-finder","description":"Find the author of an article/blog post AND their email via Tomba. Pass `url` (the article URL). Returns the author's name, email, position, and socials — the outreach hook for content-based prospecting (no other vendor covers this).","tags":["tomba"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.040000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri"}},"required":["url"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/tomba/email-verifier":{"post":{"operationId":"tomba_email_verifier","summary":"tomba/email-verifier","description":"Verify an email address's deliverability via Tomba. Pass `email`. Returns status (deliverable/undeliverable/risky), SMTP + MX checks, disposable/webmail flags, and a score. Cheapest verify rung — use before sending to a found email.","tags":["tomba"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.020000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email"}},"required":["email"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/tomba/enrich":{"post":{"operationId":"tomba_enrich","summary":"tomba/enrich","description":"Enrich an email address into full person + company data via Tomba (combined enrichment). Pass `email`. Returns the person (name, position, socials, location) and their company (firmographics, domain, socials) in one call. 1 Tomba credit.","tags":["tomba"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.040000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email"}},"required":["email"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/tomba/phone-finder":{"post":{"operationId":"tomba_phone_finder","summary":"tomba/phone-finder","description":"Find a contact's phone number via Tomba. Pass one of `email`, `domain` (company phone), or `linkedin` (profile URL); `full: true` returns all associated numbers. 5 Tomba credits — the priciest Tomba action, use only when a phone channel is actually needed.","tags":["tomba"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.100000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email"},"domain":{"type":"string","minLength":3},"linkedin":{"type":"string","format":"uri"},"full":{"type":"boolean"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/icypeas/email-search":{"post":{"operationId":"icypeas_email_search","summary":"icypeas/email-search","description":"Find a person's professional email via Icypeas from their name + company. Pass `firstname` and/or `lastname` plus `domainOrCompany` (domain preferred, e.g. stripe.com). Returns `{ item: { _id } }` immediately — the search runs async. KEEP POLLING icypeas/result with that `id` (every 3-5s; Icypeas caps reads at 30/min) until `status` leaves NONE/SCHEDULED/IN_PROGRESS. FOUND/DEBITED = hit, NOT_FOUND/DEBITED_NOT_FOUND = processed but empty. Results carry the email(s) with a certainty grade (ultra_sure/sure/…) and MX provider. Icypeas only bills when an email is FOUND.","tags":["icypeas"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.040000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"firstname":{"type":"string","minLength":1},"lastname":{"type":"string","minLength":1},"domainOrCompany":{"type":"string","minLength":2},"custom":{"type":"object","properties":{"webhookUrl":{"type":"string","format":"uri"},"externalId":{"type":"string","minLength":1,"maxLength":200}},"additionalProperties":false}},"required":["domainOrCompany"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/icypeas/email-verification":{"post":{"operationId":"icypeas_email_verification","summary":"icypeas/email-verification","description":"Verify an email address's deliverability via Icypeas (SMTP-level). Pass `email`. Returns `{ item: { _id } }` immediately — the search runs async. KEEP POLLING icypeas/result with that `id` (every 3-5s; Icypeas caps reads at 30/min) until `status` leaves NONE/SCHEDULED/IN_PROGRESS. FOUND/DEBITED = hit, NOT_FOUND/DEBITED_NOT_FOUND = processed but empty. Second verification rung next to tomba/email-verifier — same price, different infrastructure; cross-check risky addresses before a send.","tags":["icypeas"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.020000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email"},"custom":{"type":"object","properties":{"webhookUrl":{"type":"string","format":"uri"},"externalId":{"type":"string","minLength":1,"maxLength":200}},"additionalProperties":false}},"required":["email"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/icypeas/domain-scan":{"post":{"operationId":"icypeas_domain_scan","summary":"icypeas/domain-scan","description":"Scan a domain for its ROLE-BASED email addresses via Icypeas (contact@, support@, admin@, …) — generic inboxes, not people. Pass `domainOrCompany`. Returns `{ item: { _id } }` immediately — the search runs async. KEEP POLLING icypeas/result with that `id` (every 3-5s; Icypeas caps reads at 30/min) until `status` leaves NONE/SCHEDULED/IN_PROGRESS. FOUND/DEBITED = hit, NOT_FOUND/DEBITED_NOT_FOUND = processed but empty. Complements tomba/domain-search (which lists PEOPLE at the company); use this rung when you need a reachable generic inbox.","tags":["icypeas"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.040000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"domainOrCompany":{"type":"string","minLength":2},"custom":{"type":"object","properties":{"webhookUrl":{"type":"string","format":"uri"},"externalId":{"type":"string","minLength":1,"maxLength":200}},"additionalProperties":false}},"required":["domainOrCompany"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/icypeas/result":{"post":{"operationId":"icypeas_result","summary":"icypeas/result","description":"Fetch the result of an Icypeas search launched by icypeas/email-search, email-verification, or domain-scan. Pass `id` (the `item._id` from the launch response); or list recent searches with `mode: \"single\"` (+ optional `type`: email-search|domain-scan|email-verification) or `mode: \"bulk\"`, `limit` ≤ 100. Read `items[0].status`: NONE/SCHEDULED/IN_PROGRESS = keep polling (every 3-5s, ≤30 reads/min); FOUND/DEBITED = done, read `items[0].results`; NOT_FOUND/DEBITED_NOT_FOUND = processed, nothing found; BAD_INPUT/INSUFFICIENT_FUNDS/ABORTED = terminal errors.","tags":["icypeas"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","minLength":1},"mode":{"type":"string","enum":["single","bulk"]},"type":{"type":"string","minLength":1},"file":{"type":"string","minLength":1},"limit":{"type":"integer","minimum":1,"maximum":100},"next":{"type":"boolean"},"sorts":{"type":"array","items":{}}},"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/contactout/person-from-email":{"post":{"operationId":"contactout_person_from_email","summary":"contactout/person-from-email","description":"Reverse-enrich an email address into a full person profile via ContactOut: name, current title/company, LinkedIn URL, work history. Pass `email` (work or personal). Use it to identify an inbound signup or reply before responding. Complements contactout/linkedin-contacts (which goes the other direction).","tags":["contactout"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.100000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email"}},"required":["email"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/contactout/email-verify":{"post":{"operationId":"contactout_email_verify","summary":"contactout/email-verify","description":"Verify an email address's deliverability via ContactOut. Pass `email`. Third verification rung next to tomba/email-verifier and icypeas/email-verification — same price; cross-check risky addresses before a send. Rate limit 150/min.","tags":["contactout"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.020000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email"}},"required":["email"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/sarvam/transcribe":{"post":{"operationId":"sarvam_transcribe","summary":"sarvam/transcribe","description":"Transcribe SHORT audio clips (under ~30 seconds) in Indian languages with Sarvam Saarika — voice notes, IVR replies, voice-search queries, call snippets in Hindi, Tamil, Telugu, Bengali, Marathi, and 6 more + Indian English. Pass `url` (a publicly reachable audio file ≤25MB — stage local files via files/upload first); language auto-detects, or pin `language_code` (e.g. \"hi-IN\"). Set `with_timestamps: true` for word timing. Response: `{ transcript, language_code, language_probability }`. For LONG-FORM audio (podcasts, full calls) or non-Indic languages use deepgram/transcribe instead.","tags":["sarvam"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.020000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"language_code":{"type":"string","pattern":"^[a-z]{2}-IN$"},"with_timestamps":{"type":"boolean"}},"required":["url"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/sarvam/translate":{"post":{"operationId":"sarvam_translate","summary":"sarvam/translate","description":"Translate text between English and 10 Indian languages (Hindi, Bengali, Tamil, Telugu, Marathi, Gujarati, Kannada, Malayalam, Punjabi, Odia) with Sarvam — built for Indic scripts, code-mixed text, and colloquial register where general LLMs slip. Pass `input` (max 1,000 chars per call), `source_language_code` (e.g. \"en-IN\", or \"auto\"), and `target_language_code` (e.g. \"ta-IN\"). Response: `{ translated_text }`. For long documents, chunk by paragraph.","tags":["sarvam"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.020000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"input":{"type":"string","minLength":1,"maxLength":1000},"source_language_code":{"anyOf":[{"type":"string","const":"auto"},{"type":"string","pattern":"^[a-z]{2}-IN$"}]},"target_language_code":{"type":"string","pattern":"^[a-z]{2}-IN$"}},"required":["input","source_language_code","target_language_code"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/theirstack/jobs":{"post":{"operationId":"theirstack_jobs","summary":"theirstack/jobs","description":"TheirStack — Search job postings across thousands of career sites and job boards (hiring signals, recruiting, market research). REQUIRED: `limit` (1-10, vendor bills per job returned) plus at least one of `posted_at_max_age_days`, `posted_at_gte`/`lte`, `company_domain_or`, `company_linkedin_url_or`, `company_name_or`. Rich filters: `job_title_or`, `job_description_pattern_or` (regex), `job_technology_slug_or` (case-sensitive slugs — resolve via theirstack/tech-catalog), `job_country_code_or` (2-letter), `remote`, `job_seniority_or`, `min_salary_usd`, `employment_statuses_or`, `page`. Returns full postings (title, company, location, salary, description, URLs, posting date).","tags":["theirstack"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.400000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":10},"page":{"type":"integer","minimum":0},"posted_at_max_age_days":{"type":"integer","minimum":0},"posted_at_gte":{"type":"string"},"posted_at_lte":{"type":"string"},"job_title_or":{"type":"array","items":{"type":"string"}},"job_description_pattern_or":{"type":"array","items":{"type":"string"}},"job_country_code_or":{"type":"array","items":{"type":"string","minLength":2,"maxLength":2}},"job_technology_slug_or":{"type":"array","items":{"type":"string"}},"job_seniority_or":{"type":"array","items":{"type":"string"}},"remote":{"type":["boolean","null"]},"min_salary_usd":{"type":"number","minimum":0},"max_salary_usd":{"type":"number","minimum":0},"employment_statuses_or":{"type":"array","items":{"type":"string"}},"company_name_or":{"type":"array","items":{"type":"string"}},"company_domain_or":{"type":"array","items":{"type":"string"}},"company_linkedin_url_or":{"type":"array","items":{"type":"string"}}},"required":["limit"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/theirstack/companies":{"post":{"operationId":"theirstack_companies","summary":"theirstack/companies","description":"TheirStack — Search companies by firmographics (industry, country, employee count, revenue, funding stage), tech stack (`company_technology_slug_or` — case-sensitive slugs from theirstack/tech-catalog), and hiring signals (`job_filters` + `min_num_jobs_found`: companies actively hiring for given roles/techs). REQUIRED: `limit` (1-5, vendor bills per company returned); `page` for more. Returns companies with the matching jobs/technologies attached — built for ABM, lookalike discovery, and competitive displacement.","tags":["theirstack"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.600000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":5},"page":{"type":"integer","minimum":0},"company_name_partial_match_or":{"type":"array","items":{"type":"string"}},"company_domain_or":{"type":"array","items":{"type":"string"}},"company_country_code_or":{"type":"array","items":{"type":"string","minLength":2,"maxLength":2}},"industry_or":{"type":"array","items":{"type":"string"}},"min_employee_count":{"type":"integer","minimum":0},"max_employee_count":{"type":"integer","minimum":0},"min_revenue_usd":{"type":"integer","minimum":0},"max_revenue_usd":{"type":"integer","minimum":0},"min_funding_usd":{"type":"integer","minimum":0},"funding_stage_or":{"type":"array","items":{"type":"string"}},"company_technology_slug_or":{"type":"array","items":{"type":"string"}},"company_keyword_slug_or":{"type":"array","items":{"type":"string"}},"only_yc_companies":{"type":["boolean","null"]},"company_investors_partial_match_or":{"type":"array","items":{"type":"string"}},"job_filters":{"type":"object","additionalProperties":{}},"min_num_jobs_found":{"type":"integer","minimum":0}},"required":["limit"],"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/theirstack/technographics":{"post":{"operationId":"theirstack_technographics","summary":"theirstack/technographics","description":"TheirStack — List the technologies a company uses, each with confidence (low/medium/high), the number of job posts mentioning it, and first/last dates seen. Pass ONE of `company_domain` (preferred), `company_name`, `company_linkedin_url`; optional `keyword_category_slug_or`, `confidence_or`, `min_jobs`, `limit` (rows). Flat vendor cost per company lookup regardless of rows; free upstream when the company isn't found.","tags":["theirstack"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.250000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"company_domain":{"type":"string","minLength":2},"company_name":{"type":"string","minLength":1},"company_linkedin_url":{"type":"string","minLength":2},"company_id":{"type":"string","minLength":1},"keyword_slug_or":{"type":"array","items":{"type":"string"}},"keyword_category_slug_or":{"type":"array","items":{"type":"string"}},"confidence_or":{"type":"array","items":{"type":"string","enum":["low","medium","high"]}},"min_jobs":{"type":"integer","minimum":0},"last_date_found_gte":{"type":"string"},"limit":{"type":"integer","minimum":1,"maximum":100},"page":{"type":"integer","minimum":0}},"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/theirstack/buying-intents":{"post":{"operationId":"theirstack_buying_intents","summary":"theirstack/buying-intents","description":"TheirStack — List the BUYING-INTENT topics detected for a company from its job posts (each with confidence, mention count, first/last dates). Pass ONE of `company_domain` (preferred), `company_name`, `company_linkedin_url`; optional `keyword_slug_or` to check specific topics (slugs from theirstack/tech-catalog with keyword_type_not=technology), `confidence_or`, `limit`. The qualification signal before outreach: is this account showing intent for what you sell?","tags":["theirstack"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.250000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"company_domain":{"type":"string","minLength":2},"company_name":{"type":"string","minLength":1},"company_linkedin_url":{"type":"string","minLength":2},"company_id":{"type":"string","minLength":1},"keyword_slug_or":{"type":"array","items":{"type":"string"}},"keyword_category_slug_or":{"type":"array","items":{"type":"string"}},"confidence_or":{"type":"array","items":{"type":"string","enum":["low","medium","high"]}},"min_jobs":{"type":"integer","minimum":0},"last_date_found_gte":{"type":"string"},"limit":{"type":"integer","minimum":1,"maximum":100},"page":{"type":"integer","minimum":0}},"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/theirstack/tech-catalog":{"post":{"operationId":"theirstack_tech_catalog","summary":"theirstack/tech-catalog","description":"TheirStack — Search the catalog of tracked keywords: technologies AND buying-intent topics. The slug resolver for every other theirstack filter (slugs are case-sensitive). Pass `q` (free-text search); optional `keyword_type` (\"technology\" = techs only), `keyword_type_not` (\"technology\" = intent topics only), `category_slug`, `limit` (default 25). Free upstream — always resolve slugs here before filtering jobs/companies by technology.","tags":["theirstack"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"q":{"type":"string","minLength":1},"name_pattern":{"type":"string","minLength":1},"keyword_type":{"type":"string","minLength":1},"keyword_type_not":{"type":"string","minLength":1},"category_slug":{"type":"string","minLength":1},"parent_category_slug":{"type":"string","minLength":1},"starts_with":{"type":"string","minLength":1},"page":{"type":"integer","minimum":0},"limit":{"type":"integer","minimum":1,"maximum":1000}},"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/signalbase/funding":{"post":{"operationId":"signalbase_funding","summary":"signalbase/funding","description":"Signalbase — Real-time FUNDING ROUND signals: who raised, how much, which round, from which investors, with sources. Filters: `date_preset` (\"last_30d\"…) or `dateFrom`/`dateTo`, `round` (Seed, Series A…), `round_flavor` (bridge/extension/secondary), `amount_min`/`amount_max` (USD), `investor_name`, `countries`/`categories` (comma-separated), `company_name`/`company_domain`/`company_linkedin_url`, `employee_count_min`/`max`, `verification_status`. `limit` ≤100, `page` for more — flat price per call regardless of rows. The \"why now\" trigger for outreach: congratulate + sell into fresh budgets.","tags":["signalbase"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.250000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"page":{"type":"integer","minimum":1},"limit":{"type":"integer","minimum":1,"maximum":100},"dateFrom":{"type":"string"},"dateTo":{"type":"string"},"date_preset":{"type":"string"},"countries":{"type":"string"},"exclude_countries":{"type":"string"},"sort_by":{"type":"string"},"sort_order":{"type":"string","enum":["asc","desc"]},"count":{"type":"string","enum":["true","false"]},"company_name":{"type":"string"},"company_domain":{"type":"string"},"company_linkedin_url":{"type":"string"},"search":{"type":"string"},"categories":{"type":"string"},"subcategories":{"type":"string"},"round":{"type":"string"},"round_flavor":{"type":"string"},"amount_min":{"type":"integer","minimum":0},"amount_max":{"type":"integer","minimum":0},"currency":{"type":"string"},"verification_status":{"type":"string"},"investor_name":{"type":"string"},"employee_count_min":{"type":"integer","minimum":0},"employee_count_max":{"type":"integer","minimum":0},"founded_year_min":{"type":"integer"},"founded_year_max":{"type":"integer"}},"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/signalbase/acquisitions":{"post":{"operationId":"signalbase_acquisitions","summary":"signalbase/acquisitions","description":"Signalbase — Real-time ACQUISITION (M&A) signals: acquiring + acquired company details, deal amounts, valuations, sources. Filters: `date_preset`/`dateFrom`/`dateTo`, `acquiring_company`, `acquirer_countries`, `countries`/`categories` (comma-separated), `amount_min`/`amount_max`, `company_name`/`company_domain`/`company_linkedin_url`, `verification_status`, `employee_count_min`/`max`. `limit` ≤100 — flat price per call. Use for M&A-triggered plays: churn risk at the acquired, expansion at the acquirer.","tags":["signalbase"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.250000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"page":{"type":"integer","minimum":1},"limit":{"type":"integer","minimum":1,"maximum":100},"dateFrom":{"type":"string"},"dateTo":{"type":"string"},"date_preset":{"type":"string"},"countries":{"type":"string"},"exclude_countries":{"type":"string"},"sort_by":{"type":"string"},"sort_order":{"type":"string","enum":["asc","desc"]},"count":{"type":"string","enum":["true","false"]},"company_name":{"type":"string"},"company_domain":{"type":"string"},"company_linkedin_url":{"type":"string"},"categories":{"type":"string"},"subcategories":{"type":"string"},"acquiring_company":{"type":"string"},"acquirer_countries":{"type":"string"},"exclude_acquirer_countries":{"type":"string"},"amount_min":{"type":"integer","minimum":0},"amount_max":{"type":"integer","minimum":0},"currency":{"type":"string"},"verification_status":{"type":"string"},"employee_count_min":{"type":"integer","minimum":0},"employee_count_max":{"type":"integer","minimum":0},"founded_year_min":{"type":"integer"},"founded_year_max":{"type":"integer"}},"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/signalbase/job-changes":{"post":{"operationId":"signalbase_job_changes","summary":"signalbase/job-changes","description":"Signalbase — Real-time JOB CHANGE signals: executive moves and role transitions sourced from LinkedIn + press releases (names GDPR-masked). Filters: `date_preset`/`dateFrom`/`dateTo`, `positions`/`departments`/`seniorities` (comma-separated), `new_role`, `keyword`, `company_name`/`company_domain`/`company_linkedin_url`, `personLinkedinUrl`, `countries`/`city`, `source` (linkedin/press_release). `limit` ≤100 — flat price per call. New-exec-in-seat is the classic 90-day buying window.","tags":["signalbase"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.250000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"page":{"type":"integer","minimum":1},"limit":{"type":"integer","minimum":1,"maximum":100},"dateFrom":{"type":"string"},"dateTo":{"type":"string"},"date_preset":{"type":"string"},"countries":{"type":"string"},"exclude_countries":{"type":"string"},"sort_by":{"type":"string"},"sort_order":{"type":"string","enum":["asc","desc"]},"count":{"type":"string","enum":["true","false"]},"company_name":{"type":"string"},"company_domain":{"type":"string"},"company_linkedin_url":{"type":"string"},"search":{"type":"string"},"city":{"type":"string"},"personLinkedinUrl":{"type":"string"},"new_role":{"type":"string"},"source":{"type":"string"},"keyword":{"type":"string"},"positions":{"type":"string"},"departments":{"type":"string"},"seniorities":{"type":"string"}},"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/signalbase/hiring":{"post":{"operationId":"signalbase_hiring","summary":"signalbase/hiring","description":"Signalbase — Real-time HIRING signals: open positions with applicant counts and team sizes. Filters: `date_preset`/`dateFrom`/`dateTo`, `positions`/`departments`/`seniorities` (comma-separated), `search`/`description` (full-text), `categories`, `countries`/`company_countries`/`job_countries`/`states`/`city`, `team_size`, `applicants`, `company_name`/`company_domain`/`company_linkedin_url`. `limit` ≤100 — flat price per call. Event-stream alternative to theirstack:jobs (which bills per posting): scan wide here, deep-filter there.","tags":["signalbase"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.250000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"page":{"type":"integer","minimum":1},"limit":{"type":"integer","minimum":1,"maximum":100},"dateFrom":{"type":"string"},"dateTo":{"type":"string"},"date_preset":{"type":"string"},"countries":{"type":"string"},"exclude_countries":{"type":"string"},"sort_by":{"type":"string"},"sort_order":{"type":"string","enum":["asc","desc"]},"count":{"type":"string","enum":["true","false"]},"company_name":{"type":"string"},"company_domain":{"type":"string"},"company_linkedin_url":{"type":"string"},"search":{"type":"string"},"description":{"type":"string"},"categories":{"type":"string"},"subcategories":{"type":"string"},"company_countries":{"type":"string"},"job_countries":{"type":"string"},"states":{"type":"string"},"city":{"type":"string"},"positions":{"type":"string"},"departments":{"type":"string"},"seniorities":{"type":"string"},"team_size":{"type":"string"},"applicants":{"type":"string"}},"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/signalbase/investors":{"post":{"operationId":"signalbase_investors","summary":"signalbase/investors","description":"Signalbase — INVESTORS database: VC firms, angels, PE, corporate investors, government funds, accelerators, family offices, hedge funds, crowdfunding platforms. Filters: `type` (vc/angel/pe/corporate/government/accelerator/family_office/hedge_fund/crowdfunding), `search`, `headquarters`, `countries`, `ticket_size_min`/`max` (USD). `limit` ≤100 — flat price per call. Qualify funds and build investor target lists; pair with signalbase:funding (`investor_name`) to see a fund’s recent deals.","tags":["signalbase"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.250000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"page":{"type":"integer","minimum":1},"limit":{"type":"integer","minimum":1,"maximum":100},"dateFrom":{"type":"string"},"dateTo":{"type":"string"},"date_preset":{"type":"string"},"countries":{"type":"string"},"exclude_countries":{"type":"string"},"sort_by":{"type":"string"},"sort_order":{"type":"string","enum":["asc","desc"]},"count":{"type":"string","enum":["true","false"]},"search":{"type":"string"},"type":{"type":"string"},"categories":{"type":"string"},"headquarters":{"type":"string"},"ticket_size_min":{"type":"integer","minimum":0},"ticket_size_max":{"type":"integer","minimum":0}},"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/signalbase/companies":{"post":{"operationId":"signalbase_companies","summary":"signalbase/companies","description":"Signalbase — COMPANY search independent of any signal: profiles with industry, headcount, location, founded year, categories. Filters: `search` (free text), `domain`/`linkedin_url` (exact lookup), `industry`/`categories` (comma-separated), `countries`, `employee_count_min`/`max`, `founded_year_min`/`max`. `limit` ≤100 — flat price per call. Use to resolve/browse companies before pulling their signals.","tags":["signalbase"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.250000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"page":{"type":"integer","minimum":1},"limit":{"type":"integer","minimum":1,"maximum":100},"dateFrom":{"type":"string"},"dateTo":{"type":"string"},"date_preset":{"type":"string"},"countries":{"type":"string"},"exclude_countries":{"type":"string"},"sort_by":{"type":"string"},"sort_order":{"type":"string","enum":["asc","desc"]},"count":{"type":"string","enum":["true","false"]},"search":{"type":"string"},"domain":{"type":"string"},"linkedin_url":{"type":"string"},"industry":{"type":"string"},"categories":{"type":"string"},"subcategories":{"type":"string"},"employee_count_min":{"type":"integer","minimum":0},"employee_count_max":{"type":"integer","minimum":0},"founded_year_min":{"type":"integer"},"founded_year_max":{"type":"integer"}},"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/signalbase/people":{"post":{"operationId":"signalbase_people","summary":"signalbase/people","description":"Signalbase — PEOPLE discovery with the signal attached: each result carries the matched signal (funding/job change/hiring) explaining WHY NOW. Filters: `title`/`function`/`seniority`, `signal_type` + `signal_date_range` (lookback), `company_size`/`industry`, `country`/`city`, `linkedin_url`/`company_domain`/`company_linkedin_url`. `limit` ≤100 — flat price per call. The signal-first alternative to plain ICP people search: start from who has a reason to buy this month.","tags":["signalbase"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.250000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"page":{"type":"integer","minimum":1},"limit":{"type":"integer","minimum":1,"maximum":100},"title":{"type":"string"},"function":{"type":"string"},"seniority":{"type":"string"},"country":{"type":"string"},"person_countries":{"type":"string"},"exclude_countries":{"type":"string"},"city":{"type":"string"},"company_size":{"type":"string"},"industry":{"type":"string"},"linkedin_url":{"type":"string"},"company_domain":{"type":"string"},"company_linkedin_url":{"type":"string"},"signal_type":{"type":"string"},"signal_date_range":{"type":"string"},"include_former":{"type":"string"},"count":{"type":"string","enum":["true","false"]}},"additionalProperties":true}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/fundable/deal-investors":{"post":{"operationId":"fundable_deal_investors","summary":"fundable/deal-investors","description":"Fundable — The full INVESTOR LINEUP for one funding round, by deal UUID (from fundable/deals `id`). Returns `investors` (firm name, `lead_investor` flag, domain, LinkedIn, Crunchbase, and `personnel` — the individual PARTNER credited on THIS round, with their LinkedIn) and `angel_investors` (name, LinkedIn, Crunchbase, Twitter). Flat price for the whole lineup however many investors it holds. The partner-per-round attribution is unique to this action — nyne/company-funders gives a fund's partners in general, signalbase/funding gives firm names only and leaves them empty on most rows. Feed the partner and angel LinkedIn URLs straight into outreach.","tags":["fundable"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.100000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"deal_id":{"type":"string","format":"uuid"}},"required":["deal_id"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/fundable/company":{"post":{"operationId":"fundable_company","summary":"fundable/company","description":"Fundable — One COMPANY profile plus its latest funding round, participating investors and source articles. Address it by any ONE of `id` (UUID from a deal row `company_id`), `domain`, `linkedin`, `crunchbase`. Returns name, domain, description, employee band, `ipo_status`, `num_funding_rounds`, `total_raised`, `latest_valuation_usd` + date, industries and location. This is the resolver for fundable/deals, whose rows carry only `company_id` — you need it for the domain, which is the join key for any outreach. Caveats from a live sample: entity resolution mismatched 1 of 10 (a $250M round attributed to a same-named company), and `total_raised` can lag the round attached to it, so trust the deal row over the aggregate.","tags":["fundable"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.100000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"domain":{"type":"string"},"linkedin":{"type":"string"},"crunchbase":{"type":"string"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/fundable/company-search":{"post":{"operationId":"fundable_company_search","summary":"fundable/company-search","description":"Fundable — Resolve a company NAME to Fundable's own company `id`, with fuzzy matching and a `relevance_score`. Pass any ONE of `name`, `domain`, `linkedin`, `crunchbase`. The entry point to the graph when all you have is a name: the `id` it returns is what fundable/company and fundable/company-deals take. If you already have a domain, call those directly instead and save the hop.","tags":["fundable"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"domain":{"type":"string"},"linkedin":{"type":"string"},"crunchbase":{"type":"string"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/fundable/investor-search":{"post":{"operationId":"fundable_investor_search","summary":"fundable/investor-search","description":"Fundable — Resolve a FUND or firm NAME to Fundable's own investor `id`, with fuzzy matching and a `relevance_score`. Pass any ONE of `name`, `domain`, `linkedin`, `crunchbase`. Returns id, `guru_permalink`, description, domain and socials. This is how you go from \"Benchmark\" to the id fundable/investor-deals needs, so it is the first call in any fund → portfolio walk that starts from a name.","tags":["fundable"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"domain":{"type":"string"},"linkedin":{"type":"string"},"crunchbase":{"type":"string"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/fundable/person-search":{"post":{"operationId":"fundable_person_search","summary":"fundable/person-search","description":"Fundable — Resolve a PERSON to Fundable's own person `id`, across both investors and non-investor people. Pass exactly ONE of `name`, `id`, `linkedin`, `crunchbase`, `twitter`. The id it returns is what fundable/person-deals takes, so this is the first call when you want every round an angel or a named partner has backed and you only have their name or profile URL.","tags":["fundable"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"id":{"type":"string"},"linkedin":{"type":"string"},"crunchbase":{"type":"string"},"twitter":{"type":"string"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/fundable/industry-search":{"post":{"operationId":"fundable_industry_search","summary":"fundable/industry-search","description":"Fundable — Resolve an industry or super-category NAME to the exact permalink that fundable/deals expects (\"fintech\" → \"fintech-e067\", \"AI\" → \"artificial-intelligence-e551\"). Fuzzy match on `name`; optional `type`: INDUSTRY (specific) or SUPER_CATEGORY (broad, auto-includes its child industries). FREE upstream. Run this BEFORE any industry-filtered call — a hand-written permalink is silently ignored and you pay for unfiltered rows.","tags":["fundable"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1},"type":{"type":"string","enum":["INDUSTRY","SUPER_CATEGORY"]}},"required":["name"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/fundable/location-search":{"post":{"operationId":"fundable_location_search","summary":"fundable/location-search","description":"Fundable — Resolve a place NAME to the exact permalink that fundable/deals expects (\"san francisco\" → \"san-francisco-california\"). Fuzzy match on `name`; optional `type`: CITY, STATE, REGION or COUNTRY. FREE upstream. Run this BEFORE any location-filtered call — a hand-written permalink is silently ignored and you pay for unfiltered rows.","tags":["fundable"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1},"type":{"type":"string","enum":["CITY","STATE","REGION","COUNTRY"]}},"required":["name"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/nyne/company-funders":{"post":{"operationId":"nyne_company_funders","summary":"nyne/company-funders","description":"Investor intelligence on a VC/fund via Nyne — pass `company_name` or `company_domain` of the INVESTOR. Returns investment thesis, partners (with LinkedIn URLs), average check size, rounds they invest in, and recent investments. THE data source for a fundraise intent: qualify investors before outreach and pull partner names as leads. ASYNC: 202 + request_id — poll `nyne:result`. No match = 404, not charged upstream.","tags":["nyne"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.300000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"company_name":{"type":"string","maxLength":255},"company_domain":{"type":"string","maxLength":255}},"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/nyne/person-interactions":{"post":{"operationId":"nyne_person_interactions","summary":"nyne/person-interactions","description":"Engagement mining via Nyne — who follows / is followed by / replied to a profile or post. Pass `social_media_url` (platform inferred) + `type` ∈ replies|followers|following|\"followers,following\" (+ `tweet_id` for a specific post's replies, `max_results` 10-1000). Returns usernames, display names, profile URLs, follower counts, verified flags — turn the people engaging with a launch/topic into leads. ASYNC: 202 + request_id — poll `nyne:result`.","tags":["nyne"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.300000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"social_media_url":{"type":"string","format":"uri"},"type":{"type":"string","enum":["replies","followers","following","followers,following"]},"username":{"type":"string","maxLength":100},"tweet_id":{"type":"string","maxLength":25},"max_results":{"type":"integer","minimum":10,"maximum":1000}},"required":["social_media_url","type"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/openfunnel/tam-build":{"post":{"operationId":"openfunnel_tam_build","summary":"openfunnel/tam-build","description":"Build an ENTIRE TAM (total addressable market) from a plain-English ICP via OpenFunnel: { query } (≤500 chars, e.g. \"cloud observability tools for mid-market SaaS\"). ASYNC — returns { job_id } immediately; poll `openfunnel:results` {kind:\"tam\"} until status \"completed\", then page with `cursor`. Yields THOUSANDS of companies (1 vendor-credit each) — use `openfunnel:job-control` to pause/cancel and cap the run; for a fixed-size shortlist use `openfunnel:lookalikes` instead. PLACEHOLDER flat price while vendor pricing is unpublished.","tags":["openfunnel"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"5.000000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","minLength":1,"maxLength":500}},"required":["query"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/openfunnel/tech-companies":{"post":{"operationId":"openfunnel_tech_companies","summary":"openfunnel/tech-companies","description":"Find companies whose recent JOB POSTS mention a technology via OpenFunnel (SYNC, 50 results/page): { tech } (e.g. \"Snowflake\") + optional `variations` (OR-matched phrasings, e.g. [\"K8s\"]), `lookback_days` (≤365), `page`, `enrich` (firmographics), `hq_country_code` (alpha-3), min/max_employee_count (filters auto-enable enrich), `include_evidence` (the job-post snippet — the outreach hook). Perfect for \"sell to companies running X\" and competitor-displacement plays.","tags":["openfunnel"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.400000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"tech":{"type":"string","minLength":1,"maxLength":128},"variations":{"type":"array","items":{"type":"string"}},"lookback_days":{"type":"integer","minimum":1,"maximum":365},"page":{"type":"integer","minimum":1,"maximum":1000},"exclude_vendor":{"type":"boolean"},"exclude_aggregators":{"type":"boolean"},"exclude_company_slugs":{"type":"array","items":{"type":"string"}},"include_evidence":{"type":"boolean"},"enrich":{"type":"boolean"},"hq_country_code":{"type":"string","minLength":3,"maxLength":3},"min_employee_count":{"type":"integer","minimum":0},"max_employee_count":{"type":"integer","minimum":0}},"required":["tech"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/openfunnel/deep-research":{"post":{"operationId":"openfunnel_deep_research","summary":"openfunnel/deep-research","description":"Deep-research and QUALIFY one known company against your questions via OpenFunnel (SYNC): { domain } + at least one of `activity_question` (\"are they investing in data infra?\" — answered from recent job posts, `timeframe_days` default 90) and `qualifier_question` (\"do they have a platform team led by a director+?\" — answered from LinkedIn employee profiles). Returns qualified:boolean + reasoned answer + sources (job posts / people). THE pre-outreach qualifier; a 404 domain is free.","tags":["openfunnel"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.200000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"domain":{"type":"string","minLength":3},"activity_question":{"type":"string","minLength":1},"qualifier_question":{"type":"string","minLength":1},"timeframe_days":{"type":"integer","minimum":1,"maximum":365},"max_jobs_to_check":{"type":"integer","minimum":1,"maximum":200}},"required":["domain"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/akta/employee-reviews":{"post":{"operationId":"akta_employee_reviews","summary":"akta/employee-reviews","description":"Employee reviews for a company (Glassdoor-style: ratings, pros/cons, sentiment over time) by domain or Akta uuid. Culture and attrition signal for qualifying accounts or vetting partners. Pass { company: 'canva.com' }; `limit`/`offset` paginate (≤50 reviews per call).","tags":["akta"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.110000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"company":{"type":"string","minLength":3},"limit":{"type":"integer","minimum":1,"maximum":50},"offset":{"type":"integer","minimum":0}},"required":["company"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/akta/product-reviews":{"post":{"operationId":"akta_product_reviews","summary":"akta/product-reviews","description":"Product reviews for a company's offerings (ratings, star distribution, pros/cons, reviewer metadata) by domain or Akta uuid. Competitive teardown and win/loss signal. Pass { company: 'tesla.com' }; optional `products` narrows to specific product ids.","tags":["akta"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.110000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"company":{"type":"string","minLength":3},"products":{"type":"array","items":{"type":"string","minLength":1}}},"required":["company"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/akta/headcount-trends":{"post":{"operationId":"akta_headcount_trends","summary":"akta/headcount-trends","description":"Workforce metrics for a company by domain or Akta uuid: total headcount, growth rates across time windows, staffing breakdown by function. Growth/contraction signal for account prioritization.","tags":["akta"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.180000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"company":{"type":"string","minLength":3}},"required":["company"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/akta/website-traffic":{"post":{"operationId":"akta_website_traffic","summary":"akta/website-traffic","description":"Website traffic estimates for a company by domain or Akta uuid — visit trends as a demand/momentum signal.","tags":["akta"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.110000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"company":{"type":"string","minLength":3}},"required":["company"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/akta/job-posts":{"post":{"operationId":"akta_job_posts","summary":"akta/job-posts","description":"Live job posts for a company by domain or Akta uuid: title, location, salary range, experience level, required skills. Hiring signal — what they're building and where they're investing. `limit` paginates.","tags":["akta"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.210000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"company":{"type":"string","minLength":3},"limit":{"type":"integer","minimum":1,"maximum":100},"offset":{"type":"integer","minimum":0}},"required":["company"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run/akta/social-posts":{"post":{"operationId":"akta_social_posts","summary":"akta/social-posts","description":"Recent social posts by a company (content + engagement metrics) by domain or Akta uuid. Messaging and launch-activity signal for outreach hooks.","tags":["akta"],"security":[{"bearerAuth":[]},{}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.110000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"company":{"type":"string","minLength":3},"limit":{"type":"integer","minimum":1,"maximum":100},"offset":{"type":"integer","minimum":0}},"required":["company"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"balance_remaining_cents":{"type":"integer","description":"Account balance left after this call, in cents (bearer auth only)"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"400":{"description":"Bad request — malformed body or params that failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid bearer token (Vaaya API key or OAuth access token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited — retry after the interval in the Retry-After header","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/run":{"get":{"operationId":"catalog_index","security":[],"summary":"Free catalog index of every service endpoint with prices","description":"Returns every callable service/action with its price and schema. Free, unauthenticated, safe to poll for discovery.","responses":{"200":{"description":"Catalog listing","content":{"application/json":{"schema":{"type":"object"}}}},"500":{"description":"Internal or upstream provider error — the call was not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}