Developer docs
Verify real people in one API call
Ask a person to prove something: that they are over 18, their verified name, a live selfie, a photo taken on the spot, or their signature on a PDF. They answer in the Prson app and choose what to share. You get an answer signed by Prson.
What you can build
Hiring people for tasks in the physical world is a separate product, documented at agents.prson.net.
Quickstart
1. Get a sandbox key
Sign in to the developer console with the Prson app and create an app. A sandbox app is free: its verifications are marked test and cost nothing. Copy the key (it starts with prs_sandbox_) and keep it on your server.
2. Ask for something
Create a verification with what the person must prove. Here, one fact: that they are at least 18. The full list of 27 facts, details and captures is in What you can ask for.
curl -X POST https://api.prson.net/v1/verifications \
-H "Authorization: Bearer $PRSON_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: order-1042" \
-d '{
"title": "Confirm you are over 18 to rent a scooter",
"requirements": [{ "type": "fact", "fact": "age_gte_18" }],
"expires_in_hours": 24,
"external_ref": "order-1042"
}'The answer comes back at once:
{
"verification": {
"id": "8d2f0c4e-5b1a-4c3e-9f7d-2a6b1c0e9d41",
"status": "open",
"title": "Confirm you are over 18 to rent a scooter",
"requirements": [{ "slot_id": "s_1a2b3c4d", "type": "fact", "fact": "age_gte_18", … }],
"expires_at": 1767312000000,
"charge": { "currency": "EUR", "reserved_cents": 100, "spent_cents": 0 },
"test": true
},
"share_url": "https://app.prson.net/challenge/…"
}3. Send the link
Send share_url to the person yourself, by email, chat or on your site. Prson doesn't contact them for you. They open it with the Prson app, see who is asking and why (your title), and decide whether to answer.
4. Read the answer
Poll the verification, or add a webhook and get verification.completed the moment they answer (webhooks).
curl https://api.prson.net/v1/verifications/8d2f0c4e-5b1a-4c3e-9f7d-2a6b1c0e9d41 \
-H "Authorization: Bearer $PRSON_API_KEY"{
"verification": {
"id": "8d2f0c4e-5b1a-4c3e-9f7d-2a6b1c0e9d41",
"status": "fulfilled",
"responses": [{
"respondent_id": "rsp_4f0c…",
"type": "fact",
"status": "verified",
"fact": { "id": "age_gte_18", "value": true, "description": "Person is at least 18 years old" },
"verdict_signature": { "envelope": { … }, "signature": "…", "kid": "…" }
}]
}
} Each answer carries Prson's signature (verdict_signature), so you can prove later, offline, what Prson vouched for. See checking a verdict.
Keys and environments
| Key starts with | Environment | Cost |
|---|---|---|
prs_sandbox_ | Sandbox app: real people, real app, answers marked test: true | Free |
prs_live_ | Production app | From 0.50 per verification, from your prepaid balance (prices) |
Every request goes to https://api.prson.net with Authorization: Bearer <key>. Amounts are in cents. The OpenAPI 3.1 file is at api.prson.net/v1/openapi.json.
Next steps
- Everything a verification can ask for, with an example for each.
- Add Sign in with Prson to your site: free, no passwords.
- Connect an AI agent over MCP.