Use Proof records in your app

Read any public record, show a live badge, or collect verified revenue from your own users. No key needed for public data.

RequestSample
$ curl https://proofissued.com/api/v1/claims/sample-northbound-q3

{
  "metric": "Verified Net Sales",
  "disclosed_value": "$400K+",
  "state": { "label": "Verified", "verified": true },
  "period": { "label": "September 2026" },
  "sources": ["Shopify"]
}
200 OKJSON

API endpoints

All under https://proofissued.com.

  • GET/api/v1/claims/{id}

    One record's live public state: the value shown, whether it's verified, the period, sources and method.

    Public
  • GET/api/v1/profiles/{handle}

    A public profile and its published records, side by side.

    Public
  • GET/badge/{id}.svg

    A live badge. Add ?theme=light for light backgrounds.

    Public
  • EMBED/embed/{id}

    A compact live card for any page. Clicks open the full record.

    Public
  • GET/api/v1/intake/submissions

    Everyone who verified through your Verify with Proof links.

    API key

Three rules for using the data

  1. 1

    Only what's public

    Responses carry the owner's chosen disclosure. Private figures and raw evidence are never sent.

  2. 2

    Check verified, not presence

    Use state.verified. A stale, withdrawn or sample record returns false.

  3. 3

    Never add records up

    Records cover different periods and sources. Show them side by side.

Verify with Proof

Make a link in your business workspace. When someone verifies through it, you get a signed submission.created webhook, and you can pull every submission with your API key.

Check the Proof-Signature header
const [t, v1] = header.split(",").map(p => p.split("=")[1]);
const want = crypto.createHmac("sha256", secret)
  .update(`${t}.${rawBody}`).digest("hex");
const ok = crypto.timingSafeEqual(Buffer.from(want), Buffer.from(v1))
  && Math.abs(Date.now() / 1000 - Number(t)) < 300;
HMAC-SHA256 of t + "." + body. Reject anything older than five minutes.

Get an API key

API keys live in your Business workspace. Public records, badges and embeds don't need one.

Questions

Building something bigger? See Partner plans →

Do I need a key?

Not for public records, badges or embeds. Only the Verify with Proof submissions endpoint needs an API key.

Can I see a private amount?

No. The API only returns what the owner made public. Private figures stay in private rooms and packets.

Is there a rate limit?

Public endpoints are cached and fair-use. Partner plans add volume and an SLA.

What does verified: false mean?

The record isn't currently verified: it's stale, withdrawn, unsupported or a sample. Treat it as not verified.