{"openapi":"3.1.0","info":{"title":"TaskFleet","version":"0.3.3","description":"Pay-per-call AI task APIs. x402/USDC on Base — no accounts, no keys."},"servers":[{"url":"https://taskfleet.net"}],"paths":{"/summarize":{"post":{"operationId":"summarize","summary":"Summarize text (up to 100k chars). Input: { text, style? (bullets|paragraph|tldr), length? (short|medium|long), language? }.","x-price-usd":0.005,"x-payment":"x402 (USDC on Base)","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","description":"Text to summarize (max 100k chars)"},"style":{"type":"string","description":"bullets | paragraph | tldr"},"length":{"type":"string","description":"short | medium | long"},"language":{"type":"string","description":"Output language (default: source language)"}},"required":["text"]}}}},"responses":{"200":{"description":"Result envelope: { result, service, model, tokens, latency_ms, cached }","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"string"},"service":{"type":"string"},"cached":{"type":"boolean"}}},"example":{"result":"A tight 1-2 sentence summary of the input text.","service":"summarize","cached":false}}}},"400":{"description":"Invalid input (no payment taken)"},"402":{"description":"Payment required — x402 instructions in PAYMENT-REQUIRED header"},"502":{"description":"Model failed to produce valid output"},"503":{"description":"Daily budget exhausted; retry later"}}}},"/summarize-url":{"post":{"operationId":"summarize-url","summary":"Fetch a public URL (HTML or PDF) and summarize it with article-quality extraction. Input: { url, style?, length?, language? }.","x-price-usd":0.01,"x-payment":"x402 (USDC on Base)","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"Public http(s) URL — HTML pages and PDFs supported"},"style":{"type":"string","description":"bullets | paragraph | tldr"},"length":{"type":"string","description":"short | medium | long"},"language":{"type":"string","description":"Output language"}},"required":["url"]}}}},"responses":{"200":{"description":"Result envelope: { result, service, model, tokens, latency_ms, cached }","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"string"},"service":{"type":"string"},"cached":{"type":"boolean"}}},"example":{"result":"A summary of the fetched page's main content.","service":"summarize-url","cached":false}}}},"400":{"description":"Invalid input (no payment taken)"},"402":{"description":"Payment required — x402 instructions in PAYMENT-REQUIRED header"},"502":{"description":"Model failed to produce valid output"},"503":{"description":"Daily budget exhausted; retry later"}}}},"/summarize-large":{"post":{"operationId":"summarize-large","summary":"Summarize LARGE documents — up to 400k chars (~100k tokens) in one call. Input: { text, style?, length?, language? }.","x-price-usd":0.25,"x-payment":"x402 (USDC on Base)","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","description":"Text to summarize (max 400k chars)"},"style":{"type":"string"},"length":{"type":"string"},"language":{"type":"string"}},"required":["text"]}}}},"responses":{"200":{"description":"Result envelope: { result, service, model, tokens, latency_ms, cached }","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"string"},"service":{"type":"string"},"cached":{"type":"boolean"}}},"example":{"result":"A summary condensing a very large document.","service":"summarize-large","cached":false}}}},"400":{"description":"Invalid input (no payment taken)"},"402":{"description":"Payment required — x402 instructions in PAYMENT-REQUIRED header"},"502":{"description":"Model failed to produce valid output"},"503":{"description":"Daily budget exhausted; retry later"}}}},"/summarize-pro":{"post":{"operationId":"summarize-pro","summary":"Premium-model summarization for nuance-critical documents (up to 40k chars). Input: { text, style?, length?, language? }.","x-price-usd":0.06,"x-payment":"x402 (USDC on Base)","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","description":"Text to summarize (max 40k chars)"},"style":{"type":"string"},"length":{"type":"string"},"language":{"type":"string"}},"required":["text"]}}}},"responses":{"200":{"description":"Result envelope: { result, service, model, tokens, latency_ms, cached }","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"string"},"service":{"type":"string"},"cached":{"type":"boolean"}}},"example":{"result":"A nuanced, premium-model summary.","service":"summarize-pro","cached":false}}}},"400":{"description":"Invalid input (no payment taken)"},"402":{"description":"Payment required — x402 instructions in PAYMENT-REQUIRED header"},"502":{"description":"Model failed to produce valid output"},"503":{"description":"Daily budget exhausted; retry later"}}}},"/extract":{"post":{"operationId":"extract","summary":"Extract structured data / JSON from text or a URL — GUARANTEED-valid, schema-validated, and auto-repaired before you get it. Give comma-separated field names or a full JSON Schema. Input: { text? | url?, fields? OR schema? }.","x-price-usd":0.01,"x-payment":"x402 (USDC on Base)","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","description":"Raw text (max 100k chars; or provide url)"},"url":{"type":"string","description":"Public http(s) URL (or provide text)"},"fields":{"type":"string","description":"Comma-separated field names"},"schema":{"type":"object","description":"JSON Schema the output must conform to (type/properties/required/items/enum subset)"}}}}}},"responses":{"200":{"description":"Result envelope: { result, service, model, tokens, latency_ms, cached }","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object"},"service":{"type":"string"},"cached":{"type":"boolean"}}},"example":{"result":{"name":"Jane Doe","title":"VP Sales","email":"jane@acme.com"},"service":"extract","cached":false}}}},"400":{"description":"Invalid input (no payment taken)"},"402":{"description":"Payment required — x402 instructions in PAYMENT-REQUIRED header"},"502":{"description":"Model failed to produce valid output"},"503":{"description":"Daily budget exhausted; retry later"}}}},"/extract-large":{"post":{"operationId":"extract-large","summary":"Structured extraction from LARGE documents (up to 400k chars) as guaranteed-valid JSON. Input: { text, fields? OR schema? }.","x-price-usd":0.25,"x-payment":"x402 (USDC on Base)","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","description":"Raw text (max 400k chars)"},"fields":{"type":"string"},"schema":{"type":"object"}},"required":["text"]}}}},"responses":{"200":{"description":"Result envelope: { result, service, model, tokens, latency_ms, cached }","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object"},"service":{"type":"string"},"cached":{"type":"boolean"}}},"example":{"result":{"title":"Q3 Report","date":"2026-07-01","parties":["Acme","Beta"]},"service":"extract-large","cached":false}}}},"400":{"description":"Invalid input (no payment taken)"},"402":{"description":"Payment required — x402 instructions in PAYMENT-REQUIRED header"},"502":{"description":"Model failed to produce valid output"},"503":{"description":"Daily budget exhausted; retry later"}}}},"/translate":{"post":{"operationId":"translate","summary":"Translate text (up to 6k chars) with placeholder preservation. Input: { text, target, source? }. For many strings at once use /translate-batch.","x-price-usd":0.01,"x-payment":"x402 (USDC on Base)","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","description":"Text to translate (max 6k chars)"},"target":{"type":"string","description":"Target language, e.g. 'Spanish'"},"source":{"type":"string","description":"Source language (auto-detected if omitted)"}},"required":["text","target"]}}}},"responses":{"200":{"description":"Result envelope: { result, service, model, tokens, latency_ms, cached }","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"string"},"service":{"type":"string"},"cached":{"type":"boolean"}}},"example":{"result":"Buenos días, ¿cómo estás?","service":"translate","cached":false}}}},"400":{"description":"Invalid input (no payment taken)"},"402":{"description":"Payment required — x402 instructions in PAYMENT-REQUIRED header"},"502":{"description":"Model failed to produce valid output"},"503":{"description":"Daily budget exhausted; retry later"}}}},"/translate-batch":{"post":{"operationId":"translate-batch","summary":"Translate up to 200 strings in one call (localization workflows) — returns a guaranteed-valid JSON array in the same order, placeholders preserved. Input: { texts: [..], target, source? }.","x-price-usd":0.08,"x-payment":"x402 (USDC on Base)","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"texts":{"type":"array","description":"Array of strings (max 200 items, 40k chars total)"},"target":{"type":"string","description":"Target language"},"source":{"type":"string","description":"Source language (optional)"}},"required":["texts","target"]}}}},"responses":{"200":{"description":"Result envelope: { result, service, model, tokens, latency_ms, cached }","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"array","items":{"type":"string"}},"service":{"type":"string"},"cached":{"type":"boolean"}}},"example":{"result":["Hola","Adiós","Gracias"],"service":"translate-batch","cached":false}}}},"400":{"description":"Invalid input (no payment taken)"},"402":{"description":"Payment required — x402 instructions in PAYMENT-REQUIRED header"},"502":{"description":"Model failed to produce valid output"},"503":{"description":"Daily budget exhausted; retry later"}}}},"/code-review":{"post":{"operationId":"code-review","summary":"Review code or a diff (up to 60k chars). Default output: guaranteed-valid JSON findings [{line, severity, issue, fix}]. Input: { code? | diff?, language?, focus?, format? ('json'|'text') }.","x-price-usd":0.02,"x-payment":"x402 (USDC on Base)","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","description":"Code to review (max 60k chars; or provide diff)"},"diff":{"type":"string","description":"Unified diff to review (max 60k chars)"},"language":{"type":"string","description":"Language hint"},"focus":{"type":"string","description":"e.g. 'security'"},"format":{"type":"string","description":"json (default) | text"}}}}}},"responses":{"200":{"description":"Result envelope: { result, service, model, tokens, latency_ms, cached }","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","properties":{"findings":{"type":"array"},"summary":{"type":"string"}}},"service":{"type":"string"},"cached":{"type":"boolean"}}},"example":{"result":{"findings":[{"line":1,"severity":"major","issue":"returns a-b, not a+b","fix":"return a + b"}],"summary":"One logic bug."},"service":"code-review","cached":false}}}},"400":{"description":"Invalid input (no payment taken)"},"402":{"description":"Payment required — x402 instructions in PAYMENT-REQUIRED header"},"502":{"description":"Model failed to produce valid output"},"503":{"description":"Daily budget exhausted; retry later"}}}},"/code-review-pro":{"post":{"operationId":"code-review-pro","summary":"Premium-model code review (up to 40k chars) — deeper reasoning on subtle bugs, race conditions, security. Same JSON findings format. Input: { code? | diff?, language?, focus? }.","x-price-usd":0.1,"x-payment":"x402 (USDC on Base)","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"diff":{"type":"string"},"language":{"type":"string"},"focus":{"type":"string"}}}}}},"responses":{"200":{"description":"Result envelope: { result, service, model, tokens, latency_ms, cached }","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","properties":{"findings":{"type":"array"},"summary":{"type":"string"}}},"service":{"type":"string"},"cached":{"type":"boolean"}}},"example":{"result":{"findings":[{"line":1,"severity":"critical","issue":"unguarded divide by zero","fix":"reject b === 0"}],"summary":"One critical bug."},"service":"code-review-pro","cached":false}}}},"400":{"description":"Invalid input (no payment taken)"},"402":{"description":"Payment required — x402 instructions in PAYMENT-REQUIRED header"},"502":{"description":"Model failed to produce valid output"},"503":{"description":"Daily budget exhausted; retry later"}}}},"/rewrite":{"post":{"operationId":"rewrite","summary":"Rewrite text (up to 10k chars) per instruction — tone, length, format. Input: { text, instruction }.","x-price-usd":0.01,"x-payment":"x402 (USDC on Base)","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","description":"Text to rewrite (max 10k chars)"},"instruction":{"type":"string","description":"e.g. 'make it professional and half the length'"}},"required":["text","instruction"]}}}},"responses":{"200":{"description":"Result envelope: { result, service, model, tokens, latency_ms, cached }","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"string"},"service":{"type":"string"},"cached":{"type":"boolean"}}},"example":{"result":"Please send me the report at your earliest convenience.","service":"rewrite","cached":false}}}},"400":{"description":"Invalid input (no payment taken)"},"402":{"description":"Payment required — x402 instructions in PAYMENT-REQUIRED header"},"502":{"description":"Model failed to produce valid output"},"503":{"description":"Daily budget exhausted; retry later"}}}},"/search":{"post":{"operationId":"search","summary":"Web search API — search the web and get clean ranked JSON results (title, url, snippet) via Serper with automatic Brave failover and cross-provider dedup. Optional cited answer. Input: { query, num? (1-20), answer? (bool) }.","x-price-usd":0.01,"x-payment":"x402 (USDC on Base)","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","description":"Search query (max 400 chars)"},"num":{"type":"integer","description":"Number of results, 1-20 (default 10)"},"answer":{"type":"boolean","description":"If true, also return an LLM answer citing the results"}},"required":["query"]}}}},"responses":{"200":{"description":"Result envelope: { result, service, model, tokens, latency_ms, cached }","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","properties":{"query":{"type":"string"},"provider":{"type":"string"},"count":{"type":"integer"},"results":{"type":"array"}}},"service":{"type":"string"},"cached":{"type":"boolean"}}},"example":{"result":{"query":"x402 protocol adoption 2026","provider":"serper","count":2,"results":[{"title":"x402 grows","url":"https://example.com/x402","snippet":"...","rank":1}]},"service":"search","cached":false}}}},"400":{"description":"Invalid input (no payment taken)"},"402":{"description":"Payment required — x402 instructions in PAYMENT-REQUIRED header"},"502":{"description":"Model failed to produce valid output"},"503":{"description":"Daily budget exhausted; retry later"}}}},"/scrape":{"post":{"operationId":"scrape","summary":"Scrape any website to clean Markdown, text, or structured JSON. Renders JavaScript/SPA pages with headless Chromium (captures content raw-fetch scrapers miss), handles PDFs, optional schema-driven extraction. Input: { url, format? (markdown|text|html), links? (bool), fields? OR schema? }.","x-price-usd":0.02,"x-payment":"x402 (USDC on Base)","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"Public http(s) URL (HTML or PDF)"},"format":{"type":"string","description":"markdown (default) | text | html"},"links":{"type":"boolean","description":"Include extracted links"},"fields":{"type":"string","description":"Comma-separated fields to extract as JSON"},"schema":{"type":"object","description":"JSON Schema for structured extraction"}},"required":["url"]}}}},"responses":{"200":{"description":"Result envelope: { result, service, model, tokens, latency_ms, cached }","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","properties":{"url":{"type":"string"},"title":{"type":"string"},"format":{"type":"string"},"content":{"type":"string"},"chars":{"type":"integer"}}},"service":{"type":"string"},"cached":{"type":"boolean"}}},"example":{"result":{"url":"https://example.com","title":"Example","format":"markdown","content":"# Example\n\nPage content...","chars":42},"service":"scrape","cached":false}}}},"400":{"description":"Invalid input (no payment taken)"},"402":{"description":"Payment required — x402 instructions in PAYMENT-REQUIRED header"},"502":{"description":"Model failed to produce valid output"},"503":{"description":"Daily budget exhausted; retry later"}}}},"/wallet-intel":{"post":{"operationId":"wallet-intel","summary":"On-chain wallet analysis for any Base (EVM) address: native + token balances, transaction history summary, top counterparties, and rule-based activity classification. Guaranteed-valid JSON from free public RPC + Basescan. Input: { address, explain? (bool: add a plain-English narrative) }.","x-price-usd":0.02,"x-payment":"x402 (USDC on Base)","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"0x EVM address on Base"},"explain":{"type":"boolean","description":"If true, add a short LLM narrative summary"}},"required":["address"]}}}},"responses":{"200":{"description":"Result envelope: { result, service, model, tokens, latency_ms, cached }","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","properties":{"address":{"type":"string"},"network":{"type":"string"},"nativeBalanceEth":{"type":"number"},"txCount":{"type":"integer"},"activity":{"type":"object"}}},"service":{"type":"string"},"cached":{"type":"boolean"}}},"example":{"result":{"address":"0x04CC...2A7B","network":"base","nativeBalanceEth":0.42,"txCount":128,"tokenHoldingsCount":3,"activity":{"tags":["defi-active","high-activity"],"topCounterparties":[]}},"service":"wallet-intel","cached":false}}}},"400":{"description":"Invalid input (no payment taken)"},"402":{"description":"Payment required — x402 instructions in PAYMENT-REQUIRED header"},"502":{"description":"Model failed to produce valid output"},"503":{"description":"Daily budget exhausted; retry later"}}}}}}