Every API here is available over the APIs.io API and to AI agents over MCP.
{
"openapi": "3.1.0",
"info": {
"title": "5arz Proof-of-Human API",
"version": "1.2.0",
"summary": "Prove a real, ID-verified, live human performed an action — and get a signed, independently verifiable credential.",
"description": "5arz is the proof-of-human layer for the internet. It issues **Proof-of-Human-Fulfillment (PoHF)** credentials: ES256-signed JWTs asserting that a real, ID-verified, live human — not a bot or AI agent — performed a specific action (work, a view, a presence event, or a personhood check). Anyone can verify a credential against the public JWKS at https://api.5arz.com/.well-known/jwks.json using any standard JWT library — no 5arz SDK and no trust in 5arz required. Use it for AI training data provenance, verified human traffic / ad-fraud defense, proof-of-personhood gating for DeFi/RWA (read `sybil_checked` before gating one-per-person actions), KYC-style human checks in your product, and the fulfillment half of agentic commerce (proving a human did the work an AI agent paid for). Human verification is free at any volume, permanently — a human never pays to prove they are a human. Businesses subscribe to a monthly plan (Free / Starter $99 / Growth $499 / Scale $2,499): seals are given away generously and vendor document checks are metered. Free `arz_test_` keys verify unlimited for integration. Compatible with Verifiable Intent and the Visa Trusted Agent Protocol; settles over Agent Pay, Stripe, or USDC.\n\n**Standards (since 27 Sep 2026).** Every live personhood and fulfillment credential is also returned as `sd_jwt_vc`: an IETF SD-JWT VC (`typ: dc+sd-jwt`, draft-ietf-oauth-sd-jwt-vc) that standard verifier libraries read without any 5arz code. Issuer metadata: https://5arz.com/.well-known/jwt-vc-issuer. Revocation: each credential carries `status.status_list` pointing at an IETF Token Status List served at `GET /statuslists/{listId}` (`application/statuslist+jwt`). Pass an optional `holderJwk` (public EC P-256 key) to bind the credential to the holder, so a copied credential cannot be presented by anyone else. Legacy `pohf_jwt` fields are unchanged. Try it without an account: `GET /api/credentials/sample`.",
"termsOfService": "https://5arz.com/terms",
"contact": {
"name": "5arz",
"email": "info@5arz.com",
"url": "https://5arz.com/docs"
},
"license": {
"name": "Proprietary — Patents pending US 63/979,052 + US 63/979,474"
}
},
"servers": [
{
"url": "https://api.5arz.com",
"description": "Production"
}
],
"externalDocs": {
"description": "Developer docs & SDK",
"url": "https://5arz.com/docs"
},
"security": [
{
"bearerAuth": []
}
],
"tags": [
{
"name": "Billing & plans",
"description": "The published plan model: read the price list, subscribe, and check your monthly allowance."
},
{
"name": "Auth & credits",
"description": "Register an agent and manage its API key."
},
{
"name": "Verification",
"description": "Mint signed Proof-of-Human credentials for a session, a person, or physical presence."
},
{
"name": "Attestation",
"description": "Prove a genuine device (not an emulator) and strengthen a credential."
},
{
"name": "Tracking & metrics",
"description": "Attach proof to on-site actions and conversions; read verified-attention analytics."
},
{
"name": "Tasks",
"description": "Fetch and complete embeddable micro-tasks that mint credentials."
},
{
"name": "Partner",
"description": "Convert reward points to Stars, read balances, request payouts."
},
{
"name": "Work marketplace",
"description": "Post work and pay a verified human to do it — at a computer, or at a real place. Register, add a job budget, post. Escrow is taken when you post, so a job that cannot be paid for never reaches a worker."
},
{
"name": "Keys",
"description": "Public keys for verifying 5arz credentials anywhere."
},
{
"name": "Agentic commerce",
"description": "Commission verified human work and bind a verified human to a payment on any rail (OUSD, Mastercard Agent Pay, Stripe, USDC). MCP: https://api.5arz.com/mcp"
},
{
"name": "Index",
"description": "VHH — Verified Human Hour reference rates. Free composite; licensed categories/history. https://5arz.com/vhh-index"
},
{
"name": "Forwards",
"description": "Prepaid verified-human-hours capacity at VHH-referenced prices."
},
{
"name": "Interoperability",
"description": "Standard credential formats, issuer metadata and revocation lists — readable with off-the-shelf libraries."
}
],
"paths": {
"/api/agent/tasks": {
"get": {
"operationId": "listVerifiedHumanTasks",
"summary": "List buyable verified human work",
"description": "Currently-buyable verified human work tasks. Each task carries its USD price, the same price in atomic USDC units, remaining slots, supported settlement chains, and the kind of Proof-of-Human-Fulfillment receipt issued on completion. No API key. Also served at /.well-known/agent-tasks.json. Wrapped by the MCP tool list_verified_human_tasks on https://mcp.5arz.com.",
"tags": [
"Verified human work"
],
"security": [],
"responses": {
"200": {
"description": "Task list",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"count": {
"type": "integer"
},
"demo_mode": {
"type": "boolean",
"description": "true when settlement runs against the Base Sepolia demo facilitator instead of real USDC."
},
"provenance_tag": {
"type": "string"
},
"verify_attestation": {
"type": "string",
"description": "URL template for fetching a receipt."
},
"tasks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "wf_support_reply_001"
},
"title": {
"type": "string"
},
"description": {
"type": "string"
},
"est_minutes": {
"type": "integer"
},
"slots_remaining": {
"type": "integer"
},
"price_usd": {
"type": "number",
"example": 10
},
"price_usdc_atomic": {
"type": "string",
"example": "10000000"
},
"settlement": {
"type": "object",
"properties": {
"currency": {
"type": "string",
"example": "USDC"
},
"chains": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"base"
]
}
}
},
"paywall_url": {
"type": "string"
},
"attestation_on_fulfillment": {
"type": "object",
"description": "Receipt kind, patent refs, provenance tag, and the receipt URL template."
}
}
}
}
}
}
}
}
}
}
}
},
"/api/agent/tasks/{task_id}/buy": {
"get": {
"operationId": "purchaseVerifiedHumanTask",
"summary": "Buy one slot of verified human work (x402)",
"description": "Buy one slot. Called with no X-PAYMENT header this returns HTTP 402 with an x402 challenge: an accepts[] array (scheme, network, maxAmountRequired, payTo, asset, resource) and a purchase_id. Settle the USDC to a listed payTo on an offered chain, then call again with X-PAYMENT and X-Purchase-Id. On success the response carries attestation_id (also in the X-Attestation-Id header) once an approved session is linked; otherwise status is settled_awaiting_fulfillment and a receipt is linked as soon as a member completes the task. No API key at any step - the payment is the authentication. Wrapped by the MCP tool purchase_verified_human_task on https://mcp.5arz.com.",
"tags": [
"Verified human work"
],
"security": [],
"parameters": [
{
"name": "task_id",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"example": "wf_support_reply_001",
"description": "Task id from GET /api/agent/tasks."
},
{
"name": "X-PAYMENT",
"in": "header",
"required": false,
"schema": {
"type": "string"
},
"description": "x402 settlement proof. Omit to receive the 402 challenge."
},
{
"name": "X-Purchase-Id",
"in": "header",
"required": false,
"schema": {
"type": "string"
},
"description": "purchase_id from the previous 402. Required when presenting an X-PAYMENT."
},
{
"name": "X-Agent-Key-Thumbprint",
"in": "header",
"required": false,
"schema": {
"type": "string"
},
"description": "Optional RFC 7638 JWK thumbprint of the buying agent key; embedded in the receipt cnf.jkt claim."
}
],
"responses": {
"200": {
"description": "Settled. Returns purchase_id, settlement {chain, tx_hash, facilitator, demo}, attestation_id (may be null), attestation_url, and status.",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
},
"402": {
"description": "x402 payment required - the expected first response. This is the protocol working, not an error.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"x402Version": {
"type": "integer",
"example": 1
},
"purchase_id": {
"type": "string",
"example": "agpur_ffad746653ff1f3d"
},
"error": {
"type": "string",
"example": "Payment Required"
},
"accepts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"scheme": {
"type": "string",
"example": "exact"
},
"network": {
"type": "string",
"example": "base"
},
"maxAmountRequired": {
"type": "string",
"example": "10000000"
},
"resource": {
"type": "string"
},
"payTo": {
"type": "string",
"description": "Treasury address to settle USDC to."
},
"asset": {
"type": "string",
"description": "USDC contract address on the named network."
},
"maxTimeoutSeconds": {
"type": "integer",
"example": 60
},
"extra": {
"type": "object",
"description": "receipt_kind, the attestation_after URL template, and patent refs."
}
}
}
}
}
}
}
}
},
"404": {
"description": "Unknown task id."
}
}
}
},
"/api/attestations/{attestation_id}": {
"get": {
"operationId": "getAttestationReceipt",
"summary": "Fetch a Proof-of-Human-Fulfillment receipt",
"description": "Public verifier-side receipt lookup. Returns the signed packet plus verifier identity, JWKS URL, receipt shape, short SHA-256 fingerprints of the message and signature, and a how_to_verify hint. ES256 receipts expose pohf_jwt and pohf_claims; legacy HMAC v0 receipts expose eip712_packet instead. No API key. Wrapped by the MCP tool get_attestation_receipt on https://mcp.5arz.com.",
"tags": [
"Verified human work"
],
"security": [],
"parameters": [
{
"name": "attestation_id",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Returned at fulfillment, or in the X-Attestation-Id header on the buy response."
}
],
"responses": {
"200": {
"description": "Receipt",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"attestation_id": {
"type": "string"
},
"issued_at_iso": {
"type": "string",
"format": "date-time"
},
"algorithm": {
"type": "string",
"example": "ES256"
},
"signer_key_id": {
"type": "string"
},
"verifier": {
"type": "string"
},
"jwks_url": {
"type": "string",
"example": "https://api.5arz.com/.well-known/jwks.json"
},
"receipt_shape": {
"type": "string",
"enum": [
"es256_jwt",
"eip712_like_hmac_v0"
]
},
"pohf_jwt": {
"type": "string",
"description": "Compact ES256 JWS. Present when receipt_shape is es256_jwt."
},
"pohf_claims": {
"type": "object"
},
"eip712_packet": {
"type": "object",
"description": "Legacy HMAC v0 receipts only."
},
"fingerprints": {
"type": "object"
},
"patent_refs": {
"type": "array",
"items": {
"type": "string"
}
},
"provenance_tag": {
"type": "string"
},
"how_to_verify": {
"type": "string"
}
}
}
}
}
},
"404": {
"description": "attestation_not_found - returns ok:false, the id, and a hint.",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
}
}
}
},
"/api/agents/register": {
"post": {
"tags": [
"Auth & credits"
],
"operationId": "register",
"summary": "Create an API key",
"description": "Self-serve registration. Returns an API key shown once. Pass `mode:\"test\"` for a free `arz_test_` sandbox key that verifies unlimited and mints credentials marked `test:true` (never treat test credentials as production proof).",
"security": [],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"name",
"contactEmail"
],
"properties": {
"name": {
"type": "string",
"example": "Your Company"
},
"contactEmail": {
"type": "string",
"format": "email",
"example": "you@company.com"
},
"mode": {
"type": "string",
"enum": [
"live",
"test"
],
"default": "live"
}
}
}
}
}
},
"responses": {
"200": {
"description": "Key created (shown once).",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"apiKey": {
"type": "string",
"example": "arz_live_…"
},
"agentId": {
"type": "string",
"example": "agt_…"
},
"mode": {
"type": "string",
"enum": [
"live",
"test"
]
}
}
}
}
}
}
}
}
},
"/api/billing/plans": {
"get": {
"tags": [
"Billing & plans"
],
"operationId": "billingPlans",
"summary": "The published price list (machine-readable, no auth)",
"description": "Every plan, rate and allowance as JSON, so an agent can read the price list, decide and buy without a human opening a browser. Human verification is free at any volume, permanently. Plans: Free $0 (1,000 seals/mo + 10 document checks), Starter $99/mo, Growth $499/mo, Scale $2,499/mo. Mirrors https://5arz.com/pricing exactly.",
"security": [],
"responses": {
"200": {
"description": "Plan catalogue.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"currency": {
"type": "string"
},
"human_verification": {
"type": "object",
"description": "Always price 0. A human never pays to prove they are a human."
},
"plans": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"label": {
"type": "string"
},
"price_monthly_usd": {
"type": [
"number",
"null"
]
},
"seals_per_month": {
"type": [
"integer",
"null"
],
"description": "null = unlimited"
},
"document_checks_included": {
"type": "integer"
},
"document_check_usd": {
"type": [
"number",
"null"
]
},
"retention_days": {
"type": [
"integer",
"null"
]
}
}
}
},
"checkout": {
"type": "object"
}
}
}
}
}
}
}
}
},
"/api/billing/me": {
"get": {
"tags": [
"Billing & plans"
],
"operationId": "billingMe",
"summary": "Current plan, usage and what is left this month",
"description": "Returns the caller's plan plus seals and document checks consumed in the current UTC month, and the remaining allowance. Replaces the retired prepaid credit balance.",
"responses": {
"200": {
"description": "Plan and usage.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"plan": {
"type": "string"
},
"label": {
"type": "string"
},
"price_monthly_usd": {
"type": [
"number",
"null"
]
},
"usage": {
"type": "object",
"properties": {
"seals": {
"type": "integer"
},
"seals_included": {
"type": [
"integer",
"null"
]
},
"seals_remaining": {
"type": [
"integer",
"null"
]
},
"document_checks": {
"type": "integer"
},
"document_checks_included": {
"type": "integer"
},
"document_check_usd": {
"type": [
"number",
"null"
]
}
}
},
"period_start": {
"type": "integer"
},
"human_verification": {
"type": "string"
}
}
}
}
}
}
}
}
},
"/api/billing/checkout": {
"post": {
"tags": [
"Billing & plans"
],
"operationId": "billingCheckout",
"summary": "Subscribe to a plan (Stripe checkout, or a 402 for an agent)",
"description": "Omit `mode` to get a hosted Stripe Checkout URL for a human. Send `mode:\"agent\"` to get HTTP 402 with machine-readable payment requirements (x402 on Base/USDC, or the Stripe fallback), so an autonomous buyer can settle without a browser session. `plan:\"free\"` activates the Free plan with no card.",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"plan"
],
"properties": {
"plan": {
"type": "string",
"enum": [
"free",
"starter",
"growth",
"scale"
]
},
"mode": {
"type": "string",
"enum": [
"agent"
],
"description": "Omit for a human checkout URL."
},
"email": {
"type": "string",
"format": "email"
}
}
}
}
}
},
"responses": {
"200": {
"description": "Checkout created (or Free plan activated).",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"plan": {
"type": "string"
},
"checkoutUrl": {
"type": "string",
"format": "uri"
},
"sessionId": {
"type": "string"
}
}
}
}
}
},
"402": {
"description": "mode:\"agent\" — payment requirements, no browser needed."
},
"400": {
"description": "Unknown plan."
}
}
}
},
"/api/agents/credits/buy": {
"post": {
"tags": [
"Billing & plans"
],
"operationId": "buyCredits",
"deprecated": true,
"summary": "RETIRED — prepaid verification packs",
"description": "Retired 10 Aug 2026 and now returns HTTP 410. Prepaid packs named \"growth\" 1,000 verifications for $299 while /pricing named \"Growth\" a $499/month plan — one word, two products, two prices. No pack was ever bought, so nothing was grandfathered. Use POST /api/billing/checkout { plan: 'starter' | 'growth' | 'scale' } instead; see https://5arz.com/pricing.",
"responses": {
"410": {
"description": "Gone. Use POST /api/billing/checkout.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"error": {
"type": "string"
},
"use": {
"type": "string"
},
"plans": {
"type": "string"
}
}
}
}
}
}
}
}
},
"/api/agents/credits/balance": {
"get": {
"tags": [
"Auth & credits"
],
"operationId": "creditsBalance",
"deprecated": true,
"summary": "Legacy prepaid credit balance (prepaid packs retired 10 Aug 2026 — use GET /api/billing/me)",
"responses": {
"200": {
"description": "Balance.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"balance": {
"type": "integer"
},
"lifetimePurchased": {
"type": "integer"
},
"lifetimeConsumed": {
"type": "integer"
},
"packs": {
"type": "array",
"items": {
"type": "object"
}
}
}
}
}
}
}
}
}
},
"/api/agents/verify": {
"post": {
"tags": [
"Verification"
],
"operationId": "verifyHuman",
"summary": "Mint a Proof-of-Human-Fulfillment credential",
"description": "Attest that a verified human session performed a unit of work. Spends 1 credit. Returns a signed ES256 PoHF JWT plus quality score and tamper-evident telemetry. Returns 402 (with a buy link) if no credits.",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"sessionId"
],
"properties": {
"sessionId": {
"type": "string"
},
"holderJwk": {
"$ref": "#/components/schemas/HolderJwk"
}
}
}
}
}
},
"responses": {
"200": {
"description": "Signed credential.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Credential"
}
}
}
},
"402": {
"description": "No credits.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"400": {
"description": "Invalid input, including a malformed or private `holderJwk`.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}
},
"/api/agents/verify-personhood": {
"post": {
"tags": [
"Verification"
],
"operationId": "verifyPersonhood",
"summary": "Mint a Proof-of-Personhood credential",
"description": "Prove a real, ID-verified, live human. Spends 1 credit. This does NOT establish that the person holds only one account — the credential carries `sybil_checked`, and it i
# --- truncated at 32 KB (108 KB total) ---
# Full source: https://artifacts.apis.io/5arz-com/openapi/_original/5arz-com-api-openapi.json