{"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":{"email":"support@vaaya.ai"}},"servers":[{"url":"https://vaaya.ai"}],"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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/api/run/vaaya/supersearch":{"post":{"operationId":"vaaya_supersearch","summary":"vaaya/supersearch","description":"Vaaya SuperSearch — one flat-priced call that plans and executes a multi-source retrieval: races independent search indexes, chains full-content extraction when fidelity is required, and returns normalized evidence where every item cites its transaction id. The simplest usage is just `query` (required) in plain English — an intent classifier authors the routing frame for you. To route it yourself, add any of: `facets` (one or more of [\"web\",\"docs\",\"news\",\"academic\",\"code\"], default [\"web\"]; each fires its own source ladder concurrently), `timeCritical` (race two indexes), `fidelityRequired` (fetch full page content — docs come back as complete markdown, never summarized), `recencyDays`, `domains`/`excludeDomains`, `urls` (skip search and extract these directly), `asOf` (YYYYMMDD — fetch archived copies via the Wayback Machine), `maxResults`. Flat 5¢ — internal source calls are included in the price.","tags":["vaaya"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/api/run/firecrawl/scrape":{"post":{"operationId":"firecrawl_scrape","summary":"firecrawl/scrape","description":"Firecrawl — Scrape a single URL and return clean markdown/HTML.","tags":["firecrawl"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/api/run/firecrawl/crawl":{"post":{"operationId":"firecrawl_crawl","summary":"firecrawl/crawl","description":"Firecrawl — Crawl a website starting from a URL, following links.","tags":["firecrawl"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/api/run/firecrawl/map":{"post":{"operationId":"firecrawl_map","summary":"firecrawl/map","description":"Firecrawl — Map all URLs on a website without scraping content.","tags":["firecrawl"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/api/run/firecrawl/search":{"post":{"operationId":"firecrawl_search","summary":"firecrawl/search","description":"Firecrawl — Search the web and return scraped results.","tags":["firecrawl"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/api/run/firecrawl/extract":{"post":{"operationId":"firecrawl_extract","summary":"firecrawl/extract","description":"Firecrawl — Extract structured data from URLs using a schema.","tags":["firecrawl"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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>…\" }`. 4× the price of the datacenter rung — escalate here only after a plain scrape fails.","tags":["scrapingant"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/api/run/parallel/search":{"post":{"operationId":"parallel_search","summary":"parallel/search","description":"Parallel — AI-powered web search via x402 (1¢ flat).","tags":["parallel"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/api/run/agentmail/reply":{"post":{"operationId":"agentmail_reply","summary":"agentmail/reply","description":"AgentMail — Reply to a specific message via x402.","tags":["agentmail"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/api/run/modal/sandbox-terminate":{"post":{"operationId":"modal_sandbox_terminate","summary":"modal/sandbox-terminate","description":"Modal — Terminate a running sandbox.","tags":["modal"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/api/run/modal/sandbox-status":{"post":{"operationId":"modal_sandbox_status","summary":"modal/sandbox-status","description":"Modal — Check status of a sandbox.","tags":["modal"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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 prospeo:enrich when you have the LinkedIn URL. 1 Tomba credit.","tags":["tomba"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/api/run/prospeo/search-people":{"post":{"operationId":"prospeo_search_people","summary":"prospeo/search-people","description":"Find people by ICP via Prospeo (search-person). Required `job_titles` (array, CONTAINS-matched). Optional: `seniority` (Founder/Owner, C-Suite, Vice President, Director, Manager, Head, Partner, Senior, Entry, Intern), `industries` (canonical, e.g. \"Software Development\", \"Technology, Information and Internet\"), `headcount` (buckets 1-10 … 10000+), `person_locations`/`company_locations` (canonical — resolve free text via `prospeo:suggest` first), `funding_stages` (Pre seed, Seed, Series A-D, Angel, Grant, …), `funded_within_days` (raised within N days — a timing signal), `accelerator` (e.g. \"Y Combinator\"), `years_experience` {min,max}, `departments`, `company_domains` (≤500 domains to pre-scope to specific companies), `page`. Returns people with name, current_job_title, linkedin_url, and a verified (masked) email — reveal with `prospeo:enrich`.","tags":["prospeo"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.050000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"job_titles":{"type":"array","items":{"type":"string","minLength":1},"minItems":1},"seniority":{"type":"array","items":{"type":"string","enum":["C-Suite","Director","Entry","Founder/Owner","Head","Intern","Manager","Partner","Senior","Vice President"]}},"industries":{"type":"array","items":{"type":"string"}},"headcount":{"type":"array","items":{"type":"string","enum":["1-10","11-20","21-50","51-100","101-200","201-500","501-1000","1001-2000","2001-5000","5001-10000","10000+"]}},"person_locations":{"type":"array","items":{"type":"string"}},"company_locations":{"type":"array","items":{"type":"string"}},"funding_stages":{"type":"array","items":{"type":"string","enum":["Pre seed","Seed","Series A","Series B","Series C","Series D","Series E-J","Angel","Grant","Private equity","Debt financing","Corporate round","Convertible note","Equity crowdfunding","Product crowdfunding"]}},"funded_within_days":{"type":"integer","exclusiveMinimum":0},"accelerator":{"type":"string","minLength":1},"years_experience":{"type":"object","properties":{"min":{"type":"integer","minimum":0},"max":{"type":"integer","exclusiveMinimum":0}},"additionalProperties":false},"departments":{"type":"array","items":{"type":"string"}},"company_domains":{"type":"array","items":{"type":"string"},"maxItems":500},"page":{"type":"integer","exclusiveMinimum":0}},"required":["job_titles"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/api/run/prospeo/enrich":{"post":{"operationId":"prospeo_enrich","summary":"prospeo/enrich","description":"Reveal a person's verified email via Prospeo. Pass `person_id` (from search-people) or `linkedin_url`. Returns the unmasked verified email. 1 credit; free if the record was enriched within 90 days.","tags":["prospeo"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.050000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"person_id":{"type":"string","minLength":1},"linkedin_url":{"type":"string","format":"uri"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/api/run/prospeo/verify":{"post":{"operationId":"prospeo_verify","summary":"prospeo/verify","description":"Verify an email address's deliverability via Prospeo (rides enrich-person with an email input — the 2026 API has no standalone verifier). Pass `email`. The response's `person.email.status` is the verdict (e.g. VERIFIED) with `verification_method`. 1 credit per found email; no vendor charge on a miss; results cached 90 days upstream.","tags":["prospeo"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.050000"},"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/api/run/apollo/person-enrich":{"post":{"operationId":"apollo_person_enrich","summary":"apollo/person-enrich","description":"Match a person against Apollo's B2B database and reveal their work email — the FINAL enrichment backup after Prospeo and Nyne. Pass any of: `email`, `linkedin_url`, `name` (or `first_name`+`last_name`) with `organization_name`/`domain` to disambiguate; `reveal_personal_emails: true` adds personal addresses. NOTE: requires a paid Apollo plan with API access — on gated plans the call returns 403 API_INACCESSIBLE (not charged); treat as a miss.","tags":["apollo"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.100000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"first_name":{"type":"string","minLength":1},"last_name":{"type":"string","minLength":1},"name":{"type":"string","minLength":2},"email":{"type":"string","format":"email"},"organization_name":{"type":"string","minLength":1},"domain":{"type":"string","minLength":3},"linkedin_url":{"type":"string","format":"uri"},"reveal_personal_emails":{"type":"boolean"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/api/run/apollo/org-enrich":{"post":{"operationId":"apollo_org_enrich","summary":"apollo/org-enrich","description":"Company firmographics by domain via Apollo (works on the current plan): name, employee count, industry, socials, and often a COMPANY PHONE number. Pass { domain: 'stripe.com' }. Good for grounding a draft in company facts when the lead's company is thin.","tags":["apollo"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.050000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"domain":{"type":"string","minLength":3}},"required":["domain"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/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"],"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"},"data":{"description":"Service-specific result payload"},"charged_cents":{"type":"integer","description":"Price charged for this call, in cents"},"transaction_id":{"type":"string"}},"required":["ok","data","charged_cents"]}}}},"402":{"description":"Payment Required (x402: USDC on Base, no account needed)"}}}},"/api/run":{"get":{"operationId":"catalog_index","security":[],"summary":"Free catalog index of every service endpoint with prices","responses":{"200":{"description":"Catalog listing"}}}}}}