Docs

One URL. Hundreds of APIs. Per-call USDC.

Two product surfaces behind the same x402 + MPP payment gate. POST /api/tools/{tool}for first-party scrapers (Instagram, LinkedIn, TikTok, YouTube, Jobs across 8 boards). POST /api/skills/{slug}/runfor a marketplace of 573 vendor APIs (email finders, people search, maps, web search, weather, LLMs, and more). No keys, no SDKs, no accounts. Pay only for 2xx responses.

Quickstart

Three commands to start buying

Any agent with AgentCash installed can discover, try, and persist hirescrape in one session. Copy-paste these into your terminal.

01Onboard AgentCash

Sets up the AgentCash wallet and routes you through starter credits if needed.

$ npx agentcash onboard
02Try the API

Discovers the origin and walks the first live call path.

$ npx agentcash try https://hirescrape.com
03Add for reuse

Keeps hirescrape available in your agent's persistent context across sessions.

$ npx agentcash add https://hirescrape.com

Payment

Two protocols, one 402

Every 402 advertises both. Your agent picks whichever its wallet supports.

x402x402Coinbase

On-chain USDC settlement per call. EIP-3009 transferWithAuthorization signature routed through the CDP facilitator. Supports Base mainnet and Solana mainnet on this site.

Header
WWW-Authenticate / X-PAYMENT
Networks
Base, Solana
Settles
on-chain
MPPMPPStripe + Tempo

Off-chain signed credentials with Tempo L1 settlement. Sub-second confirmations, stablecoin-native gas. Ideal for high-frequency calls.

Header
WWW-Authenticate: Payment
Networks
Tempo
Settles
off-chain → Tempo

6 endpoints

Every platform, one catalog

Full input/output schemas at /openapi.json. Agent-ready context at /llms.txt.

Jobs
Multi Job Board Scraper

Scrape jobs from LinkedIn, Indeed, Glassdoor, Google Jobs, ZipRecruiter, Bayt, BDJobs, and Naukri in one call.

/api/tools/jobs$0.05–$1.65
instagram
Instagram Scraper

Instagram profiles, posts, reels, comments — 8 modes.

/api/tools/instagram$0.00225–$11.25
linkedin
LinkedIn Scraper

LinkedIn people, companies, posts, job listings, people search.

/api/tools/linkedin$0.00225–$11.25
tiktok
TikTok Scraper

TikTok profiles, posts, comments, fast-API feeds, search discovery.

/api/tools/tiktok$0.00225–$11.25
tiktok
TikTok Shop Scraper

TikTok Shop products + discovery by keyword/category/shop.

/api/tools/tiktok-shop$0.00225–$11.25
youtube
YouTube Scraper

YouTube videos, channels, and comments — 10 modes.

/api/tools/youtube$0.00225–$11.25

Skills marketplace

573 vendor APIs at one flat price floor

Beyond the first-party scrapers, every endpoint at POST /api/skills/{slug}/run proxies a third-party vendor API (Hunter, Tomba, Serper Google search, Apollo, Olostep, Z.ai, Exa, and more). Same x402 + MPP gate. Sync only — call returns data in-band. Per-skill pricing from $0.03.

APIs in catalog
573
Vendors
53
Floor price
$0.03

Discovery

  • Browse the marketplace UI — search, filter by vendor or category
  • GET /api/skills?q=email&limit=50 — JSON listing for agents
  • GET /api/skills/{slug}/page.md — agent-readable markdown spec per skill
  • GET /api/skills/search?q=... — natural-language search (SIWX-gated, free)
  • /vendors — directory of every vendor we proxy
  • /skills.md — full catalog as one markdown file (best for agent ingestion)

One full call

# 1. Probe — returns 402 with x402 + MPP challenges
curl -X POST https://hirescrape.com/api/skills/hunter-v2-people-find/run \
  -H "Content-Type: application/json" \
  -d '{"email":"patrick@stripe.com"}'

# 2. Pay (any agent with AgentCash):
mcp__agentcash__fetch \
  url=https://hirescrape.com/api/skills/hunter-v2-people-find/run \
  method=POST body='{"email":"patrick@stripe.com"}'

