Docs / Agent API
Agent API
Pay-per-call data routes for AI agents. Pay each request in USDC on Base with x402. No account, no API key.
Base URL: https://johto-x402-api.johtodata.workers.dev
| Price | Route, fields and example |
|---|---|
| $0.02 per call | GET /v1/jp-invoice-checkJapan qualified-invoice check Returns: Status of one Japanese qualified-invoice issuer registration number (T + 13 digits) for corporations: registration number, status (registered, cancelled, expired, not_found), name, registration, update, cancel and expire dates when set, head-office prefecture and data date. Batch: POST up to 1,000 numbers at $0.012 per unique number. Use when: you need to confirm that a Japanese supplier's invoice registration number is valid before you pay or onboard them. Don't use when: you need sole-proprietor registrations (they return not_found), company financials or people data. Sample (no payment): curl -s "https://johto-x402-api.johtodata.workers.dev/v1/jp-invoice-check?sample=1" |
| $0.03 per call | GET /v1/sec-13fSEC 13F holdings Returns: 13F-HR holdings for one institutional filer (fund or manager), top positions by value, up to 100 per call: filerName, filerCik, reportDate, filedAt, accessionNumber, and per holding issuer, cusip, titleOfClass, valueUsd, shares, sharesType, putCall, investmentDiscretion, votingSole, votingShared, votingNone and pctOfPortfolio, plus portfolio total and fetchedAt. Newest report period by default; pick any 13F-HR or 13F-HR/A with accession. Pass exactly one of cik or ticker. Sample: Use when: you need what a fund or investment manager reported holding at quarter end: positions by CUSIP with value, shares, put/call and voting authority, ranked by value. Don't use when: you need intra-quarter trades, insider Form 4 trades, short positions, holdings not reported on 13F (non-US listings, most bonds, cash), or ticker symbols for each position (13F reports CUSIPs). Sample (no payment): curl "https://johto-x402-api.johtodata.workers.dev/v1/sec-13f?sample=1"First paid call (answers 402 with the price and payment details): curl -i "https://johto-x402-api.johtodata.workers.dev/v1/sec-13f?cik=1067983&limit=25"Example response (sample, 1 row): {"filerCik":"0001067983","filerName":"BERKSHIRE HATHAWAY INC","formType":"13F-HR","isAmendment":false,"reportDate":"2026-06-30","reportQuarter":"2026Q2","filedDate":"2026-08-14","filedAt":"2026-08-15T00:05:04.000Z","accessionNumber":"0001193125-26-352200","accessionUrl":"https://www.sec.gov/Archives/edgar/data/1067983/000119312526352200/0001193125-26-352200-index.htm","infoTableUrl":"https://www.sec.gov/Archives/edgar/data/1067983/000119312526352200/56757.xml","otherAmendmentsForPeriod":[],"portfolioValueUsd":299253556246,"positionsCount":29,"rank":1,"issuer":"APPLE INC","titleOfClass":"COM","cusip":"037833100","valueUsd":65950296923,"shares":227917808,"sharesType":"SH","putCall":null,"inves ... |
| $0.03 per call | GET /v1/sec-8kSEC 8-K filings Returns: Recent 8-K and 8-K/A filings for one SEC filer, up to 20 per call, newest first: companyName, cik, ticker, formType, filedDate, filedAt, reportDate, accessionNumber, items with item names, fileNumber, documentUrl and filingIndexUrl, plus fetchedAt. Pass exactly one of ticker or cik. Sample: Use when: you need a company's recent 8-K current reports (earnings, executive changes, deals, other material events) with item codes and links to each filing. Don't use when: you need the full filing text, other forms (10-K, 10-Q, Form 4, 13F), a feed across all companies, or filers outside SEC EDGAR. Sample (no payment): curl "https://johto-x402-api.johtodata.workers.dev/v1/sec-8k?sample=1"First paid call (answers 402 with the price and payment details): curl -i "https://johto-x402-api.johtodata.workers.dev/v1/sec-8k?ticker=AAPL&limit=10"Example response (sample, 1 row): {"accessionNumber":"0000320193-26-000018","cik":"0000320193","companyName":"Apple Inc.","ticker":"AAPL","formType":"8-K","isAmendment":false,"filedDate":"2026-07-30","filedAt":"2026-07-31T00:30:28.000Z","reportDate":"2026-07-30","items":["2.02","9.01"],"itemNames":["Results of Operations and Financial Condition","Financial Statements and Exhibits"],"fileNumber":"001-36743","documentUrl":"https://www.sec.gov/Archives/edgar/data/320193/000032019326000018/aapl-20260730.htm","filingIndexUrl":"https://www.sec.gov/Archives/edgar/data/320193/000032019326000018/0000320193-26-000018-index.htm"} |
| $0.025 per call | GET /v1/sanctions-screenSanctions screen Returns: Screen one person or entity name against the OFAC SDN list and the UK Sanctions List: verdict (MATCH, POSSIBLE_MATCH, CLEAR) and up to 20 matches with list, programs, score and match type. Fuzzy matching handles typos, word order and company suffixes. A screening aid, not legal advice. Use when: you want a quick screening signal for one name before a payment, deal or onboarding step. Don't use when: you need a legal determination, adverse media, or screening of wallet addresses (use /v1/wallet-risk). Sample (no payment): curl -s "https://johto-x402-api.johtodata.workers.dev/v1/sanctions-screen?sample=1" |
| $0.03 per call | GET /v1/uk-tendersUK tender notices Returns: Up to 25 newest UK tender notices from Find a Tender (feed=fts, default) or Contracts Finder (feed=cf), read live for each call: title, buyer organisation, published and deadline dates, value and currency when stated, CPV codes, procedure, notice URL and next_cursor. No charge when nothing matches. Use when: you need fresh UK tender notices to find bid opportunities or track buyers, with CPV codes and deadlines. Don't use when: you need contact people, award winners, full tender documents, or notices from outside the UK. Sample (no payment): curl -s "https://johto-x402-api.johtodata.workers.dev/v1/uk-tenders?sample=1" |
| $0.06 per call | GET /v1/fr-tendersFrench tender notices Returns: Up to 25 newest French tender notices from BOAMP, read live for each call, filterable by département and keyword: title, buyer organisation, published and deadline dates, descriptors, procedure, notice type and notice URL (value not included). No charge when nothing matches. Use when: you need fresh French tender notices (marchés publics) by département or keyword to find bid opportunities. Don't use when: you need contract values, contact people, award winners, full tender documents, or notices from outside France. Sample (no payment): curl -s "https://johto-x402-api.johtodata.workers.dev/v1/fr-tenders?sample=1" |
| $0.035 per call | GET /v1/au-contractsAustralian contract awards Returns: Up to 25 Australian federal contract notices (awarded contracts) from AusTender, read live for each call, by publish date range: title, buying agency, published date, contract value in AUD, UNSPSC code, procurement method, notice URL and next_cursor. Supplier names not included. No charge when nothing matches. Use when: you need recent Australian federal contract awards by agency, value and UNSPSC category for market sizing or account research. Don't use when: you need open tenders you can still bid on, supplier names, contact people, or state and local government contracts. Sample (no payment): curl -s "https://johto-x402-api.johtodata.workers.dev/v1/au-contracts?sample=1" |
| $0.11 per call | GET /v1/tendersTender bundle: EU, UK, France and Australia Returns: One fixed bundle of the newest notices from 4 markets, 10 rows each, read live for each call: EU (TED), UK (Find a Tender), France (BOAMP) and Australia (AusTender contract notices, awarded contracts). Every row carries market, source and licence: notice ID, title, buyer, published and deadline dates, value and currency when stated, categories, procedure and notice URL. A market whose feed fails is marked unavailable; you are charged only when at least one market returns rows. No parameters. Use when: you want one call that returns fresh tender and contract notices across the EU, UK, France and Australia. Don't use when: you need filters, more than 10 rows per market, contact people or full tender documents (use the single-market routes above). Licences: TED notices under the EU reuse notice (Commission Decision 2011/833/EU); UK under the Open Government Licence v3.0; France under the Licence Ouverte / Open Licence (DILA, BOAMP); Australia under CC BY 3.0 AU (Department of Finance, AusTender). Sample (no payment): curl -s "https://johto-x402-api.johtodata.workers.dev/v1/tenders?sample=1"First paid call (answers 402 with the price and payment details): curl -i "https://johto-x402-api.johtodata.workers.dev/v1/tenders" |
| $0.03 per call | GET /v1/kybCompany verification (KYB) Returns: Company verification from GLEIF LEI and SEC EDGAR: LEI status, registration number, jurisdiction, direct and ultimate parent, CIK, ticker, EIN, SIC and last filing. Up to 10 rows. Use when: you need to confirm a company's legal identity (LEI, registration number, jurisdiction, parents, SEC CIK and ticker) before onboarding or a deal. Don't use when: you need data on people, credit scores, financial statements or sanctions screening. First call (answers 402 with the price and payment details): curl -i "https://johto-x402-api.johtodata.workers.dev/v1/kyb?name=Tesla,%20Inc."Example request: /v1/kyb?name=Tesla,%20Inc.Example response (live, 1 row): {"data":[{"identifiers":{"bic":["TSLAUS66XXX"],"cik":null,"companyNumber":"0805587591","lei":"54930043XZGB27CTOV49","registrationAuthorityId":"RA000637","ticker":null},"incorporationDate":"2024-06-14","jurisdiction":"US-TX","lei":{"legalFormCode":"C5K7","parent":{"lei":null,"name":null,"reportingException":"NO_KNOWN_PERSON"},"registrationStatus":"ISSUED","ultimateParent":{"lei":null,"name":null,"reportingException":"NO_KNOWN_PERSON"}},"name":"TESLA, INC.","source":"gleif","sourceUrl":"https://search.gleif.org/#/record/54930043XZGB27CTOV49","status":"ACTIVE"}],"rows":1} |
| $0.025 per call | GET /v1/wallet-riskWallet risk screen Returns: Screen one EVM address against the OFAC SDN list and the ScamSniffer phishing address list. Returns verdict (BLOCK, REVIEW, CLEAR), riskScore, flags, ofacSanctioned, ofacMatches (OFAC id, currency, programs), scamSnifferListed and listsAsOf. Snapshots: OFAC SDN list 2026-10-21, ScamSniffer phishing address list 2026-10-22. A screening aid, not legal advice. Invalid input returns 400, not charged. Use when: you want a quick check of one EVM address against the OFAC SDN list and the ScamSniffer phishing address list before you send funds, accept a payment or onboard a wallet. Don't use when: you need Bitcoin, Tron or Solana addresses, name-based sanctions screening, transaction history, or a legal determination. Sample (no payment): curl "https://johto-x402-api.johtodata.workers.dev/v1/wallet-risk?sample=1"First paid call (answers 402 with the price and payment details): curl -i "https://johto-x402-api.johtodata.workers.dev/v1/wallet-risk?address=0x28c6c06298d514db089934071355e5743bf21d60"Example response (sample, 1 row): {"address":"0x28c6c06298d514db089934071355e5743bf21d60","addressType":"evm","verdict":"CLEAR","riskScore":0,"flags":[],"flagsText":"","summary":"CLEAR: 0x28c6c062\u2026 not on the OFAC SDN list, not on the ScamSniffer phishing address list (snapshots 2026-10-21 / 2026-10-22).","ofacSanctioned":false,"ofacMatches":[],"ofacListDate":"2026-10-21","ofacListMode":"snapshot","scamSnifferListed":false,"scamSnifferChecked":true,"listsAsOf":{"ofacSdn":{"name":"OFAC SDN list","asOf":"2026-10-21","fetchedAt":"2026-10-22T11:27:12Z","source":"https://www.treasury.gov/ofac/downloads/sdn.xml"},"scamSniffer":{"name":"ScamSniffer phishing address list","asOf":"2026-10-22","fetchedAt":"2026-10-22T11:27:23Z"," ... |
| $0.02 per call | GET /v1/readRead one page as Markdown Returns: Read one web page as Markdown: URL, HTTP status, title, Markdown, token estimate and content hash. One http(s) URL per call. robots.txt is respected; not charged if the page fails or robots.txt blocks it. Use when: you need one web page as clean Markdown for an LLM or RAG pipeline. Don't use when: you need many pages from one site (use /v1/crawl), or the page needs a login or sits behind a paywall. First call (answers 402 with the price and payment details): curl -i "https://johto-x402-api.johtodata.workers.dev/v1/read?url=https://docs.apify.com/platform/actors"Example request: /v1/read?url=https://docs.apify.com/platform/actorsExample response (live, 1 row): {"data":{"url":"https://docs.apify.com/platform/actors","title":"Actors","markdown":"# Actors ...","tokensEstimate":744,"contentHash":"15c0c036fb715d8f"},"rows":1} |
| $0.05 per call | GET /v1/crawlWeb crawl to Markdown Returns: Crawl up to 20 pages under a start URL into Markdown: URL, title, Markdown, token estimate and content hash per page. Use when: you need a docs site or one section of a site (up to 20 pages under a start URL) as Markdown. Don't use when: you need a single page (use /v1/read), more than 20 pages, pages outside the start URL path, or content behind a login or paywall. First call (answers 402 with the price and payment details): curl -i "https://johto-x402-api.johtodata.workers.dev/v1/crawl?pages=10&url=https://crawlee.dev/python/docs"Example request: /v1/crawl?pages=10&url=https://crawlee.dev/python/docsExample response (live, 1 row): {"data":[{"contentHash":"fc2f086388e350bc","markdown":"* [](https://crawlee.dev/python/python)\n* [Examples](https://crawlee.dev/python/ ...","title":"BeautifulSoup crawler","tokensEstimate":1504,"url":"https://crawlee.dev/python/docs/examples/beautifulsoup-crawler.md"}],"rows":1} |
| $0.10 per call | GET /v1/jobsLever jobs Returns: Open jobs from named Lever boards, up to 25 per call: title, location, remote flag, published salary range, employment type, posted date and apply URL. Use when: you need current open roles at named companies that hire through Lever, with salary ranges where the employer publishes them. Don't use when: you need a keyword search across all employers, boards on other hiring systems, or candidate profiles. First call (answers 402 with the price and payment details): curl -i "https://johto-x402-api.johtodata.workers.dev/v1/jobs?companies=lever:zoox&days=7&limit=10&title=engineer"Example request: /v1/jobs?companies=lever:zoox&days=7&limit=10&title=engineerExample response (live, 1 row): {"data":[{"ats":"lever","company":"zoox","employmentType":"Full-time","id":"lever:8befaec7-bb9f-4cf3-a48c-46b5e3886bf3","isRemote":false,"jobUrl":"https://jobs.lever.co/zoox/8befaec7-bb9f-4cf3-a48c-46b5e3886bf3","location":"Foster City, CA","postedAt":"2026-10-21T17:34:11.949Z","salaryCurrency":"USD","salaryMax":168000,"salaryMin":123000,"title":"Administrative Business Partner, Product"}],"rows":1} |
| $0.03 per call | GET /v1/domain-profileDomain profile Returns: Profile of one domain in one call: A, AAAA, MX, NS and CAA records, parsed SPF and DMARC, DKIM selector hints, mail, DNS and hosting providers, tech stack from homepage headers and HTML, TLS certificate issuer and expiry, and posture flags. Nonexistent domains and DNS failures are not charged; invalid, IP or private names return 400, not charged. Use when: you want one call that profiles a company or vendor domain (mail provider, SPF/DMARC posture, DNS and hosting providers, tech stack, TLS expiry) for lead enrichment, vendor checks or deliverability triage. Don't use when: you need raw DNS records of any type, WHOIS or registrar data, subdomain enumeration, full certificate chains, many pages of a site, or a security audit. First call (answers 402 with the price and payment details): curl -i "https://johto-x402-api.johtodata.workers.dev/v1/domain-profile?domain=github.com"Sample (no payment): curl -s "https://johto-x402-api.johtodata.workers.dev/v1/domain-profile?sample=1" |
Prices are per call in USDC on Base. The 402 payment response from each route is authoritative.
Buy in one call
- Try a sample: add
?sample=1to any route for one real stored record. No payment, no key. - Call the route with your query parameters. It answers
402 Payment Requiredwith the price, the USDC amount on Base and the pay-to address, in thePAYMENT-REQUIREDheader and the JSON body. - Your x402 client signs the USDC payment and retries the same request with the payment header. You get JSON back:
{ data, rows }. - Not charged if nothing matches, the source is down or the input is invalid (400).
Any x402 client works, for example x402-fetch (wrapFetchWithPayment) or x402-axios with a Base wallet holding USDC. Full schema: openapi.json.
Direct orders
Data packs and feeds: order on /order/ and pay in USDC on Base, the same as the API routes above.
Machine-readable list: /.well-known/x402. Prefer Apify? See the Actor docs. Questions: sales@johtodata.com.