# Agent Tools > Small pay-per-call utilities for AI agents. Payment is x402 (HTTP 402), USDC on Base (eip155:8453). No accounts or API keys: call an endpoint, receive a 402 with payment requirements, pay, retry with the PAYMENT-SIGNATURE header. ## Endpoints ### email_check GET https://agents.crowdspark.me/v1/email/check ($0.001 USDC) Validate email address syntax, check MX mail servers, detect disposable or temporary domains, identify role addresses (info@, sales@) and free providers. Returns deliverable_guess. For signup forms, lead lists and CRM cleanup. No SMTP probe, no data stored. Example input: {"email":"jane@acme.com"} Example output: {"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"} ### email_check_full GET https://agents.crowdspark.me/v1/email/full ($0.004 USDC) 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. Example input: {"email":"jane@acme.com"} Example output: {"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"} ### pdf_to_text GET https://agents.crowdspark.me/v1/pdf/text ($0.006 USDC) 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. Example input: {"url":"https://pdfobject.com/pdf/sample.pdf","format":"markdown"} Example output: {"pages":1,"format":"markdown","characters":2859,"text":"## Page 1\n\nSample PDF\nThis is a simple PDF file..."} ### pdf_to_text_upload POST https://agents.crowdspark.me/v1/pdf/text/upload ($0.006 USDC) 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}. Example input: {} Example output: {"pages":1,"format":"text","characters":69,"text":"INVOICE\nInvoice #: INV-1042\nDate: 2026-10-01\nTotal: $1,250.00"} ### document_extract GET https://agents.crowdspark.me/v1/document/extract ($0.012 USDC) 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. Example input: {"url":"https://pdfobject.com/pdf/sample.pdf"} Example output: {"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":[]}} ### document_extract_upload POST https://agents.crowdspark.me/v1/document/extract/upload ($0.012 USDC) 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}. Example input: {} Example output: {"kind":"image","pages":null,"text":"TOTAL $12.40","fields":{"amounts":["$12.40"],"totals":[{"label":"total","value":"$12.40"}]}} ### domain_lookup GET https://agents.crowdspark.me/v1/domain/lookup ($0.003 USDC) 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. Example input: {"domain":"example.com"} Example output: {"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}} ### image_ocr GET https://agents.crowdspark.me/v1/ocr ($0.005 USDC) 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. Example input: {"url":"https://placehold.co/600x200/png?text=Hello+Agent+Tools"} Example output: {"text":"Hello Agent Tools"} ### image_ocr_upload POST https://agents.crowdspark.me/v1/ocr/upload ($0.005 USDC) 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}. Example input: {} Example output: {"text":"RECEIPT Cafe Nova\nOrder #: 4821\nTOTAL $12.40"} ### file_convert POST https://agents.crowdspark.me/v1/convert ($0.003 USDC) 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}. Example input: {"from":"csv","to":"json","input":"name,qty\nwidget,2"} Example output: {"output":[{"name":"widget","qty":"2"}]} ### web_to_markdown GET https://agents.crowdspark.me/v1/web/markdown ($0.0015 USDC) Convert a web page URL to clean Markdown for LLMs, research, RAG and summarization. Extracts main content without navigation or scripts. Returns title, status and LLM-ready markdown. Respects robots.txt. Example input: {"url":"https://example.com"} Example output: {"url":"https://example.com/","status":200,"title":"Example Domain","characters":156,"markdown":"This domain is for use in documentation examples..."} ### web_read_full GET https://agents.crowdspark.me/v1/web/read ($0.004 USDC) 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. Example input: {"url":"https://example.com"} Example output: {"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":[]}} ### url_metadata GET https://agents.crowdspark.me/v1/web/meta ($0.001 USDC) Link preview and unfurl data: title, description, Open Graph image, site name, canonical URL, favicon and final URL after redirects. Example input: {"url":"https://github.com"} Example output: {"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"} ### timezone_convert GET https://agents.crowdspark.me/v1/time/convert ($0.001 USDC) Convert time between timezones for scheduling meetings and coordinating deadlines across IANA time zones. DST-correct UTC offsets. time=ISO local time or 'now'. Example input: {"time":"2026-10-22T12:00:00","from":"America/New_York","to":"Asia/Tokyo"} Example output: {"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"}} ### business_days GET https://agents.crowdspark.me/v1/time/business-days ($0.001 USDC) Calculate business days between two dates for SLAs, invoice due dates, shipping and legal deadlines. Counts working days, skipping weekends and national public holidays by country (ISO code). Example input: {"start":"2026-12-01","end":"2026-12-31","country":"US"} Example output: {"start":"2026-12-01","end":"2026-12-31","country":"US","business_days":22,"holidays_excluded":1,"inclusive":true} ### public_holidays GET https://agents.crowdspark.me/v1/time/holidays ($0.001 USDC) Public holiday calendar and list for 100+ countries by year. For scheduling, payroll and delivery planning. Returns national holidays with dates and names. Source: Nager.Date API. Example input: {"country":"US","year":"2027"} Example output: {"year":2027,"country":"US","holidays":[{"date":"2027-01-01","name":"New Year's Day","local_name":"New Year's Day","global":true}]} ### fx_rates GET https://agents.crowdspark.me/v1/fx/rates ($0.001 USDC) Currency exchange rates and conversion. European Central Bank reference rates for price conversion, invoicing and travel budgets. Latest rates or historical by date. Source: European Central Bank via Frankfurter API. Example input: {"base":"USD","symbols":"EUR,JPY"} Example output: {"source":"European Central Bank via Frankfurter","base":"USD","date":"2026-10-22","rates":{"EUR":0.89246,"JPY":157.05}} ### weather_forecast GET https://agents.crowdspark.me/v1/weather/forecast ($0.001 USDC) Weather forecast for any latitude and longitude: current conditions plus hourly and daily forecast up to 48 hours. Data from MET Norway. Example input: {"lat":"51.5074","lon":"-0.1278","hours":"24","units":"metric"} Example output: {"current":{"time":"2026-11-09T15:00:00Z","temperature":12.4,"humidity":72,"wind_speed":18.5,"wind_direction":245,"precipitation_next_hour":0.01,"condition_symbol":"partlycloudy_day"},"hourly":[{"time":"2026-11-09T15:00:00Z","temperature":12.4,"humidity":72,"wind_speed":18.5,"precipitation":0.01,"condition_symbol":"partlycloudy_day"}],"daily":[{"date":"2026-11-09","min_temperature":8.1,"max_temperature":14.2}],"units":{"temperature":"°C","wind_speed":"km/h","precipitation":"mm"},"location":{"latitude":51.5074,"longitude":-0.1278},"source":"Data from MET Norway, CC BY 4.0","updated_at":"2026-11-09T14:32:15Z"} ### ip_lookup GET https://agents.crowdspark.me/v1/ip/lookup ($0.003 USDC) IP address lookup for security triage, log analysis and fraud checks: owning network, allocation range, registry country (RDAP) and reverse DNS. Example input: {"ip":"1.1.1.1"} Example output: {"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."]} ### token_info GET https://agents.crowdspark.me/v1/chain/token ($0.002 USDC) 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. Example input: {"address":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","chain":"base"} Example output: {"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"}} ### gas_estimate GET https://agents.crowdspark.me/v1/chain/gas ($0.002 USDC) 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. Example input: {"chain":"base","to":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","from":"0x0dEA0030A17BF886543a757c55924710258c2eec","data":"0x70a082310000000000000000000000000dea0030a17bf886543a757c55924710258c2eec"} Example output: {"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}]} ### x402_endpoint_check GET https://agents.crowdspark.me/v1/x402/check ($0.005 USDC) 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. Example input: {"url":"https://agents.crowdspark.me/v1/fx/rates"} Example output: {"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":[]} ### x402_seller_audit GET https://agents.crowdspark.me/v1/x402/audit ($0.01 USDC) 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. Example input: {"url":"https://agents.crowdspark.me/v1/fx/rates"} Example output: {"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} ### email_check_batch POST https://agents.crowdspark.me/v1/email/check/batch ($0.006 USDC) 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. Example input: {"emails":["jane@acme.com","bob@mailinator.com"]} Example output: {"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"}}]} ### ip_lookup_batch POST https://agents.crowdspark.me/v1/ip/lookup/batch ($0.012 USDC) 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. Example input: {"ips":["1.1.1.1","8.8.8.8"]} Example output: {"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"}}]} ### domain_lookup_batch POST https://agents.crowdspark.me/v1/domain/lookup/batch ($0.012 USDC) 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. Example input: {"domains":["example.com","github.com"]} Example output: {"count":2,"succeeded":2,"failed":0,"results":[{"input":"example.com","ok":true,"result":{"registered":true,"registrar":"RESERVED-Internet Assigned Numbers Authority"}}]} ### url_dossier GET https://agents.crowdspark.me/v1/bundle/url-dossier ($0.007 USDC) 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. Example input: {"url":"https://example.com"} Example output: {"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}} ### invoice_intake GET https://agents.crowdspark.me/v1/bundle/invoice-intake ($0.012 USDC) 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. Example input: {"url":"https://agents.crowdspark.me/samples/sample.pdf"} Example output: {"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":[]} ### invoice_intake_upload POST https://agents.crowdspark.me/v1/bundle/invoice-intake/upload ($0.012 USDC) 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}. Example input: {} Example output: {"invoice":{"number":"INV-1042","total":"$1,250.00","vendor_domain":"acme.com"},"verdict":"review","reasons":["no vendor email or website found to verify"]} ### token_preflight GET https://agents.crowdspark.me/v1/bundle/token-preflight ($0.004 USDC) 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. Example input: {"address":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","chain":"base"} Example output: {"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}]}} ### agent_context GET https://agents.crowdspark.me/v1/bundle/agent-context ($0.003 USDC) International context bundle for scheduling, invoicing and coordination across borders. Combines timezone conversion, holiday calendar and currency exchange in one call. Returns DST-correct local time with offset, upcoming public holidays and exchange rate. Sources: IANA TZDB, Nager.Date API, European Central Bank. Example input: {"country":"US","timezone":"America/New_York","from_currency":"USD","to_currency":"EUR","timestamp":"now","year":"2026"} Example output: {"country":"US","timezone":"America/New_York","local_time":{"datetime":"2026-03-15T08:00:00","utc_offset":"-04:00"},"holidays":{"year":2026,"count":11,"upcoming":[{"date":"2026-05-25","name":"Memorial Day"},{"date":"2026-07-04","name":"Independence Day"}]},"exchange_rate":{"from":"USD","to":"EUR","rate":0.89,"date":"2026-03-15"},"reference_date":"2026-03-15","source":{"timezone":"IANA TZDB","holidays":"Nager.Date API","fx":"European Central Bank via Frankfurter"}} ### ens_resolve GET https://agents.crowdspark.me/v1/chain/ens ($0.002 USDC) 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. Example input: {"name":"vitalik.eth"} Example output: {"name":"vitalik.eth","address":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045","resolved":true,"avatar":null} ### wallet_balance GET https://agents.crowdspark.me/v1/chain/balance ($0.002 USDC) 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. Example input: {"address":"0x0dEA0030A17BF886543a757c55924710258c2eec","chain":"base","tokens":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"} Example output: {"chain":"base","address":"0x0dEA0030A17BF886543a757c55924710258c2eec","native":{"symbol":"ETH","balance":"0.0012","usd":2.78},"tokens":[{"token":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","symbol":"USDC","balance":"1.5"}]} ### tx_decode GET https://agents.crowdspark.me/v1/chain/tx ($0.003 USDC) 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. Example input: {"hash":"0x5514f248a7cab6a23403bfc1e5da4c61e5d81b2527f3687b73453d3f7d7eeedb","chain":"base"} Example output: {"chain":"base","hash":"0x5514...","status":"success","from":"0x652a...","to":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","method":{"name":"transfer"},"token_transfers":[{"symbol":"USDC","amount":"0.003"}],"fee_usd":0.0004} ### business_day_add GET https://agents.crowdspark.me/v1/time/add-business-days ($0.001 USDC) 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. Example input: {"start":"2026-12-23","days":"5","country":"US"} Example output: {"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"} ### fx_convert GET https://agents.crowdspark.me/v1/fx/convert ($0.002 USDC) 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. Example input: {"amount":"1250","from":"USD","to":"EUR,GBP,JPY"} Example output: {"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"} ### url_check GET https://agents.crowdspark.me/v1/web/check ($0.002 USDC) 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. Example input: {"url":"http://github.com"} Example output: {"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"]}} ### package_advisories GET https://agents.crowdspark.me/v1/dev/package-advisories ($0.005 USDC) 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. Example input: {"ecosystem":"npm","name":"lodash","version":"4.17.20"} Example output: {"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} ### safe_web_read GET https://agents.crowdspark.me/v1/web/safe-read ($0.005 USDC) Read a web page as clean markdown and screen for prompt injection before adding to agent context. Returns markdown plus prompt injection verdict (safe, suspicious or malicious), a 0-100 score and matched spans. Respects robots.txt. Same reader as web_to_markdown and the same rules as prompt_injection_check (first 50,000 characters screened). A screen, not a guarantee. Bad URL, robots block or fetch failure returns an error and is not charged. Example input: {"url":"https://example.com"} Example output: {"url":"https://example.com/","status":200,"title":"Example Domain","characters":156,"injection":{"verdict":"safe","score":0,"categories":{},"matches":[]},"markdown":"This domain is for use in documentation examples..."} ### prompt_injection_check POST https://agents.crowdspark.me/v1/text/injection-check ($0.005 USDC) Detect prompt injection and jailbreak attempts in untrusted text such as scraped web pages, emails and tool output. JSON body {text} (max 50,000 chars). Rule-based detection of 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. Free tier: 25 calls/day per IP with header X-Free-Call: 1 (or ?free=1). 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. Example input: {"text":"Quarterly report: revenue grew 4 percent year over year."} Example output: {"verdict":"safe","score":0,"chars":56,"categories":{},"matches":[]} ### pii_redact POST https://agents.crowdspark.me/v1/text/pii-redact ($0.003 USDC) 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. Example input: {"text":"Contact jane@acme.com or 415-555-0132. Card 4242 4242 4242 4242.","mask":"label"} Example output: {"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}]} ### federal_register_search GET https://agents.crowdspark.me/v1/gov/federal-register ($0.005 USDC) 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. Example input: {"q":"artificial intelligence","type":"proposed_rule","from":"2026-09-01","limit":"3"} Example output: {"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)"} ### sec_filings GET https://agents.crowdspark.me/v1/finance/sec-filings ($0.005 USDC) 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. Example input: {"ticker":"AAPL","form":"8-K","limit":"3"} Example output: {"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)"} ### sec_facts GET https://agents.crowdspark.me/v1/finance/sec-facts ($0.01 USDC) Financial figures over time from SEC XBRL filings for a US-listed company by ticker or CIK: revenue, net income, EPS, assets, liabilities, cash, operating income, equity, shares, or any us-gaap tag. Annual or quarterly series with period dates, fiscal year, form, filing date and accession number, latest filing per period. Pairs with sec_filings. Raw public data, not investment advice. concept aliases: revenue, net_income, eps, assets, liabilities, cash, operating_income, equity, shares, or a us-gaap tag such as NetIncomeLoss. period annual (default), quarterly or all. limit 1-40 (default 10). Unknown tickers or tags return HTTP 400 and are not charged. Example input: {"ticker":"AAPL","concept":"net_income","period":"annual","limit":"3"} Example output: {"company":{"name":"Apple Inc.","cik":"320193"},"concept":{"tag":"NetIncomeLoss","label":"Net Income (Loss) Attributable to Parent","unit":"USD"},"period":"annual","returned":1,"values":[{"start":"2024-09-29","end":"2025-09-27","value":112010000000,"fiscal_year":2025,"fiscal_period":"FY","form":"10-K","filed":"2025-10-31","accession_number":"0000320193-25-000079"}],"source":"SEC EDGAR XBRL companyconcept (data.sec.gov, public)"} ### manifest_scan POST https://agents.crowdspark.me/v1/dev/manifest-scan ($0.012 USDC) Batch vulnerability scan of a whole package.json (npm) or requirements.txt (PyPI): JSON body {manifest}. Checks up to 50 dependencies against OSV.dev known advisories and returns, per package, the version checked, vulnerability count by severity, advisory IDs and the minimum fixed version, with vulnerable packages listed first. Cheaper batch form of package_advisories. Range specs are checked at their lowest allowed version, unpinned specs at latest. Over 50 dependencies: the first 50 are checked and the rest counted. Known-advisory lookup, not a security guarantee. Bad input or nothing checkable returns HTTP 400/502 and is not charged. Example input: {"manifest":"{\"dependencies\":{\"lodash\":\"4.17.20\",\"express\":\"^4.18.2\"}}","type":"package.json"} Example output: {"ecosystem":"npm","manifest_type":"package.json","summary":{"dependencies_found":2,"checked":2,"not_checked_over_limit":0,"lookup_failed":0,"vulnerable_packages":1,"known_vulnerabilities":5},"vulnerable":[{"name":"lodash","spec":"4.17.20","version_checked":"4.17.20","vulnerable":true,"vulnerabilities":5,"by_severity":{"high":2,"medium":3},"ids":["GHSA-35jh-r3h4-6jhm"],"min_fixed_version":"4.17.21"}],"sources":["OSV.dev (CC-BY 4.0)","deps.dev"]} ### clinical_trials_search GET https://agents.crowdspark.me/v1/gov/clinical-trials ($0.005 USDC) Search ClinicalTrials.gov for health-research agents: keyword, condition or intervention in; trials out with NCT ID, title, status, phases, study type, enrollment, conditions, interventions, lead sponsor, start and completion dates, results flag, site count and link. Filter by status (e.g. RECRUITING), phase and location. Registry data only, not medical advice. Give q, condition or intervention. status comma list of RECRUITING, NOT_YET_RECRUITING, ACTIVE_NOT_RECRUITING, COMPLETED, TERMINATED, WITHDRAWN, SUSPENDED, ENROLLING_BY_INVITATION. phase comma list of EARLY_PHASE1, PHASE1-4, NA. limit 1-25 (default 10). Bad filters return HTTP 400 and are not charged. Example input: {"condition":"type 2 diabetes","intervention":"semaglutide","status":"RECRUITING","limit":"3"} Example output: {"total_matches":822,"returned":1,"studies":[{"nct_id":"NCT06467604","title":"CRAVE Study: Comparing Craving Responses and Diet Quality of GLP1 Receptor Agonist Users","status":"ACTIVE_NOT_RECRUITING","phases":["NA"],"study_type":"OBSERVATIONAL","enrollment":60,"conditions":["Obesity"],"interventions":[],"sponsor":"University of California, Davis","start_date":"2024-11-01","completion_date":null,"has_results":false,"locations_count":1,"url":"https://clinicaltrials.gov/study/NCT06467604"}],"source":"ClinicalTrials.gov API v2 (US NLM, public)","disclaimer":"Registry data only. Not medical advice."} ### macro_indicators GET https://agents.crowdspark.me/v1/data/macro ($0.003 USDC) Macro indicators by country and year from the World Bank: GDP, GDP growth, GDP per capita, inflation, unemployment, population, debt to GDP, real interest rate, exports, imports, current account, FDI, or any World Bank indicator code. Up to 10 countries per call (ISO2 or ISO3, joined with ;), newest year first. Pairs with fx_rates. indicator aliases: gdp, gdp_growth, gdp_per_capita, inflation, unemployment, population, debt_to_gdp, interest_rate, exports, imports, current_account, fdi. from/to years optional. limit 1-60 values per country (default 10). Unknown codes return HTTP 400 and are not charged. Source World Bank Open Data (CC BY 4.0). Example input: {"country":"US;DE","indicator":"inflation","limit":"3"} Example output: {"indicator":{"code":"NY.GDP.MKTP.CD","name":"GDP (current US$)"},"series":[{"country":"United States","iso3":"USA","values":[{"year":2025,"value":30769700000000},{"year":2024,"value":29298013000000}]}],"last_updated":"2026-10-08","source":"World Bank Open Data API (CC BY 4.0)"} ### web_screenshot GET https://agents.crowdspark.me/v1/web/screenshot ($0.015 USDC) Screenshot any public web page with a real headless Chrome: url in, PNG or JPEG out as base64 in JSON, plus final URL after redirects, HTTP status, page title and size. Set viewport width and height, or full_page=true for the whole page. For agents that need to see a page, check a layout or keep visual proof. width 320-1920 (default 1280), height 240-1600 (default 800), format png (default) or jpeg, full_page true|false. Waits for network idle, 20 s timeout. Private addresses are refused. Bad URLs or pages that fail to load return HTTP 400/502 and are not charged. Images over 4.5 MB fail; use jpeg. Example input: {"url":"https://example.com","width":"1280","height":"800"} Example output: {"url":"https://example.com/","final_url":"https://example.com/","http_status":200,"title":"Example Domain","width":1280,"height":800,"full_page":false,"format":"png","bytes":21034,"image_base64":"iVBORw0KGgo...","data_url_prefix":"data:image/png;base64,"} ### audio_transcribe GET https://agents.crowdspark.me/v1/audio/transcribe ($0.02 USDC) Speech to text: transcribe an audio file at a URL (MP3, WAV, M4A/AAC, OGG/Opus, FLAC, WebM; max 10 MB) with Whisper large v3 turbo. Returns full text, detected language, duration, timestamped segments and WebVTT captions. task=translate gives English text. For podcasts, voice notes, calls and meetings. The URL must serve the file itself (not a YouTube or player page). Optional language (ISO code) and vad=true. Files that cannot be decoded return 400/502 and are not charged. Example input: {"url":"https://agents.crowdspark.me/samples/sample.mp3"} Example output: {"text":"Hello and welcome to the show.","language":"en","duration_seconds":4.2,"task":"transcribe","format":"mp3","bytes":67000,"word_count":6,"segments":[{"start":0,"end":4.2,"text":"Hello and welcome to the show."}],"model":"whisper-large-v3-turbo"} ### audio_transcribe_upload POST https://agents.crowdspark.me/v1/audio/transcribe/upload ($0.02 USDC) Speech to text from uploaded audio bytes. POST the raw file as the body (audio/mpeg, audio/wav, audio/mp4, audio/ogg, audio/flac, audio/webm); multipart 'file' or JSON {"base64"} also work. Max 10 MB. Returns text, language, duration, segments and WebVTT. Optional ?language= and ?task=translate. Errors return {error, code, hint, charged:false}. Example input: {} Example output: {"text":"Hello and welcome to the show.","language":"en","duration_seconds":4.2,"task":"transcribe","format":"mp3","bytes":67000,"word_count":6,"segments":[{"start":0,"end":4.2,"text":"Hello and welcome to the show."}],"model":"whisper-large-v3-turbo"} ### video_transcribe GET https://agents.crowdspark.me/v1/video/transcribe ($0.03 USDC) Video to transcript: transcribe the speech in a video file at a URL (MP4, MOV, WebM, MKV with an audio track; max 20 MB) with Whisper large v3 turbo. Returns full text, language, duration, timestamped segments and WebVTT captions ready for subtitles. task=translate gives English text. The URL must serve the video file itself; YouTube, TikTok or X page links are not supported. Optional language (ISO code) and vad=true. Files that cannot be decoded return 400/502 and are not charged. Example input: {"url":"https://agents.crowdspark.me/samples/sample.mp4"} Example output: {"text":"Hello and welcome to the show.","language":"en","duration_seconds":4.2,"task":"transcribe","format":"mp4","bytes":67000,"word_count":6,"segments":[{"start":0,"end":4.2,"text":"Hello and welcome to the show."}],"model":"whisper-large-v3-turbo"} ### video_transcribe_upload POST https://agents.crowdspark.me/v1/video/transcribe/upload ($0.03 USDC) Video to transcript from uploaded bytes. POST the raw video as the body (video/mp4, video/quicktime, video/webm); multipart 'file' or JSON {"base64"} also work. Max 20 MB. Returns text, language, duration, segments and WebVTT captions. Optional ?language= and ?task=translate. Errors return {error, code, hint, charged:false}. Example input: {} Example output: {"text":"Hello and welcome to the show.","language":"en","duration_seconds":4.2,"task":"transcribe","format":"mp4","bytes":67000,"word_count":6,"segments":[{"start":0,"end":4.2,"text":"Hello and welcome to the show."}],"model":"whisper-large-v3-turbo"} ### papers_search GET https://agents.crowdspark.me/v1/research/papers ($0.006 USDC) 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. Example input: {"q":"retrieval augmented generation","from_year":"2023","limit":"3","sort":"citations"} Example output: {"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)"} ### dependency_audit POST https://agents.crowdspark.me/v1/bundle/dependency-audit ($0.05 USDC) 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. Example input: {"manifest":"{\"dependencies\":{\"lodash\":\"4.17.20\",\"express\":\"^4.18.2\"}}","type":"package.json"} Example output: {"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} ### text_similarity POST https://agents.crowdspark.me/v1/text/similarity ($0.003 USDC) 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. Example input: {"a":"The cat sat on the mat.","b":"A cat was sitting on a rug."} Example output: {"similarity":0.8123,"band":"high","metric":"cosine","model":"baai/bge-m3","dimensions":1024,"chars":{"a":23,"b":27}} ### text_rerank POST https://agents.crowdspark.me/v1/text/rerank ($0.005 USDC) 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. Example input: {"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} Example output: {"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."}]} ## Other - Catalog JSON: https://agents.crowdspark.me/v1/tools - MCP (streamable HTTP, JSON-RPC): https://agents.crowdspark.me/mcp - Sourced x402 and agent payments facts: https://crowdspark.me Files and pages are processed in memory and not stored. Failed calls (bad input or upstream error) return JSON {error, code, hint, charged:false} and are not charged. - Upload endpoints take the file as the raw request body (content-type application/pdf or image/png, image/jpeg, image/webp), or multipart/form-data with a file field, or JSON {"base64":"..."}. - Sample files to try: https://agents.crowdspark.me/samples/sample.pdf and https://agents.crowdspark.me/samples/sample.png