# 3. Response (after AgentCash signs USDC payment):
{
  "requestId": "sk_lr1n4z8a3kx9pq",
  "vendor": "Hunter",
  "data": { "name": {...}, "employment": {...}, "linkedin": {...} },
  "payment": { "protocol": "x402", "amount": "0.030000", "currency": "USD" }
}

Pricing

Each skill is priced individually based on its real wholesale cost — most calls are $0.03, a small tail goes up to $3.44 for deep-data endpoints (LinkedIn enrichment, investor search). The exact quote is in the 402 bodyamount field. Failed calls don't settle. SIWX-gated wallet history at GET /api/skills/runs.

Why pay-per-call

Subscriptions were built for humans

Human-managed

  1. 1Sign up for 29 APIs — separate accounts, dashboards, billing
  2. 2Buy credits upfront — minimums, unused credits expire
  3. 3Rotate API keys — security overhead, credential sprawl
  4. 4Monitor 29 bills — reconcile usage across providers monthly
  5. 5Agent asks permission — "which tool should I use for this?"

Autonomous execution

  1. 1One endpoint — all 29 tools, one interface
  2. 2Pay per request — pennies when used, $0 when idle
  3. 3No credentials — payment is authentication
  4. 4One ledger — every tx on-chain, real-time
  5. 5Agent decides — within budget, autonomous

Examples

Copy-paste integrations

AgentCash MCP — recommended

// In Claude Code / Cursor / Codex / Windsurf:
await mcp__agentcash__fetch({
  url: "https://hirescrape.com/api/tools/instagram",
  method: "POST",
  body: { mode: "user_posts", url: "https://www.instagram.com/mrbeast", num_of_posts: 20, post_type: "Post" }
});
// → data + { protocol: "mpp" | "x402", amount, currency }

curl (raw x402 flow)

# 1. First call → 402 with payment challenge
curl -i -X POST https://hirescrape.com/api/tools/instagram \
  -H "Content-Type: application/json" \
  -d '{"mode":"user_posts","url":"https://www.instagram.com/mrbeast","num_of_posts":20,"post_type":"Post"}'

# 2. Sign the challenge with your wallet, retry with X-PAYMENT:
curl -X POST https://hirescrape.com/api/tools/instagram \
  -H "Content-Type: application/json" \
  -H "X-PAYMENT: ${SIGNED_BASE64}" \
  -d '{"mode":"user_posts","url":"https://www.instagram.com/mrbeast","num_of_posts":20,"post_type":"Post"}'

TypeScript (viem + x402-fetch)

import { x402Fetch } from "x402-fetch";
import { privateKeyToAccount } from "viem/accounts";

const account = privateKeyToAccount(process.env.PRIVATE_KEY!);
const fetch402 = x402Fetch({ account, chain: "base" });

const res = await fetch402("https://hirescrape.com/api/tools/linkedin", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({ mode: "jobs_by_keyword", keyword: "engineer", location: "remote", num_of_posts: 20 })
});
const { items } = await res.json();

Python (x402-py)

from x402 import Client
from eth_account import Account

client = Client(account=Account.from_key(PRIVATE_KEY), chain="base")

r = client.post(
  "https://hirescrape.com/api/tools/tiktok",
  json={"mode": "posts_by_keyword", "search_keyword": "ai agents", "num_of_posts": 50},
)
print(len(r.json()["items"]))

Errors

What to expect when things fail

402

payment_required

No payment header present. Sign the challenge and retry.

402

payment_verification_failed

Signature was present but invalid, expired, or underpriced. Check the facilitator response in the body.

404

unknown_tool

The tool ID in the path isn't in our registry. Check /openapi.json.

429

rate_limited

Per-visitor rate limits hit. Body includes retryAfterMs. Back off and retry.

500

run_failed

Upstream scraper failed AFTER payment settled. Contact support with the runId for a manual refund.

502

upstream_error

Backend provider returned an error. Payment was NOT settled. Retry with different parameters.

504

timeout

Scrape exceeded 5 minutes. Payment was already settled. Retry the same input.

Discovery

Where agents find us

Agents using AgentCash-funded wallets (Claude Code, Cursor, Codex, Windsurf) auto-discover hirescrape through the shared OpenAPI manifest. No API key exchange required.