{"openapi":"3.1.0","info":{"title":"Agent Tools","version":"1.0.0","contact":{"email":"agenttools@agentmail.to"},"description":"Pay-per-call utilities for AI agents over x402, USDC on Base.","x-guidance":"Each /v1 endpoint is a single paid utility. Call it, receive an HTTP 402 x402 challenge (USDC on Base eip155:8453), pay, and retry with PAYMENT-SIGNATURE. GET tools take query parameters; /v1/convert takes a JSON body; /upload routes take the file as the raw request body (content-type application/pdf, image/png, image/jpeg or image/webp), or multipart/form-data with a file field, or JSON {base64}. Failed calls (bad input or upstream error) are not charged. Sample files: /samples/sample.pdf and /samples/sample.png."},"servers":[{"url":"https://agents.crowdspark.me"}],"paths":{"/v1/email/check":{"get":{"operationId":"email_check","summary":"email check","description":"Email validation for signup forms, lead lists and CRM cleanup: checks syntax, MX mail servers, disposable or temporary domains, role addresses (info@, sales@) and free providers. Returns a deliverable_guess. No SMTP probe, no data stored.","tags":["Agent Tools"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"},"example":{"email":"jane@acme.com","valid_syntax":true,"domain":"acme.com","mx_records":["10 mx1.acme.com."],"has_mail_server":true,"disposable":false,"role_account":false,"free_provider":false,"deliverable_guess":"likely"}}}},"402":{"description":"Payment Required"}},"parameters":[{"name":"email","in":"query","required":true,"schema":{"type":"string","description":"Email address to validate"},"example":"jane@acme.com"}]}},"/v1/email/full":{"get":{"operationId":"email_check_full","summary":"email check full","description":"One call email risk check: everything in email_check plus sender domain health (domain age, registrar, SPF, DMARC, website reachable) and a 0-100 risk score with accept/review/reject verdict. Use for fraud screening, lead qualification and signup gating.","tags":["Agent Tools"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.004000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"},"example":{"email":"jane@acme.com","has_mail_server":true,"disposable":false,"domain_health":{"registrar":"GoDaddy.com, LLC","age_days":4021,"spf":"v=spf1 include:_spf.google.com ~all","dmarc":"v=DMARC1; p=reject","website_reachable":true},"risk_score":0,"risk_reasons":[],"verdict":"accept"}}}},"402":{"description":"Payment Required"}},"parameters":[{"name":"email","in":"query","required":true,"schema":{"type":"string","description":"Email address"},"example":"jane@acme.com"}]}},"/v1/pdf/text":{"get":{"operationId":"pdf_to_text","summary":"pdf to text","description":"PDF to text or markdown for RAG, summarizing, search indexing and reading reports, papers, contracts and invoices. Give a PDF URL (max 20 MB); returns text per page. format=text or markdown. Not stored.","tags":["Agent Tools"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.006000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"},"example":{"pages":1,"format":"markdown","characters":2859,"text":"## Page 1\n\nSample PDF\nThis is a simple PDF file..."}}}},"402":{"description":"Payment Required"}},"parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","description":"Public PDF URL"},"example":"https://pdfobject.com/pdf/sample.pdf"},{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["text","markdown"]},"example":"markdown"}]}},"/v1/pdf/text/upload":{"post":{"operationId":"pdf_to_text_upload","summary":"pdf to text upload","description":"PDF to text from uploaded bytes. POST the raw PDF as the body (content-type application/pdf); multipart 'file' or JSON {\"base64\"} also work. Real PDF only (starts with %PDF), max 20 MB, with a text layer. Optional ?format=text|markdown. Bad files get HTTP 400 with a hint and are not charged. Sample: https://agents.crowdspark.me/samples/sample.pdf Not password-protected. For scans use image_ocr_upload. Returns {pages, format, characters, text}. Errors return {error, code, hint, charged:false}.","tags":["Agent Tools"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.006000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"},"example":{"pages":1,"format":"text","characters":69,"text":"INVOICE\nInvoice #: INV-1042\nDate: 2026-10-01\nTotal: $1,250.00"}}}},"400":{"description":"Bad or unsupported file. Not charged.","content":{"application/json":{"schema":{"type":"object"},"example":{"error":"The uploaded file is not a PDF (starts with %PDF). Received 2 bytes with content-type application/json, starting with \"{}\"","code":"unsupported_file_type","hint":"Send the PDF as the raw request body ...","charged":false}}}},"402":{"description":"Payment Required"},"413":{"description":"File too large. Not charged."}},"requestBody":{"required":true,"description":"Send the file itself as the body. Example: curl -X POST --data-binary @file -H 'content-type: application/pdf' 'https://agents.crowdspark.me/v1/pdf/text/upload'. Sample file: https://agents.crowdspark.me/samples/sample.pdf","content":{"application/pdf":{"schema":{"type":"string","format":"binary","description":"The raw file bytes"}},"application/octet-stream":{"schema":{"type":"string","format":"binary","description":"The raw file bytes"}},"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"}},"required":["file"]}},"application/json":{"schema":{"type":"object","properties":{"base64":{"type":"string","description":"File bytes, base64 encoded"}},"required":["base64"]},"example":{"base64":"JVBERi0xLjQKMSAwIG9iago8PCAvVHlwZSAvQ2F0YWxvZyAvUGFnZXMgMiAwIFIgPj4KZW5kb2JqCjIgMCBvYmoKPDwgL1R5cGUgL1BhZ2VzIC9LaWRzIFszIDAgUl0gL0NvdW50IDEgPj4KZW5kb2JqCjMgMCBvYmoKPDwgL1R5cGUgL1BhZ2UgL1BhcmVudCAyIDAgUiAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXSAvQ29udGVudHMgNCAwIFIgL1Jlc291cmNlcyA8PCAvRm9udCA8PCAvRjEgNSAwIFIgPj4gPj4gPj4KZW5kb2JqCjQgMCBvYmoKPDwgL0xlbmd0aCAxMjUgPj4Kc3RyZWFtCkJUIC9GMSAxOCBUZiA1MCA3NDAgVGQgMjIgVEwgKElOVk9JQ0UpIFRqIFQqIChJbnZvaWNlICM6IElOVi0xMDQyKSBUaiBUKiAoRGF0ZTogMjAyNi0xMC0wMSkgVGogVCogKFRvdGFsOiAkMSwyNTAuMDApIFRqIFQqIEVUCmVuZHN0cmVhbQplbmRvYmoKNSAwIG9iago8PCAvVHlwZSAvRm9udCAvU3VidHlwZSAvVHlwZTEgL0Jhc2VGb250IC9IZWx2ZXRpY2EgPj4KZW5kb2JqCnhyZWYKMCA2CjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMDAwOSAwMDAwMCBuIAowMDAwMDAwMDU4IDAwMDAwIG4gCjAwMDAwMDAxMTUgMDAwMDAgbiAKMDAwMDAwMDI0MSAwMDAwMCBuIAowMDAwMDAwNDE3IDAwMDAwIG4gCnRyYWlsZXIKPDwgL1NpemUgNiAvUm9vdCAxIDAgUiA+PgpzdGFydHhyZWYKNDg3CiUlRU9GCg=="}}}},"parameters":[{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["text","markdown"],"description":"text (default) or markdown"}}]}},"/v1/document/extract":{"get":{"operationId":"document_extract","summary":"document extract","description":"One call document parsing for invoices, receipts, statements, forms and scanned pages: PDF or image URL in, full text plus extracted fields out (dates, money amounts, totals/tax/amount due, invoice or order numbers, key: value pairs, emails, phones, URLs, simple tables). Images and scans use OCR.","tags":["Agent Tools"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.012000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"},"example":{"kind":"pdf","pages":1,"characters":1840,"text":"INVOICE\nInvoice #: INV-1042\nDate: 2026-10-01\nTotal: $1,250.00","fields":{"dates":["2026-10-01"],"amounts":["$1,250.00"],"totals":[{"label":"total","value":"$1,250.00"}],"identifiers":["Invoice #: INV-1042"],"key_values":{"Invoice":"INV-1042","Date":"2026-10-01"},"emails":[],"phones":[],"urls":[],"tables":[]}}}}},"402":{"description":"Payment Required"}},"parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","description":"Public PDF or image URL"},"example":"https://pdfobject.com/pdf/sample.pdf"}]}},"/v1/document/extract/upload":{"post":{"operationId":"document_extract_upload","summary":"document extract upload","description":"Document parsing from uploaded bytes. POST a raw PDF (max 20 MB, text layer) or PNG/JPEG/WebP image (max 10 MB, OCR) as the body with its content-type; multipart 'file' or JSON {\"base64\"} also work. Returns text plus dates, amounts, totals, IDs and tables. Bad files get HTTP 400 with a hint and are not charged. Samples: https://agents.crowdspark.me/samples/sample.pdf Image sample: https://agents.crowdspark.me/samples/sample.png. Errors return {error, code, hint, charged:false}.","tags":["Agent Tools"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.012000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"},"example":{"kind":"image","pages":null,"text":"TOTAL $12.40","fields":{"amounts":["$12.40"],"totals":[{"label":"total","value":"$12.40"}]}}}}},"400":{"description":"Bad or unsupported file. Not charged.","content":{"application/json":{"schema":{"type":"object"},"example":{"error":"The uploaded file is not a PDF (starts with %PDF). Received 2 bytes with content-type application/json, starting with \"{}\"","code":"unsupported_file_type","hint":"Send the PDF as the raw request body ...","charged":false}}}},"402":{"description":"Payment Required"},"413":{"description":"File too large. Not charged."}},"requestBody":{"required":true,"description":"Send the file itself as the body. Example: curl -X POST --data-binary @file -H 'content-type: application/pdf' 'https://agents.crowdspark.me/v1/document/extract/upload'. Sample file: https://agents.crowdspark.me/samples/sample.pdf","content":{"application/pdf":{"schema":{"type":"string","format":"binary","description":"The raw file bytes"}},"image/png":{"schema":{"type":"string","format":"binary","description":"The raw file bytes"}},"image/jpeg":{"schema":{"type":"string","format":"binary","description":"The raw file bytes"}},"image/webp":{"schema":{"type":"string","format":"binary","description":"The raw file bytes"}},"application/octet-stream":{"schema":{"type":"string","format":"binary","description":"The raw file bytes"}},"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"}},"required":["file"]}},"application/json":{"schema":{"type":"object","properties":{"base64":{"type":"string","description":"File bytes, base64 encoded"}},"required":["base64"]},"example":{"base64":"JVBERi0xLjQKMSAwIG9iago8PCAvVHlwZSAvQ2F0YWxvZyAvUGFnZXMgMiAwIFIgPj4KZW5kb2JqCjIgMCBvYmoKPDwgL1R5cGUgL1BhZ2VzIC9LaWRzIFszIDAgUl0gL0NvdW50IDEgPj4KZW5kb2JqCjMgMCBvYmoKPDwgL1R5cGUgL1BhZ2UgL1BhcmVudCAyIDAgUiAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXSAvQ29udGVudHMgNCAwIFIgL1Jlc291cmNlcyA8PCAvRm9udCA8PCAvRjEgNSAwIFIgPj4gPj4gPj4KZW5kb2JqCjQgMCBvYmoKPDwgL0xlbmd0aCAxMjUgPj4Kc3RyZWFtCkJUIC9GMSAxOCBUZiA1MCA3NDAgVGQgMjIgVEwgKElOVk9JQ0UpIFRqIFQqIChJbnZvaWNlICM6IElOVi0xMDQyKSBUaiBUKiAoRGF0ZTogMjAyNi0xMC0wMSkgVGogVCogKFRvdGFsOiAkMSwyNTAuMDApIFRqIFQqIEVUCmVuZHN0cmVhbQplbmRvYmoKNSAwIG9iago8PCAvVHlwZSAvRm9udCAvU3VidHlwZSAvVHlwZTEgL0Jhc2VGb250IC9IZWx2ZXRpY2EgPj4KZW5kb2JqCnhyZWYKMCA2CjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMDAwOSAwMDAwMCBuIAowMDAwMDAwMDU4IDAwMDAwIG4gCjAwMDAwMDAxMTUgMDAwMDAgbiAKMDAwMDAwMDI0MSAwMDAwMCBuIAowMDAwMDAwNDE3IDAwMDAwIG4gCnRyYWlsZXIKPDwgL1NpemUgNiAvUm9vdCAxIDAgUiA+PgpzdGFydHhyZWYKNDg3CiUlRU9GCg=="}}}}}},"/v1/domain/lookup":{"get":{"operationId":"domain_lookup","summary":"domain lookup","description":"Domain intelligence for due diligence, phishing checks and lead research: registrar, creation and expiry dates (RDAP/WHOIS), A/AAAA/MX/NS/TXT records, SPF, DMARC and HTTPS reachability in one call.","tags":["Agent Tools"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"},"example":{"domain":"example.com","registered":true,"registrar":"RESERVED-Internet Assigned Numbers Authority","created":"1995-08-14T04:00:00Z","expires":"2027-08-13T04:00:00Z","dns":{"a":["93.184.215.14"],"mx":[],"ns":["a.iana-servers.net."]},"email_security":{"spf":"v=spf1 -all","dmarc":null},"https":{"reachable":true,"status":200}}}}},"402":{"description":"Payment Required"}},"parameters":[{"name":"domain","in":"query","required":true,"schema":{"type":"string","description":"Domain name, e.g. example.com"},"example":"example.com"}]}},"/v1/ocr":{"get":{"operationId":"image_ocr","summary":"image ocr","description":"OCR: read all text from a screenshot, photo, receipt, sign, scanned page or chart image at a URL (PNG/JPEG, max 10 MB). Keeps line breaks.","tags":["Agent Tools"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"},"example":{"text":"Hello Agent Tools"}}}},"402":{"description":"Payment Required"}},"parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","description":"Public image URL"},"example":"https://placehold.co/600x200/png?text=Hello+Agent+Tools"}]}},"/v1/ocr/upload":{"post":{"operationId":"image_ocr_upload","summary":"image ocr upload","description":"OCR from uploaded bytes. POST the raw image as the body with its content-type (image/png, image/jpeg or image/webp); multipart 'file' or JSON {\"base64\"} also work. Real PNG, JPEG or WebP only, max 10 MB. Returns {text}. Bad files get HTTP 400 with a hint and are not charged. Sample: https://agents.crowdspark.me/samples/sample.png Errors return {error, code, hint, charged:false}.","tags":["Agent Tools"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"},"example":{"text":"RECEIPT Cafe Nova\nOrder #: 4821\nTOTAL $12.40"}}}},"400":{"description":"Bad or unsupported file. Not charged.","content":{"application/json":{"schema":{"type":"object"},"example":{"error":"The uploaded file is not a PDF (starts with %PDF). Received 2 bytes with content-type application/json, starting with \"{}\"","code":"unsupported_file_type","hint":"Send the PDF as the raw request body ...","charged":false}}}},"402":{"description":"Payment Required"},"413":{"description":"File too large. Not charged."}},"requestBody":{"required":true,"description":"Send the file itself as the body. Example: curl -X POST --data-binary @file -H 'content-type: image/png' 'https://agents.crowdspark.me/v1/ocr/upload'. Sample file: https://agents.crowdspark.me/samples/sample.png","content":{"image/png":{"schema":{"type":"string","format":"binary","description":"The raw file bytes"}},"image/jpeg":{"schema":{"type":"string","format":"binary","description":"The raw file bytes"}},"image/webp":{"schema":{"type":"string","format":"binary","description":"The raw file bytes"}},"application/octet-stream":{"schema":{"type":"string","format":"binary","description":"The raw file bytes"}},"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"}},"required":["file"]}},"application/json":{"schema":{"type":"object","properties":{"base64":{"type":"string","description":"File bytes, base64 encoded"}},"required":["base64"]},"example":{"base64":"<base64 of your PNG, JPEG or WebP file>"}}}}}},"/v1/convert":{"post":{"operationId":"file_convert","summary":"file convert","description":"Format conversion for data pipelines and publishing: CSV to JSON, JSON to CSV, HTML to markdown, markdown to HTML, HTML to plain text. JSON body {from, to, input}.","tags":["Agent Tools"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"},"example":{"output":[{"name":"widget","qty":"2"}]}}}},"402":{"description":"Payment Required"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"from":{"type":"string","enum":["csv","json","html","markdown"]},"to":{"type":"string","enum":["csv","json","html","markdown","text"]},"input":{"type":"string","description":"Content to convert"}},"required":["from","to","input"]},"example":{"from":"csv","to":"json","input":"name,qty\nwidget,2"}}}}}},"/v1/web/markdown":{"get":{"operationId":"web_to_markdown","summary":"web to markdown","description":"Read a web page as clean LLM-ready markdown (main content, no nav or scripts) for research, RAG and summarization. Respects robots.txt.","tags":["Agent Tools"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001500"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"},"example":{"url":"https://example.com/","status":200,"title":"Example Domain","characters":156,"markdown":"This domain is for use in documentation examples..."}}}},"402":{"description":"Payment Required"}},"parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","description":"Public page URL"},"example":"https://example.com"}]}},"/v1/web/read":{"get":{"operationId":"web_read_full","summary":"web read full","description":"One call page reader: clean markdown plus page metadata (title, description, Open Graph, canonical, favicon), outbound links, word count and extracted dates, prices, emails and phones. Use for research agents, price checks and lead enrichment from public pages.","tags":["Agent Tools"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.004000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"},"example":{"url":"https://example.com/","title":"Example Domain","markdown":"...","meta":{"description":null,"og_image":null,"canonical":null},"links":["https://iana.org/domains/example"],"word_count":25,"fields":{"dates":[],"amounts":[],"emails":[],"phones":[]}}}}},"402":{"description":"Payment Required"}},"parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","description":"Public page URL"},"example":"https://example.com"}]}},"/v1/web/meta":{"get":{"operationId":"url_metadata","summary":"url metadata","description":"Link preview and unfurl data: title, description, Open Graph image, site name, canonical URL, favicon and final URL after redirects.","tags":["Agent Tools"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"},"example":{"url":"https://github.com/","final_url":"https://github.com/","status":200,"title":"GitHub","description":"Join the world's most widely adopted...","og_image":"https://github.githubassets.com/images/modules/site/social-cards/campaign-social.png","site_name":"GitHub"}}}},"402":{"description":"Payment Required"}},"parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","description":"Page URL"},"example":"https://github.com"}]}},"/v1/time/convert":{"get":{"operationId":"timezone_convert","summary":"timezone convert","description":"Timezone conversion for scheduling meetings and deadlines across IANA zones, with DST-correct UTC offsets. time=ISO local time or 'now'.","tags":["Agent Tools"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"},"example":{"utc":"2026-10-22T16:00:00.000Z","from":{"timezone":"America/New_York","local":"2026-10-22T12:00:00","utc_offset":"-04:00"},"to":{"timezone":"Asia/Tokyo","local":"2026-10-23T01:00:00","utc_offset":"+09:00"}}}}},"402":{"description":"Payment Required"}},"parameters":[{"name":"time","in":"query","required":false,"schema":{"type":"string","description":"ISO local time or 'now'"},"example":"2026-10-22T12:00:00"},{"name":"from","in":"query","required":true,"schema":{"type":"string","description":"IANA zone, e.g. America/New_York"},"example":"America/New_York"},{"name":"to","in":"query","required":true,"schema":{"type":"string","description":"IANA zone, e.g. Asia/Tokyo"},"example":"Asia/Tokyo"}]}},"/v1/time/business-days":{"get":{"operationId":"business_days","summary":"business days","description":"Business day calculator for SLAs, invoice due dates, shipping and legal deadlines: counts working days between two dates, skipping weekends and national public holidays (ISO country code).","tags":["Agent Tools"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"},"example":{"start":"2026-12-01","end":"2026-12-31","country":"US","business_days":22,"holidays_excluded":1,"inclusive":true}}}},"402":{"description":"Payment Required"}},"parameters":[{"name":"start","in":"query","required":true,"schema":{"type":"string","description":"YYYY-MM-DD"},"example":"2026-12-01"},{"name":"end","in":"query","required":true,"schema":{"type":"string","description":"YYYY-MM-DD"},"example":"2026-12-31"},{"name":"country","in":"query","required":false,"schema":{"type":"string","description":"ISO 3166 alpha-2, optional"},"example":"US"}]}},"/v1/time/holidays":{"get":{"operationId":"public_holidays","summary":"public holidays","description":"Public holiday calendar for 100+ countries by year, for scheduling, payroll and delivery planning.","tags":["Agent Tools"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"},"example":{"year":2027,"country":"US","holidays":[{"date":"2027-01-01","name":"New Year's Day","local_name":"New Year's Day","global":true}]}}}},"402":{"description":"Payment Required"}},"parameters":[{"name":"country","in":"query","required":true,"schema":{"type":"string","description":"ISO 3166 alpha-2"},"example":"US"},{"name":"year","in":"query","required":true,"schema":{"type":"string","description":"Year, e.g. 2027"},"example":"2027"}]}},"/v1/fx/rates":{"get":{"operationId":"fx_rates","summary":"fx rates","description":"Currency exchange rates (European Central Bank reference rates) for price conversion, invoicing and travel budgets. Latest or historical by date.","tags":["Agent Tools"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"},"example":{"source":"European Central Bank via Frankfurter","base":"USD","date":"2026-10-22","rates":{"EUR":0.89246,"JPY":157.05}}}}},"402":{"description":"Payment Required"}},"parameters":[{"name":"base","in":"query","required":false,"schema":{"type":"string","description":"Base currency, e.g. USD"},"example":"USD"},{"name":"symbols","in":"query","required":false,"schema":{"type":"string","description":"Comma list, optional"},"example":"EUR,JPY"},{"name":"date","in":"query","required":false,"schema":{"type":"string","description":"YYYY-MM-DD, optional"}}]}},"/v1/ip/lookup":{"get":{"operationId":"ip_lookup","summary":"ip lookup","description":"IP address lookup for security triage, log analysis and fraud checks: owning network, allocation range, registry country (RDAP) and reverse DNS.","tags":["Agent Tools"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"},"example":{"ip":"1.1.1.1","network":"APNIC-LABS","range":"1.1.1.0 - 1.1.1.255","country":"AU","type":"ASSIGNED PORTABLE","reverse_dns":["one.one.one.one."]}}}},"402":{"description":"Payment Required"}},"parameters":[{"name":"ip","in":"query","required":true,"schema":{"type":"string","description":"IPv4 or IPv6 address"},"example":"1.1.1.1"}]}},"/v1/chain/token":{"get":{"operationId":"token_info","summary":"token info","description":"Token contract inspector for Base, Ethereum, Optimism, Arbitrum and Polygon: is it a contract, ERC20/ERC721/ERC1155 detection, name, symbol, decimals, total supply (raw and formatted), owner, and upgradeable-proxy check (EIP-1967, beacon, EIP-1167 clone, legacy zeppelinos) with implementation and admin addresses. Read live from public RPC. Use before quoting, swapping, listing or paying with a token.","tags":["Agent Tools"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"},"example":{"chain":"base","chain_id":8453,"address":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","is_contract":true,"standard":"ERC20","name":"USD Coin","symbol":"USDC","decimals":6,"total_supply":"4299464528.64453","owner":"0x3ABd6f64A422225E61E435baE41db12096106df7","proxy":{"is_proxy":true,"type":"zeppelinos (legacy unstructured storage)","implementation":"0x2Ce6311ddAE708829bc0784C967b7d77D19FD779","admin":"0x4fc7850364958d97B4d3f5A08f79db2493f8cA44"}}}}},"402":{"description":"Payment Required"}},"parameters":[{"name":"address","in":"query","required":true,"schema":{"type":"string","description":"Token contract address (0x...)"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"chain","in":"query","required":false,"schema":{"type":"string","enum":["base","ethereum","optimism","arbitrum","polygon"],"description":"Chain, default base"},"example":"base"}]}},"/v1/chain/gas":{"get":{"operationId":"gas_estimate","summary":"gas estimate","description":"Gas estimate and fee quote for Base, Ethereum, Optimism, Arbitrum and Polygon: eth_estimateGas for your transaction (to, from, value, data) or a plain transfer if no 'to', current base fee, slow/standard/fast priority tips from recent blocks, max fee suggestions, L1 data fee on OP-stack chains and total cost in native coin and USD (Chainlink price). Reports reverts instead of failing. Use before signing or to budget agent transactions.","tags":["Agent Tools"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"},"example":{"chain":"base","chain_id":8453,"block":53115830,"native":"ETH","gas_units":"45415","method":"eth_estimateGas","reverted":false,"base_fee_gwei":"0.005","l1_data_fee_native":"0.000000000857537839","native_usd":2320.97,"fees":[{"tier":"slow","max_priority_fee_gwei":"0.00011","max_fee_per_gas_gwei":"0.01011","est_cost_native":"0.000000232928187839","est_cost_usd":0.000541},{"tier":"standard","est_cost_usd":0.00065},{"tier":"fast","est_cost_usd":0.00211}]}}}},"402":{"description":"Payment Required"}},"parameters":[{"name":"chain","in":"query","required":false,"schema":{"type":"string","enum":["base","ethereum","optimism","arbitrum","polygon"],"description":"Chain, default base"},"example":"base"},{"name":"to","in":"query","required":false,"schema":{"type":"string","description":"Optional. Target address; omit for a plain native transfer quote"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"from","in":"query","required":false,"schema":{"type":"string","description":"Optional. Sender address"},"example":"0x0dEA0030A17BF886543a757c55924710258c2eec"},{"name":"value","in":"query","required":false,"schema":{"type":"string","description":"Optional. Value in wei"}},{"name":"data","in":"query","required":false,"schema":{"type":"string","description":"Optional. 0x calldata"},"example":"0x70a082310000000000000000000000000dea0030a17bf886543a757c55924710258c2eec"}]}},"/v1/x402/check":{"get":{"operationId":"x402_endpoint_check","summary":"x402 endpoint check","description":"x402 readiness check for any paid API URL: probes it without paying and reports whether it returns a valid 402, where the requirements are (header or body, v1 or v2), network, asset, price in USD, payTo (with EIP-55 checksum check), EIP-712 token domain, timeout, resource URL and Bazaar discovery. Returns ready or needs_fixes with a 0-100 score and a list of specific issues. Use before listing an endpoint or paying it. Never pays.","tags":["Agent Tools"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"},"example":{"url":"https://api.example.com/v1/data","probe":{"method":"GET","status":402,"redirects":0,"ms":312},"x402_detected":true,"ready":true,"score":100,"verdict":"ready","version":2,"delivered_via":"PAYMENT-REQUIRED header","accepts":[{"scheme":"exact","network":"eip155:8453","asset_symbol":"USDC","amount_atomic":"1000","price_usd":0.001,"pay_to":"0x0dEA0030A17BF886543a757c55924710258c2eec","max_timeout_seconds":300}],"discovery":{"bazaar":true},"issues":[]}}}},"402":{"description":"Payment Required"}},"parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","description":"Public http(s) URL of the paid endpoint to probe"},"example":"https://agents.crowdspark.me/v1/fx/rates"},{"name":"method","in":"query","required":false,"schema":{"type":"string","enum":["GET","POST"],"description":"Optional. Default tries GET, then POST if GET returns 404 or 405"}}]}},"/v1/x402/audit":{"get":{"operationId":"x402_seller_audit","summary":"x402 seller audit","description":"Will my paid API get listed? Audits any x402 endpoint URL: runs the readiness check, flags the 500 character description limit, then checks the Coinbase Bazaar listing, OpenAPI x-payment-info, 402 Index entry, favicon, llms.txt and /.well-known/x402. Returns a 0-100 score, verdict and an ordered fix list. Never sends a payment. Score = 60% payment readiness + 40% discoverability. x402scan has no public lookup API, so it is reported as not checked.","tags":["Agent Tools"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"},"example":{"url":"https://api.example.com/v1/data","score":82,"verdict":"ready_but_hard_to_find","readiness":{"score":100,"verdict":"ready","price_usd":0.001,"description_length":180},"listing":{"score":35,"coinbase_bazaar":{"listed":false},"openapi":{"found":true,"path_documented":true}},"fixes":[{"severity":"warn","code":"not_in_bazaar","fix":"Make one paid call through the Coinbase facilitator..."}],"fix_count":1}}}},"402":{"description":"Payment Required"}},"parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","description":"Public http(s) URL of your paid x402 endpoint"},"example":"https://agents.crowdspark.me/v1/fx/rates"},{"name":"method","in":"query","required":false,"schema":{"type":"string","enum":["GET","POST"],"description":"Optional"}}]}},"/v1/email/check/batch":{"post":{"operationId":"email_check_batch","summary":"email check batch","description":"Batch email validation for list cleaning: up to 10 addresses per call, 40% cheaper than 10 single calls. JSON body {emails:[...]}. Each item gets syntax, MX, disposable, role and free-provider checks and a deliverable_guess. Bad items return per-item errors, not a failed call.","tags":["Agent Tools"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.006000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"},"example":{"count":2,"succeeded":2,"failed":0,"results":[{"input":"jane@acme.com","ok":true,"result":{"deliverable_guess":"likely"}},{"input":"bob@mailinator.com","ok":true,"result":{"disposable":true,"deliverable_guess":"risky"}}]}}}},"402":{"description":"Payment Required"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"emails":{"type":"array","items":{"type":"string"},"maxItems":10,"description":"1 to 10 email addresses"}},"required":["emails"]},"example":{"emails":["jane@acme.com","bob@mailinator.com"]}}}}}},"/v1/ip/lookup/batch":{"post":{"operationId":"ip_lookup_batch","summary":"ip lookup batch","description":"Batch IP lookup for log analysis and fraud review: up to 10 IPv4 or IPv6 addresses per call, 40% cheaper than singles. JSON body {ips:[...]}. Each item returns the owning network, range, country (RDAP) and reverse DNS. Bad items return per-item errors.","tags":["Agent Tools"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.012000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"},"example":{"count":2,"succeeded":2,"failed":0,"results":[{"input":"1.1.1.1","ok":true,"result":{"network":"APNIC-LABS","country":"AU"}},{"input":"8.8.8.8","ok":true,"result":{"network":"GOGL","country":"US"}}]}}}},"402":{"description":"Payment Required"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ips":{"type":"array","items":{"type":"string"},"maxItems":10,"description":"1 to 10 IP addresses"}},"required":["ips"]},"example":{"ips":["1.1.1.1","8.8.8.8"]}}}}}},"/v1/domain/lookup/batch":{"post":{"operationId":"domain_lookup_batch","summary":"domain lookup batch","description":"Batch domain intelligence for due diligence and lead lists: up to 10 domains per call, 60% cheaper than singles. JSON body {domains:[...]}. Each item returns registrar, dates, DNS, SPF, DMARC and HTTPS reachability. Bad items return per-item errors.","tags":["Agent Tools"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.012000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"},"example":{"count":2,"succeeded":2,"failed":0,"results":[{"input":"example.com","ok":true,"result":{"registered":true,"registrar":"RESERVED-Internet Assigned Numbers Authority"}}]}}}},"402":{"description":"Payment Required"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"domains":{"type":"array","items":{"type":"string"},"maxItems":10,"description":"1 to 10 domain names"}},"required":["domains"]},"example":{"domains":["example.com","github.com"]}}}}}},"/v1/bundle/url-dossier":{"get":{"operationId":"url_dossier","summary":"url dossier","description":"One call dossier on a web page and its host: clean markdown, page metadata, outbound links and extracted fields, plus domain intelligence (registrar, age, DNS, SPF, DMARC) and IP network lookup for the host, with a short trust summary. Replaces three calls.","tags":["Agent Tools"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.007000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"},"example":{"url":"https://example.com/","host":"example.com","page":{"title":"Example Domain","word_count":25},"domain":{"registered":true,"registrar":"RESERVED-Internet Assigned Numbers Authority"},"ip":{"network":"EDGECAST","country":"US"},"summary":{"domain_age_days":11000,"has_spf":true,"https_reachable":true}}}}},"402":{"description":"Payment Required"}},"parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","description":"Public page URL"},"example":"https://example.com"}]}},"/v1/bundle/invoice-intake":{"get":{"operationId":"invoice_intake","summary":"invoice intake","description":"Invoice intake for AP agents: PDF or image URL in, one decision-ready JSON out. Extracts text, number, total, dates and vendor contact, then runs an email risk check and domain lookup on the vendor and returns accept, review or reject with reasons. Heuristic triage, not bank verification.","tags":["Agent Tools"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.012000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"},"example":{"invoice":{"number":"INV-1042","total":"$1,250.00","vendor_email":"billing@acme.com","vendor_domain":"acme.com"},"vendor_checks":{"email":{"verdict":"accept","risk_score":0},"domain":{"registered":true,"age_days":4021}},"verdict":"accept","reasons":[]}}}},"402":{"description":"Payment Required"}},"parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","description":"Public PDF or image URL of the invoice"},"example":"https://agents.crowdspark.me/samples/sample.pdf"}]}},"/v1/bundle/invoice-intake/upload":{"post":{"operationId":"invoice_intake_upload","summary":"invoice intake upload","description":"Invoice intake from uploaded bytes. POST a raw PDF (max 20 MB, text layer) or PNG/JPEG/WebP (max 10 MB) with its content-type; multipart 'file' or JSON {\"base64\"} also work. Returns extracted fields, vendor email and domain checks and an accept, review or reject verdict. Bad files get HTTP 400 and are not charged. Samples: https://agents.crowdspark.me/samples/sample.pdf and /samples/sample.png. Errors return {error, code, hint, charged:false}.","tags":["Agent Tools"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.012000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"},"example":{"invoice":{"number":"INV-1042","total":"$1,250.00","vendor_domain":"acme.com"},"verdict":"review","reasons":["no vendor email or website found to verify"]}}}},"400":{"description":"Bad or unsupported file. Not charged.","content":{"application/json":{"schema":{"type":"object"},"example":{"error":"The uploaded file is not a PDF (starts with %PDF). Received 2 bytes with content-type application/json, starting with \"{}\"","code":"unsupported_file_type","hint":"Send the PDF as the raw request body ...","charged":false}}}},"402":{"description":"Payment Required"},"413":{"description":"File too large. Not charged."}},"requestBody":{"required":true,"description":"Send the file itself as the body. Example: curl -X POST --data-binary @file -H 'content-type: application/pdf' 'https://agents.crowdspark.me/v1/bundle/invoice-intake/upload'. Sample file: https://agents.crowdspark.me/samples/sample.pdf","content":{"application/pdf":{"schema":{"type":"string","format":"binary","description":"The raw file bytes"}},"image/png":{"schema":{"type":"string","format":"binary","description":"The raw file bytes"}},"image/jpeg":{"schema":{"type":"string","format":"binary","description":"The raw file bytes"}},"image/webp":{"schema":{"type":"string","format":"binary","description":"The raw file bytes"}},"application/octet-stream":{"schema":{"type":"string","format":"binary","description":"The raw file bytes"}},"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"}},"required":["file"]}},"application/json":{"schema":{"type":"object","properties":{"base64":{"type":"string","description":"File bytes, base64 encoded"}},"required":["base64"]},"example":{"base64":"JVBERi0xLjQKMSAwIG9iago8PCAvVHlwZSAvQ2F0YWxvZyAvUGFnZXMgMiAwIFIgPj4KZW5kb2JqCjIgMCBvYmoKPDwgL1R5cGUgL1BhZ2VzIC9LaWRzIFszIDAgUl0gL0NvdW50IDEgPj4KZW5kb2JqCjMgMCBvYmoKPDwgL1R5cGUgL1BhZ2UgL1BhcmVudCAyIDAgUiAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXSAvQ29udGVudHMgNCAwIFIgL1Jlc291cmNlcyA8PCAvRm9udCA8PCAvRjEgNSAwIFIgPj4gPj4gPj4KZW5kb2JqCjQgMCBvYmoKPDwgL0xlbmd0aCAxMjUgPj4Kc3RyZWFtCkJUIC9GMSAxOCBUZiA1MCA3NDAgVGQgMjIgVEwgKElOVk9JQ0UpIFRqIFQqIChJbnZvaWNlICM6IElOVi0xMDQyKSBUaiBUKiAoRGF0ZTogMjAyNi0xMC0wMSkgVGogVCogKFRvdGFsOiAkMSwyNTAuMDApIFRqIFQqIEVUCmVuZHN0cmVhbQplbmRvYmoKNSAwIG9iago8PCAvVHlwZSAvRm9udCAvU3VidHlwZSAvVHlwZTEgL0Jhc2VGb250IC9IZWx2ZXRpY2EgPj4KZW5kb2JqCnhyZWYKMCA2CjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMDAwOSAwMDAwMCBuIAowMDAwMDAwMDU4IDAwMDAwIG4gCjAwMDAwMDAxMTUgMDAwMDAgbiAKMDAwMDAwMDI0MSAwMDAwMCBuIAowMDAwMDAwNDE3IDAwMDAwIG4gCnRyYWlsZXIKPDwgL1NpemUgNiAvUm9vdCAxIDAgUiA+PgpzdGFydHhyZWYKNDg3CiUlRU9GCg=="}}}}}},"/v1/bundle/token-preflight":{"get":{"operationId":"token_preflight","summary":"token preflight","description":"Token preflight for agents about to swap, list or pay with a token on Base, Ethereum, Optimism, Arbitrum or Polygon: contract and standard check, name, symbol, supply, proxy and owner flags, a 0-100 structural risk score with reasons, plus a simulated ERC20 transfer gas cost in USD. Not a honeypot audit.","tags":["Agent Tools"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.004000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"},"example":{"token":{"chain":"base","symbol":"USDC","standard":"ERC20","decimals":6},"risk":{"score":30,"level":"medium","reasons":["upgradeable or proxy contract (zeppelinos (legacy unstructured storage))","has an owner address"]},"transfer_gas":{"gas_units":"45415","fees":[{"tier":"standard","est_cost_usd":0.00065}]}}}}},"402":{"description":"Payment Required"}},"parameters":[{"name":"address","in":"query","required":true,"schema":{"type":"string","description":"Token contract address"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"name":"chain","in":"query","required":false,"schema":{"type":"string","enum":["base","ethereum","optimism","arbitrum","polygon"],"description":"Default base"},"example":"base"},{"name":"from","in":"query","required":false,"schema":{"type":"string","description":"Optional holder address for a realistic transfer simulation"}}]}},"/v1/chain/ens":{"get":{"operationId":"ens_resolve","summary":"ens resolve","description":"ENS lookup: name to address (with avatar) or address to primary name, with forward verification. Read live from Ethereum mainnet. Use name=vitalik.eth or address=0x... Use before sending funds to a human readable name.","tags":["Agent Tools"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"},"example":{"name":"vitalik.eth","address":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045","resolved":true,"avatar":null}}}},"402":{"description":"Payment Required"}},"parameters":[{"name":"name","in":"query","required":false,"schema":{"type":"string","description":"ENS name, e.g. vitalik.eth"},"example":"vitalik.eth"},{"name":"address","in":"query","required":false,"schema":{"type":"string","description":"Or an address for reverse lookup"}}]}},"/v1/chain/balance":{"get":{"operationId":"wallet_balance","summary":"wallet balance","description":"Wallet balance on Base, Ethereum, Optimism, Arbitrum or Polygon: native coin balance with USD value (Chainlink) plus up to 10 ERC20 token balances with symbol and decimals. Pass tokens=0xA,0xB. Read live from public RPC. Use before funding, swapping or paying from a wallet.","tags":["Agent Tools"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"},"example":{"chain":"base","address":"0x0dEA0030A17BF886543a757c55924710258c2eec","native":{"symbol":"ETH","balance":"0.0012","usd":2.78},"tokens":[{"token":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","symbol":"USDC","balance":"1.5"}]}}}},"402":{"description":"Payment Required"}},"parameters":[{"name":"address","in":"query","required":true,"schema":{"type":"string","description":"Wallet address"},"example":"0x0dEA0030A17BF886543a757c55924710258c2eec"},{"name":"chain","in":"query","required":false,"schema":{"type":"string","enum":["base","ethereum","optimism","arbitrum","polygon"],"description":"Default base"},"example":"base"},{"name":"tokens","in":"query","required":false,"schema":{"type":"string","description":"Optional comma list of up to 10 ERC20 addresses"},"example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}]}},"/v1/chain/tx":{"get":{"operationId":"tx_decode","summary":"tx decode","description":"Transaction decoder for Base, Ethereum, Optimism, Arbitrum and Polygon: status, from, to, value, gas used, fee in native coin and USD, method name and arguments for common ERC20 calls, ERC20 transfers with symbols and amounts, and approvals. Use to confirm a payment landed or explain what a transaction did.","tags":["Agent Tools"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"},"example":{"chain":"base","hash":"0x5514...","status":"success","from":"0x652a...","to":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","method":{"name":"transfer"},"token_transfers":[{"symbol":"USDC","amount":"0.003"}],"fee_usd":0.0004}}}},"402":{"description":"Payment Required"}},"parameters":[{"name":"hash","in":"query","required":true,"schema":{"type":"string","description":"Transaction hash (0x + 64 hex)"},"example":"0x5514f248a7cab6a23403bfc1e5da4c61e5d81b2527f3687b73453d3f7d7eeedb"},{"name":"chain","in":"query","required":false,"schema":{"type":"string","enum":["base","ethereum","optimism","arbitrum","polygon"],"description":"Default base"},"example":"base"}]}},"/v1/time/add-business-days":{"get":{"operationId":"business_day_add","summary":"business day add","description":"Due-date calculator: add or subtract N business days from a date, skipping weekends and nationwide public holidays for a country (ISO code). Returns the result date and weekday, which holidays were skipped and whether the start day is a working day. For SLAs, invoice terms, shipping and legal deadlines.","tags":["Agent Tools"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"},"example":{"start":"2026-12-23","start_weekday":"Wednesday","start_is_business_day":true,"days":5,"result":"2026-12-31","result_weekday":"Thursday","calendar_days":8,"weekend_days_skipped":2,"holidays_skipped":[{"date":"2026-12-25","name":"Christmas Day"}],"country":"US"}}}},"402":{"description":"Payment Required"}},"parameters":[{"name":"start","in":"query","required":true,"schema":{"type":"string","description":"Start date YYYY-MM-DD (not counted)"},"example":"2026-12-23"},{"name":"days","in":"query","required":true,"schema":{"type":"string","description":"Whole number of business days, negative to go back (max 1000)"},"example":"5"},{"name":"country","in":"query","required":false,"schema":{"type":"string","description":"Optional ISO 3166 alpha-2, e.g. US"},"example":"US"}]}},"/v1/fx/convert":{"get":{"operationId":"fx_convert","summary":"fx convert","description":"Currency converter for invoices, quotes and budgets: convert an amount from one currency into up to 10 others using European Central Bank rates (latest or a past date). Returns rounded amounts, rate, inverse rate and the 7 day change in percent for each target.","tags":["Agent Tools"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"},"example":{"source":"European Central Bank via Frankfurter","amount":1250,"from":"USD","rate_date":"2026-10-27","conversions":[{"currency":"EUR","rate":0.89686,"inverse_rate":1.115,"converted":1121.08,"change_7d_pct":0.925}],"change_7d_reference_date":"2026-10-20"}}}},"402":{"description":"Payment Required"}},"parameters":[{"name":"amount","in":"query","required":true,"schema":{"type":"string","description":"Amount to convert, e.g. 1250.50"},"example":"1250"},{"name":"from","in":"query","required":true,"schema":{"type":"string","description":"Source currency code, e.g. USD"},"example":"USD"},{"name":"to","in":"query","required":true,"schema":{"type":"string","description":"Comma list of up to 10 target currency codes"},"example":"EUR,GBP,JPY"},{"name":"date","in":"query","required":false,"schema":{"type":"string","description":"Optional YYYY-MM-DD for a historical rate"}}]}},"/v1/web/check":{"get":{"operationId":"url_check","summary":"url check","description":"Link health check: follows redirects hop by hop (max 8) with status and timing, flags loops and https downgrades, then reports final status, content type and size, server, caching and a security-header grade (HSTS, CSP, nosniff, frame, referrer, permissions). Public hosts only.","tags":["Agent Tools"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"},"example":{"url":"http://github.com/","final_url":"https://github.com/","final_status":200,"verdict":"ok_after_redirect","redirects":1,"https":true,"downgraded_to_http":false,"hops":[{"url":"http://github.com/","status":301,"location":"https://github.com/","ms":40},{"url":"https://github.com/","status":200,"location":null,"ms":120}],"total_ms":160,"content_type":"text/html; charset=utf-8","server":"github.com","security_headers":{"score":90,"grade":"A","present":["strict-transport-security","content-security-policy"],"missing":["permissions-policy"]}}}}},"402":{"description":"Payment Required"}},"parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","description":"Public http(s) URL to check"},"example":"http://github.com"}]}},"/v1/dev/package-advisories":{"get":{"operationId":"package_advisories","summary":"package advisories","description":"Free tier: 25 calls/day per IP with header X-Free-Call: 1 (or ?free=1), then pay per call. Check a package before installing it: known vulnerabilities for one npm, PyPI, cargo, Go or Maven package version (OSV.dev), fixed-in version, latest version and release date, licence, deprecated flag, and a safe, caution or avoid verdict with reasons. Version defaults to latest. Known-advisory lookup, not a security guarantee. Sources: OSV.dev (CC-BY 4.0) and deps.dev. Unknown packages return HTTP 400 and are not charged. Maven names are group:artifact.","tags":["Agent Tools"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"},"example":{"ecosystem":"npm","name":"lodash","version":"4.17.20","version_checked":"requested","verdict":"avoid","reasons":["5 known advisories affect this version (worst: high)","a newer version exists"],"vulnerabilities":{"count":5,"by_severity":{"HIGH":2,"MODERATE":3},"items":[{"id":"GHSA-29mw-wpgm-hmr9","cve":["CVE-2020-28500"],"severity":"MODERATE","fixed_in":["4.17.21"]}]},"suggested_min_fixed_version":"4.18.0","latest_version":"4.18.1","licenses":["MIT"],"deprecated":false}}}},"402":{"description":"Payment Required"}},"parameters":[{"name":"ecosystem","in":"query","required":true,"schema":{"type":"string","enum":["npm","pypi","cargo","go","maven"],"description":"Package ecosystem"},"example":"npm"},{"name":"name","in":"query","required":true,"schema":{"type":"string","description":"Package name, e.g. lodash or requests (maven: group:artifact)"},"example":"lodash"},{"name":"version","in":"query","required":false,"schema":{"type":"string","description":"Optional. Defaults to the latest version"},"example":"4.17.20"}]}},"/v1/text/injection-check":{"post":{"operationId":"prompt_injection_check","summary":"prompt injection check","description":"Free tier: 25 calls/day per IP with header X-Free-Call: 1 (or ?free=1), then pay per call. Rule-based prompt-injection screen for untrusted text such as scraped web pages, emails and tool output. JSON body {text} (max 50,000 chars). Detects instruction-override phrasing, role-spoofing tags, data-leak links and hidden Unicode in 6 languages. Returns verdict safe, suspicious or malicious, a 0-100 score and matched spans. Text is not stored. A screen, not a guarantee: 'safe' means no known pattern matched. Rules only, no model call. Empty or oversize text returns HTTP 400 and is not charged.","tags":["Agent Tools"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"},"example":{"verdict":"safe","score":0,"chars":56,"categories":{},"matches":[]}}}},"402":{"description":"Payment Required"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","description":"Text to screen, max 50,000 characters"}},"required":["text"]},"example":{"text":"Quarterly report: revenue grew 4 percent year over year."}}}}}},"/v1/text/pii-redact":{"post":{"operationId":"pii_redact","summary":"pii redact","description":"Free tier: 25 calls/day per IP with header X-Free-Call: 1 (or ?free=1), then pay per call. Scrub text before it goes to a model or a log: JSON body {text, mask} (max 100,000 chars). Finds emails, phones, SSNs, cards (Luhn), IBANs, IPs, MAC addresses, API keys, JWTs, private keys, wallet addresses. mask is label, hash or star. Returns redacted text and counts. Not stored. Pattern based: does not find names or street addresses. Findings list offsets and types, never the values. Bad input returns HTTP 400 and is not charged.","tags":["Agent Tools"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"},"example":{"redacted":"Contact [EMAIL] or [PHONE]. Card [CREDIT_CARD].","mask":"label","total_found":3,"counts":{"email":1,"phone":1,"credit_card":1},"findings":[{"type":"email","start":8,"end":20,"length":12}]}}}},"402":{"description":"Payment Required"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","description":"Text to redact, max 100,000 characters"},"mask":{"type":"string","enum":["label","hash","star"],"description":"label (default) [EMAIL], hash [EMAIL:ab12cd34], or star"}},"required":["text"]},"example":{"text":"Contact jane@acme.com or 415-555-0132. Card 4242 4242 4242 4242.","mask":"label"}}}}}},"/v1/gov/federal-register":{"get":{"operationId":"federal_register_search","summary":"federal register search","description":"Free tier: 25 calls/day per IP with header X-Free-Call: 1 (or ?free=1), then pay per call. Search the US Federal Register: final rules, proposed rules, notices and presidential documents with title, agencies, publication date, effective date, comment deadline, docket IDs, abstract and links. Filter by keyword, type, agency slug and date range. Public domain data, no legal advice. limit 1-20 (default 10). sort relevance|newest|oldest. comments_open=true keeps documents still taking comments. Bad filters return HTTP 400 and are not charged.","tags":["Agent Tools"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"},"example":{"total_matches":42,"returned":1,"documents":[{"document_number":"2026-21706","type":"Proposed Rule","title":"Example proposed rule","agencies":["Treasury Department"],"publication_date":"2026-10-23","effective_on":null,"comments_close_on":"2026-12-22","docket_ids":["Docket ID OCC-2025-0372"],"url":"https://www.federalregister.gov/documents/2026/10/23/2026-21706/example"}],"source":"federalregister.gov API (public domain)"}}}},"402":{"description":"Payment Required"}},"parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","description":"Optional keyword or phrase"},"example":"artificial intelligence"},{"name":"type","in":"query","required":false,"schema":{"type":"string","enum":["rule","proposed_rule","notice","presidential_document"],"description":"Optional document type"},"example":"proposed_rule"},{"name":"agency","in":"query","required":false,"schema":{"type":"string","description":"Optional agency slug, e.g. environmental-protection-agency"}},{"name":"from","in":"query","required":false,"schema":{"type":"string","description":"Optional publication date from, YYYY-MM-DD"},"example":"2026-09-01"},{"name":"to","in":"query","required":false,"schema":{"type":"string","description":"Optional publication date to, YYYY-MM-DD"}},{"name":"limit","in":"query","required":false,"schema":{"type":"string","description":"1 to 20, default 10"},"example":"3"},{"name":"sort","in":"query","required":false,"schema":{"type":"string","enum":["relevance","newest","oldest"]}},{"name":"comments_open","in":"query","required":false,"schema":{"type":"string","description":"true to keep only documents still open for comment"}}]}},"/v1/finance/sec-filings":{"get":{"operationId":"sec_filings","summary":"sec filings","description":"Free tier: 25 calls/day per IP with header X-Free-Call: 1 (or ?free=1), then pay per call. Recent SEC EDGAR filings for a US-listed company by ticker or CIK: form type, filing and report dates, 8-K item codes with plain labels, accession number and direct document links. Filter by form (8-K, 10-K, 10-Q, 4, 13F-HR, comma list), since date and limit. Raw public data, not investment advice. limit 1-40 (default 10). Amendments (/A) match their base form. Covers the most recent ~1,000 filings. Unknown tickers return HTTP 400 and are not charged; use cik for funds or delisted issuers. Source: SEC EDGAR data.sec.gov.","tags":["Agent Tools"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"},"example":{"company":{"name":"Apple Inc.","cik":"320193","tickers":["AAPL"],"exchanges":["Nasdaq"],"sic_description":"Electronic Computers","fiscal_year_end":"0926"},"filters":{"form":["8-K"],"since":null,"limit":3},"matched":12,"returned":1,"filings":[{"form":"8-K","amendment":false,"filing_date":"2026-07-31","report_date":"2026-07-31","accession_number":"0000320193-26-000071","items":[{"code":"2.02","label":"Results of operations and financial condition"},{"code":"9.01","label":"Financial statements and exhibits"}],"document_url":"https://www.sec.gov/Archives/edgar/data/320193/000032019326000071/aapl-20260731.htm"}],"source":"SEC EDGAR (data.sec.gov, public)"}}}},"402":{"description":"Payment Required"}},"parameters":[{"name":"ticker","in":"query","required":false,"schema":{"type":"string","description":"Stock ticker, e.g. AAPL or BRK-B. Give ticker or cik"},"example":"AAPL"},{"name":"cik","in":"query","required":false,"schema":{"type":"string","description":"Optional SEC CIK number, e.g. 320193"}},{"name":"form","in":"query","required":false,"schema":{"type":"string","description":"Optional form type or comma list, e.g. 8-K,10-Q"},"example":"8-K"},{"name":"since","in":"query","required":false,"schema":{"type":"string","description":"Optional earliest filing date, YYYY-MM-DD"}},{"name":"limit","in":"query","required":false,"schema":{"type":"string","description":"1 to 40, default 10"},"example":"3"}]}},"/v1/research/papers":{"get":{"operationId":"papers_search","summary":"papers search","description":"Free tier: 25 calls/day per IP with header X-Free-Call: 1 (or ?free=1), then pay per call. Scholarly paper search for research agents: keywords or a DOI in, matching papers out with title, authors, year, venue, DOI, citation count, open access PDF or page link, retraction flag and abstract. Filter by year range and open access, sort by relevance, citations or newest. Source OpenAlex, Crossref fallback. limit 1-25 (default 10). Bad input returns HTTP 400 and is not charged. Abstracts come from OpenAlex where the publisher allows; some papers have none.","tags":["Agent Tools"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.006000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"},"example":{"total_matches":136358,"returned":1,"papers":[{"title":"Example paper on retrieval augmented generation","authors":["A. Author","B. Author"],"authors_total":2,"year":2024,"venue":"Example Journal","doi":"10.1234/example.5678","doi_url":"https://doi.org/10.1234/example.5678","citations":181,"open_access":true,"open_access_url":"https://arxiv.org/pdf/0000.00000","retracted":false,"abstract":"A short abstract of the paper."}],"source":"OpenAlex (CC0)"}}}},"402":{"description":"Payment Required"}},"parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","description":"Search words, or a DOI such as 10.1038/nature14539"},"example":"retrieval augmented generation"},{"name":"from_year","in":"query","required":false,"schema":{"type":"string","description":"Optional earliest year, e.g. 2020"},"example":"2023"},{"name":"to_year","in":"query","required":false,"schema":{"type":"string","description":"Optional latest year"}},{"name":"limit","in":"query","required":false,"schema":{"type":"string","description":"1 to 25, default 10"},"example":"3"},{"name":"sort","in":"query","required":false,"schema":{"type":"string","enum":["relevance","citations","newest"]},"example":"citations"},{"name":"open_access","in":"query","required":false,"schema":{"type":"string","description":"true to keep only open access papers"}}]}},"/v1/bundle/dependency-audit":{"post":{"operationId":"dependency_audit","summary":"dependency audit","description":"Audit a whole project before an agent installs or runs it: JSON body {manifest, type, readme}. manifest is package.json (npm) or requirements.txt (PyPI) text. Checks up to 25 dependencies against OSV.dev advisories, deprecation and latest versions, and screens the optional README for prompt injection. Returns one safe, caution or avoid verdict plus a ranked fix list (upgrade to version X). Range specs are checked at their lowest allowed version, unpinned specs at latest. Over 25 dependencies: the first 25 are checked and the rest counted. Known-advisory lookup, not a security guarantee. Bad input, or no dependency checkable, returns HTTP 400/502 and is not charged.","tags":["Agent Tools"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.050000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"},"example":{"verdict":"avoid","ecosystem":"npm","manifest_type":"package.json","summary":{"dependencies_found":2,"checked":2,"not_checked_over_limit":0,"lookup_failed":0,"avoid":1,"caution":0,"known_vulnerabilities":5},"fixes":[{"priority":"high","package":"lodash","action":"upgrade to >= 4.17.21","why":["5 known advisories affect this version (worst: high)"]}],"packages":[{"name":"lodash","spec":"4.17.20","version_checked":"4.17.20","verdict":"avoid","vulnerabilities":5}],"skipped":[],"readme_screen":null}}}},"402":{"description":"Payment Required"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"manifest":{"type":"string","description":"package.json or requirements.txt contents as a string, max 200,000 chars"},"type":{"type":"string","enum":["package.json","requirements.txt"],"description":"Optional. Auto-detected if omitted"},"readme":{"type":"string","description":"Optional README or docs text to screen for prompt injection, max 50,000 chars"}},"required":["manifest"]},"example":{"manifest":"{\"dependencies\":{\"lodash\":\"4.17.20\",\"express\":\"^4.18.2\"}}","type":"package.json"}}}}}},"/v1/text/similarity":{"post":{"operationId":"text_similarity","summary":"text similarity","description":"Semantic similarity of two texts for RAG, dedupe and matching: JSON body {a, b}, each up to 8,000 chars, any language. Returns a cosine score from bge-m3 embeddings plus a rough band (near_duplicate, high, related, weak, unrelated). Texts are not stored. Model @cf/baai/bge-m3 on Workers AI (bge-base-en-v1.5 as fallback). Also accepts {texts:[a,b]}. Empty or oversize input returns HTTP 400/413 and is not charged.","tags":["Agent Tools"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"},"example":{"similarity":0.8123,"band":"high","metric":"cosine","model":"baai/bge-m3","dimensions":1024,"chars":{"a":23,"b":27}}}}},"402":{"description":"Payment Required"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"a":{"type":"string","description":"First text, max 8,000 characters"},"b":{"type":"string","description":"Second text, max 8,000 characters"}},"required":["a","b"]},"example":{"a":"The cat sat on the mat.","b":"A cat was sitting on a rug."}}}}}},"/v1/text/rerank":{"post":{"operationId":"text_rerank","summary":"text rerank","description":"Rerank search results or RAG chunks by relevance to a query: JSON body {query, documents, top_k}. Up to 50 documents (strings or {id, text}), each up to 2,000 chars. Returns the documents sorted by a 0-1 relevance score from the bge-reranker-base cross-encoder. Texts are not stored. query max 1,000 chars, documents total max 100,000 chars. return_documents=false drops text from the results. Bad or oversize input returns HTTP 400/413 and is not charged.","tags":["Agent Tools"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"},"example":{"documents":3,"returned":2,"model":"baai/bge-reranker-base","results":[{"rank":1,"index":0,"score":0.9312,"text":"Photosynthesis turns light, water and carbon dioxide into sugar."},{"rank":2,"index":2,"score":0.4105,"text":"Chlorophyll absorbs sunlight in leaves."}]}}}},"402":{"description":"Payment Required"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","description":"Search query, max 1,000 characters"},"documents":{"type":"array","maxItems":50,"items":{"anyOf":[{"type":"string"},{"type":"object","properties":{"id":{"type":"string"},"text":{"type":"string"}},"required":["text"]}]},"description":"1 to 50 strings or {id, text} objects, each max 2,000 characters"},"top_k":{"type":"integer","minimum":1,"maximum":50,"description":"Optional number of results, default all"},"return_documents":{"type":"boolean","description":"Optional, default true"}},"required":["query","documents"]},"example":{"query":"how do plants make food","documents":["Photosynthesis turns light, water and carbon dioxide into sugar.","The stock market closed higher on Friday.","Chlorophyll absorbs sunlight in leaves."],"top_k":2}}}}}},"/status":{"get":{"operationId":"status","summary":"Health and payment config","security":[],"responses":{"200":{"description":"OK"}}}},"/v1/tools":{"get":{"operationId":"list_tools","summary":"Tool catalog","security":[],"responses":{"200":{"description":"OK"}}}},"/llms.txt":{"get":{"operationId":"llms_txt","summary":"Agent docs","security":[],"responses":{"200":{"description":"OK"}}}},"/llms-full.txt":{"get":{"operationId":"llms_full_txt","summary":"Agent docs with examples","security":[],"responses":{"200":{"description":"OK"}}}}}}