{"openapi":"3.1.0","info":{"title":"Agent Utility Shop API","version":"1.0.0","description":"Paid machine-readable utilities and downloadable toolkits for autonomous agents.","x-guidance":"Discover services in GET /catalog.json. Paid POST endpoints use x402 on Base Mainnet. Asynchronous research returns an opaque status URL to poll.","contact":{"email":"decision_data_studio@agents.world"}},"servers":[{"url":"https://api.ikoles.dev"}],"tags":[{"name":"Procurement","description":"EU tender discovery and qualification"}],"paths":{"/v1/tender-shortlist":{"post":{"operationId":"getEuTenderShortlist","summary":"Find and rank active EU public tenders","description":"Returns up to 30 current TED notices with normalized deadlines, values, fit scores, reasons, risks, and official source links.","tags":["Procurement"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.15"},"protocols":[{"x402":{}}]},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","minLength":1,"maxLength":100},"keywords":{"type":"array","maxItems":10,"items":{"type":"string","minLength":1,"maxLength":100}},"countries":{"type":"array","maxItems":30,"items":{"type":"string","description":"ISO 3166-1 alpha-3 country code"}},"cpvCodes":{"type":"array","maxItems":20,"items":{"type":"string"}},"publishedAfter":{"type":"string","format":"date"},"publishedBefore":{"type":"string","format":"date"},"deadlineAfter":{"type":"string","format":"date"},"deadlineBefore":{"type":"string","format":"date"},"minValue":{"type":"number","minimum":0},"maxResults":{"type":"integer","minimum":1,"maximum":30,"default":10},"rankingMode":{"type":"string","enum":["bestFit","deadlineSoonest","highestValue"],"default":"bestFit"}}},"example":{"query":"cloud data platform","countries":["DEU","NLD","BEL"],"cpvCodes":["72000000"],"minValue":100000,"maxResults":10,"rankingMode":"bestFit"}}}},"responses":{"200":{"description":"Ranked tender shortlist","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["generatedAt","query","count","tenders","stats"],"properties":{"generatedAt":{"type":"string","format":"date-time"},"query":{"type":"string"},"count":{"type":"integer","minimum":0},"tenders":{"type":"array","items":{"type":"object","additionalProperties":true,"required":["noticeId","title","fitScore","fitReasons","risks","sourceUrl"],"properties":{"noticeId":{"type":"string"},"title":{"type":"string"},"buyerName":{"type":["string","null"]},"buyerCountry":{"type":["string","null"]},"deadline":{"type":["string","null"],"format":"date-time"},"estimatedValue":{"type":["number","null"]},"currency":{"type":["string","null"]},"fitScore":{"type":"number","minimum":0,"maximum":100},"fitReasons":{"type":"array","items":{"type":"string"}},"risks":{"type":"array","items":{"type":"string"}},"sourceUrl":{"type":"string","format":"uri"}}}},"stats":{"type":"object","additionalProperties":false,"required":["pages","scanned","dropped","duplicates"],"properties":{"pages":{"type":"integer","minimum":0},"scanned":{"type":"integer","minimum":0},"dropped":{"type":"integer","minimum":0},"duplicates":{"type":"integer","minimum":0}}}}},"example":{"generatedAt":"2026-07-20T12:00:00.000Z","count":1,"tenders":[{"noticeId":"444028-2026","title":"Cloud data platform","buyerName":"Example public buyer","buyerCountry":"DEU","deadline":"2026-08-10T12:00:00.000Z","estimatedValue":500000,"currency":"EUR","fitScore":82,"fitReasons":["Keyword match: cloud","Buyer country match: DEU"],"risks":["Deadline is less than 30 days away"],"sourceUrl":"https://ted.europa.eu/en/notice/444028-2026/html"}]}}}},"400":{"description":"Invalid request"},"402":{"description":"Payment Required"},"502":{"description":"Official TED upstream unavailable"}}}},"/v1/csv-cleanup":{"post":{"operationId":"cleanStructuredRows","summary":"Normalize and deduplicate CSV/JSON rows","tags":["Data operations"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"2.00"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["rows"],"properties":{"rows":{"type":"array","minItems":1,"maxItems":500,"items":{"type":"object","additionalProperties":{"type":["string","number","boolean","null"]}}},"keyColumns":{"type":"array","minItems":1,"maxItems":25,"items":{"type":"string"}},"trimStrings":{"type":"boolean","default":true},"caseInsensitiveKeys":{"type":"boolean","default":true},"dropBlankRows":{"type":"boolean","default":true}}},"example":{"rows":[{"email":" Alice@example.com ","company":"Example Ltd"},{"email":"alice@example.com","company":"Example Limited"}],"keyColumns":["email"],"trimStrings":true,"caseInsensitiveKeys":true,"dropBlankRows":true}}}},"responses":{"200":{"description":"Cleaned and deduplicated rows"},"400":{"description":"Invalid request"},"402":{"description":"Payment Required"}}}},"/v1/research-brief":{"post":{"operationId":"requestResearchBrief","summary":"Queue an evidence-backed research brief","tags":["Research"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"5.00"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["question"],"properties":{"question":{"type":"string","minLength":10,"maxLength":4000},"context":{"type":"string","maxLength":8000},"requiredSources":{"type":"integer","minimum":2,"maximum":10,"default":3},"maxWords":{"type":"integer","minimum":200,"maximum":1500,"default":800}}},"example":{"question":"Compare current agent-to-agent payment protocols for a small API provider.","context":"Prioritize protocols that work on Base Mainnet.","requiredSources":3,"maxWords":800}}}},"responses":{"202":{"description":"Research job queued"},"400":{"description":"Invalid request"},"402":{"description":"Payment Required"},"503":{"description":"Research worker unavailable; no payment taken"}}}},"/v1/jobs/{id}":{"get":{"operationId":"getUtilityJob","summary":"Read asynchronous job status and result","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Current job state or completed result"},"404":{"description":"Unknown job"}}}},"/v1/products/csv-json-quality-toolkit":{"get":{"operationId":"downloadCsvJsonQualityToolkit","summary":"Purchase and download CSV/JSON Quality Toolkit","tags":["Digital products"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"9.00"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"ZIP product download","content":{"application/zip":{}}},"402":{"description":"Payment Required"},"503":{"description":"Product release temporarily unavailable; no payment taken"}}}},"/v1/products/codex-safe-paid-work-kit":{"get":{"operationId":"downloadCodexSafePaidWorkKit","summary":"Purchase and download Codex Safe Paid Work Kit","tags":["Digital products"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"15.00"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"ZIP product download","content":{"application/zip":{}}},"402":{"description":"Payment Required"},"503":{"description":"Product release temporarily unavailable; no payment taken"}}}},"/v1/products/automation-data-toolkit-bundle":{"get":{"operationId":"downloadAutomationDataToolkitBundle","summary":"Purchase and download Automation Data Toolkit Bundle","tags":["Digital products"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"24.00"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"ZIP product download","content":{"application/zip":{}}},"402":{"description":"Payment Required"},"503":{"description":"Product release temporarily unavailable; no payment taken"}}}}}}