One-off packs, $29 to $199
Ready-made data bundles.
CSV, JSON or Markdown packs built with the same tools we already run. Pay in USDC on Base, or run the matching Apify actor yourself.
Local Business Lead List
OpenStreetMapUsually 4 hours, at most 24 hours.
Usually 12 hours, at most 24 hours.
Usually 24 hours, at most 48 hours.
Includes name, category, OSM address, phone and website when tagged, optional website emails and socials, syntax+MX email status, and ODbL attribution on every row. No Google Maps, LinkedIn or Facebook. No SMTP mailbox probe. Sample: 12 bakeries in Bath, UK (CSV). Route: POST /api/order-local-leads-starter (or -standard, -plus). Actor: osm-business-leads, then email-list-validator. Not China-safe (business contacts).
Company Dossier Pack
Company facts onlyUsually 8 hours, at most 24 hours.
Usually 12 hours, at most 24 hours.
Usually 24 hours, at most 48 hours.
Homepage firmographics, Wikidata, DNS, on-page SEO, optional SEC filing metadata when you supply a US ticker. No personal contacts. Sample: python.org and johtodata.com. Route: POST /api/order-company-dossier-starter. Actor: company-dossier-bundle (pass a domains array).
Job Market Feed
Remote OK + JobicyUsually 4 hours, at most 24 hours.
Usually 8 hours, at most 24 hours.
Usually 12 hours, at most 24 hours.
Deduped remote jobs: title, company, location, salary when stated, tags, posted date, listing URL and source attribution. No LinkedIn or Indeed. No applicant data. Sample: python keyword snapshot (CSV). Route: POST /api/order-job-market-starter. Actor: remote-jobs-aggregator.
Website-to-RAG Knowledge Pack
Authorized sites onlyUsually 4 hours, at most 24 hours.
Usually 12 hours, at most 24 hours.
Usually 24 hours, at most 48 hours.
Clean Markdown per page plus heading-aware chunks with token estimates and hashes. You must have rights to the site. robots.txt is respected. Sample: 3 pages from docs.python.org (PSF License v2). Route: POST /api/order-website-rag-starter. Actors: url-to-markdown and html-to-rag.
How to pay
- x402 (preferred): POST the route for your product and tier with a JSON body. An unpaid call returns HTTP 402. Pay in USDC, retry with
PAYMENT-SIGNATURE. The 200 body is an order receipt with anorderId, not the pack itself. - Manual USDC: send the exact amount on Base to
0x133517264bAfFb57d496a1d7969e3b4830752dC3, then email hello@johtodata.com the transaction hash, product, tier and inputs. ERC-20 transfers have no memo field. The transaction hash is your receipt. - Apify: run the named actor with the pack input. You pay Apify list prices instead of the done-for-you fee. Input examples live next to each sample and in the catalog at /api/order.
Times are America/Los_Angeles. If we cannot deliver within the stated turnaround we refund the USDC or re-run the pack at no charge. Catalog: GET /api/order. Terms: /terms.
Example order
# returns 402 with the $49 USDC amount, then retry with PAYMENT-SIGNATURE $ curl -i https://johtodata.com/api/order-local-leads-starter \ -H 'content-type: application/json' \ -d '{"location":"Bath, United Kingdom","categories":["bakery"],"authorized":true,"contact":"you@company.com"}'