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.
Sets up the AgentCash wallet and routes you through starter credits if needed.
$ npx agentcash onboardDiscovers the origin and walks the first live call path.
$ npx agentcash try https://hirescrape.comKeeps hirescrape available in your agent's persistent context across sessions.
$ npx agentcash add https://hirescrape.comPayment
Two protocols, one 402
Every 402 advertises both. Your agent picks whichever its wallet supports.
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
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.
Scrape jobs from LinkedIn, Indeed, Glassdoor, Google Jobs, ZipRecruiter, Bayt, BDJobs, and Naukri in one call.
/api/tools/jobs$0.05–$1.65Instagram profiles, posts, reels, comments — 8 modes.
/api/tools/instagram$0.00225–$11.25LinkedIn people, companies, posts, job listings, people search.
/api/tools/linkedin$0.00225–$11.25TikTok profiles, posts, comments, fast-API feeds, search discovery.
/api/tools/tiktok$0.00225–$11.25TikTok Shop products + discovery by keyword/category/shop.
/api/tools/tiktok-shop$0.00225–$11.25YouTube videos, channels, and comments — 10 modes.
/api/tools/youtube$0.00225–$11.25Skills 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.
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
- 1Sign up for 29 APIs — separate accounts, dashboards, billing
- 2Buy credits upfront — minimums, unused credits expire
- 3Rotate API keys — security overhead, credential sprawl
- 4Monitor 29 bills — reconcile usage across providers monthly
- 5Agent asks permission — "which tool should I use for this?"
Autonomous execution
- 1One endpoint — all 29 tools, one interface
- 2Pay per request — pennies when used, $0 when idle
- 3No credentials — payment is authentication
- 4One ledger — every tx on-chain, real-time
- 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
payment_required
No payment header present. Sign the challenge and retry.
payment_verification_failed
Signature was present but invalid, expired, or underpriced. Check the facilitator response in the body.
unknown_tool
The tool ID in the path isn't in our registry. Check /openapi.json.
rate_limited
Per-visitor rate limits hit. Body includes retryAfterMs. Back off and retry.
run_failed
Upstream scraper failed AFTER payment settled. Contact support with the runId for a manual refund.
upstream_error
Backend provider returned an error. Payment was NOT settled. Retry with different parameters.
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.