Skip to content

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:

201 Created
{
  "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).

get.sh
curl https://api.prson.net/v1/verifications/8d2f0c4e-5b1a-4c3e-9f7d-2a6b1c0e9d41 \
  -H "Authorization: Bearer $PRSON_API_KEY"
200 OK
{
  "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 withEnvironmentCost
prs_sandbox_Sandbox app: real people, real app, answers marked test: trueFree
prs_live_Production appFrom 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