5arz Proof-of-Human API API

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 v

Operations 56

GET /api/agent/tasks List buyable verified human work #
GET /api/agent/tasks/{task_id}/buy Buy one slot of verified human work (x402) #
GET /api/attestations/{attestation_id} Fetch a Proof-of-Human-Fulfillment receipt #
POST /api/agents/register Create an API key #
GET /api/billing/plans The published price list (machine-readable, no auth) #
GET /api/billing/me Current plan, usage and what is left this month #
POST /api/billing/checkout Subscribe to a plan (Stripe checkout, or a 402 for an agent) #
POST /api/agents/credits/buy RETIRED — prepaid verification packs #
GET /api/agents/credits/balance Legacy prepaid credit balance (prepaid packs retired 10 Aug 2026 — use GET /api/billing/me) #
POST /api/agents/verify Mint a Proof-of-Human-Fulfillment credential #
POST /api/agents/verify-personhood Mint a Proof-of-Personhood credential #
POST /api/kinetic/submit Prove physical presence #
POST /api/agents/attest/challenge Device attestation — step 1 #
POST /api/agents/attest/verify Device attestation — step 2 #
POST /api/track/event Public behavior beacon #
POST /api/agents/track/conversion Server-side conversion tied to a verified view #
GET /api/agents/metrics Verified-attention analytics #
GET /api/agents/metrics/funnel Verified funnel (views → landed → engaged → conversions) #
GET /api/tasks/next Fetch an embeddable micro-task #
POST /api/tasks/complete Submit a task completion #
POST /api/agents/wallet/challenge On-chain personhood — get a message to sign #
POST /api/agents/webhooks Register a push webhook #
POST /api/partner/points/convert Convert reward points to Stars #
POST /api/partner/payout/request Queue a Stars → cash payout #
GET /.well-known/jwks.json Public keys #
GET /api/workflows/available List commissionable verified-work tasks. #
POST /api/agents/order Commission verified human work. #
POST /api/agents/bind-transaction Bind a verified human to a Tempo/OUSD/Agent Pay/Stripe/USDC payment; returns a signed credential. Pass test:true to try without a live payment. #
GET /api/index VHH index catalog — published codes with latest final epoch (free, cached). #
GET /api/index/vhh VHH composite. Free: latest final epoch, ES256-signed (verify against /.well-known/jwks.json). With an agent API key: current MTD + categories + ?history=1. #
GET /api/index/{code} Any VHH_* category series (licensed — agent API key). #
POST /api/forwards/order Order prepaid verified-human-hours capacity (category, hours, month) at a VHH-referenced price. Intake only — countersigned service agreement + Stripe invoice follow. Not transfera #
GET /statuslists/{listId} IETF Token Status List (revocation) #
GET /api/credentials/sample Sample credential (public, no key) #
GET /.well-known/jwt-vc-issuer SD-JWT VC issuer metadata #
GET /api/agents/keys List this account's sub-keys #
POST /api/agents/keys Mint a sub-key for one of your agents #
DELETE /api/agents/keys/{keyId} Revoke a sub-key #
GET /api/public/start How to connect, in three calls #
GET /api/partner/account Your job budget, limits and what to do next #
POST /api/partner/topup Buy job credits by card #
GET /api/partner/topup/{sessionId} Did my payment land? #
GET /api/partner/jobs/config What you are allowed to post, and your webhook #
POST /api/partner/jobs/config Register a webhook for job events #
POST /api/partner/jobs Post desk work for a verified human #
GET /api/partner/jobs List your desk jobs #
GET /api/partner/jobs/events Pull job events instead of receiving them #
GET /api/field-jobs/config What a field job is, and what verification does and does not prove #
POST /api/field-jobs Pay a human to go somewhere and photograph it #
GET /api/field-jobs List your field jobs #
GET /api/field-jobs/{jobId} One job, with every claim and its proof bundle #
GET /api/field-jobs/{jobId}/submissions The photo evidence and the verification signals #
GET /api/field-jobs/{jobId}/photo Fetch one submitted photo #
POST /api/field-jobs/{jobId}/approve Accept a submission and pay the worker #
POST /api/field-jobs/{jobId}/reject Reject a submission and release the escrow #
POST /api/field-jobs/{jobId}/cancel Cancel a job and refund unworked slots #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/5arz-com:5arz-proof-of-human-api-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

5arz-com-api-openapi.json Raw ↑
{
  "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