Three on-ramps. Same dossier.
Whichever surface you use — authenticated REST, native MCP tools, or x402 pay-per-call — the response shape is identical. Pick the on-ramp that matches who's calling.
Submit a job over HTTPS.
Use a session cookie (after sign-in) or an API key (Growth+).
/api/jobsCreate a judgment job
Returns a job_id immediately. The actual run completes async (≤2 min); poll /api/jobs/{id} or wait on the webhook.
{
"name": "Q2 board prep",
"kind": "triage",
"judgments": ["triage", "flight-risk", "warm-intro"],
"profile_urls": [
"https://linkedin.com/in/maya-rao",
"https://linkedin.com/in/jordan-kim"
],
"webhook_url": "https://hooks.acme.dev/people-intel"
}{
"ok": true,
"job_id": "8a3f...",
"profile_count": 2,
"credits_reserved": 3.0,
"atomic_reserved": 3000,
"status": "running"
}/api/jobs/[id]Status + signed dossier URL
When succeeded, includes a 10-minute signed S3 URL pointing at the dossier JSON.
{
"ok": true,
"job": {
"id": "8a3f...",
"name": "Q2 board prep",
"status": "succeeded",
"profile_count": 2,
"results_count": 2,
"credits_spent": "3000"
},
"preview_url": "https://s3.../dossier.json?X-Amz-..."
}/api/jobsList recent jobs
50 most recent jobs for the authenticated household.
Native tools for AI assistants.
Connect Claude, ChatGPT, or any MCP-compatible client to https://people-intel.0p.studio/api/mcp. Auth with Authorization: Bearer pik_live_….
submit_judgmentStart a judgment job
get_job_statusPoll status, get signed URL
list_jobsRecent jobs for the household
export_csvSigned CSV download
get_credit_balanceCurrent credit balance
list_plansPublic: tiers, packs, judgments
whoamiAPI-key metadata
# Claude / claude-code MCP config
{
"mcpServers": {
"people-intel": {
"url": "https://people-intel.0p.studio/api/mcp",
"headers": { "Authorization": "Bearer pik_live_..." }
}
}
}Pay per read. No account.
Settle in USDC on Base. First call returns HTTP 402 + the payment requirements; second call (with the settled X-Payment header) returns the dossier.
/api/x402/readSingle profile read
$0.25 for one judgment, $0.40 for all five.
{
"profile_url": "https://linkedin.com/in/maya-rao",
"judgments": ["triage", "flight-risk"]
}{
"ok": true,
"payment": { "tx_hash": "0x..", "paid_atomic_usdc": "400000" },
"dossier": {
"profile": { /* 22+ fields */ },
"judgments": [ { "kind": "triage", "score": 91, ... }, ... ]
}
}Push instead of poll.
Pass webhook_url on job creation. We POST a single notification on completion.
POST https://your-app.com/people-intel-webhook
{ "job_id": "8a3f...", "status": "succeeded", "results_count": 248 }