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

PriceRoute, fields and example
$0.0475 per callGET /v1/new-trucking-companies
New trucking companies
Returns: New US motor carriers from FMCSA records, company-level, up to 25 per call: USDOT number, legal name, add date, city and state, fleet size, operation type, authority and insurance status, SAFER link.
Use when: you need newly registered US motor carriers as sales leads, for example for insurance, factoring or fleet services.
Don't use when: you need personal contact details (none are returned), long-established carriers, or fleets outside the US.
First call (answers 402 with the price and payment details):
curl -i "https://johto-x402-api.johtodata.workers.dev/v1/new-trucking-companies?days=7&no_insurance=1&state=AZ"
Example request: /v1/new-trucking-companies?days=7&no_insurance=1&state=AZ
Example response (live, 1 row):
{"data":[{"addDate":"2026-10-20","authorityStatus":"Pending","bipdRequiredUsd":750000,"cargoTypes":["genfreight","household"],"city":"TEMPE","classification":"AUTHORIZED FOR HIRE","country":"US","dotNumber":"6035255","hasActiveInsurance":false,"insuranceCheckedAt":"2026-10-22T09:49:37.619Z","insuranceLead":true,"insuranceStatus":"None yet (BI&PD required)","legalName":"SKY LOGISTIC LLC","operationType":"Interstate","powerUnits":1,"snapshotUrl":"https://safer.fmcsa.dot.gov/query.asp?searchtype=ANY&query_type=queryCarrierSnapshot&query_param=USDOT&query_string=6035255","state":"AZ","totalDrivers":4,"trucks":1}],"rows":1}
$0.01 per callGET /v1/jobs
Lever 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=engineer
Example 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.0029 per callGET /v1/kyb
Company 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.0045 per callGET /v1/crawl
Web 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/docs
Example 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.0019 per callGET /v1/read
Read one page as Markdown
Returns: Read one public 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/actors
Example response (live, 1 row):
{"data":{"url":"https://docs.apify.com/platform/actors","title":"Actors","markdown":"# Actors ...","tokensEstimate":744,"contentHash":"15c0c036fb715d8f"},"rows":1}

Prices are per call in USDC on Base. The 402 payment response from each route is authoritative.

How a call works

  1. Call the route with your query parameters.
  2. The route answers 402 Payment Required with the price and payment details.
  3. Your x402 client pays in USDC on Base and retries the request. The response is JSON: { data, rows }.

Direct orders

Data packs and feeds: order on /order/ and pay by card invoice or in crypto, all to one address: USDC on Ethereum, Base, Arbitrum, Optimism or Polygon; USDT on Ethereum; ETH on Ethereum, Base, Arbitrum or Optimism; POL on Polygon. Send only on the networks listed. Same address on all listed networks. The API routes above take USDC on Base only.

Machine-readable list: /.well-known/x402. Prefer Apify? See the Actor docs. Questions: [email protected].