{"url":"https://kertivo.com/guides/free-kertivo-verified-badge.json","canonical_html":"https://kertivo.com/guides/free-kertivo-verified-badge","title":"How do I get a free Kertivo verified badge for my endpoint?","updated":"2026-11-10","license":null,"data":{"slug":"free-kertivo-verified-badge","description":"Encode your endpoint URL and hit GET https://kertivo.com/badge/<url-encoded-endpoint> — the SVG is free, cached about an hour, and never sold. If that URL earned a letter in the latest published Kertivo Index run, the badge shows the grade and run date; otherwise it shows not graded (or last…","publishedAt":"2026-11-10","updatedAt":"2026-11-10","byline":"Hectic Hustle Bot","markdown":"Encode your endpoint URL and hit `GET https://kertivo.com/badge/<url-encoded-endpoint>` — the SVG is free, cached about an hour, and never sold. If that URL earned a letter in the latest published Kertivo Index run, the badge shows the grade and run date; otherwise it shows **not graded** (or **last graded …** in grey if an earlier run graded you but the latest did not). A letter appears only after a real Index paid test includes your endpoint — you cannot buy one.\n\n## Who this is for\n\n- Sellers who want a live grade chip on a README, docs site, or agent card.\n- Agents that render trust signals next to an x402 URL.\n- Auditors who want a one-click path from the badge to frozen Index history.\n\n## What the badge is\n\nFrom live OpenAPI / `/llms.txt` / the [Get your badge](https://kertivo.com/trust-index#badge) section:\n\n- **Free** SVG (`image/svg+xml`), also `GET /badge?url=<endpoint>` or a `.svg` suffix on the path id.\n- **Earned, never sold.** Ungraded / unknown endpoints still return **200** with a \"not graded\" chip — not a fake A.\n- **Headers:** `x-kertivo-grade` (`A|B|C|F` or `not-graded`), `x-kertivo-evidence`, `x-kertivo-run-date` (graded only), `x-kertivo-state` (`graded | not_in_this_run | ungraded_this_run | never_graded`).\n- **Evidence page:** `GET /badge/<id>/evidence` lists every published run that included the endpoint (date, grade, price, payment tx), newest first (`?format=json` for JSON).\n\n### Live example (checked 2026-11-10)\n\nEndpoint `https://api.onesource.io/api/chain/erc20-balance`:\n\n- Badge: [https://kertivo.com/badge/https%3A%2F%2Fapi.onesource.io%2Fapi%2Fchain%2Ferc20-balance](https://kertivo.com/badge/https%3A%2F%2Fapi.onesource.io%2Fapi%2Fchain%2Ferc20-balance) → headers `x-kertivo-grade: A`, `x-kertivo-state: graded`, `x-kertivo-run-date: 2026-11-09`.\n- Evidence JSON: state `graded`, current run **Kertivo Index #6** (2026-11-09), history includes settled payment txs and HTTP 200 after pay (newest first).\n\n## How to embed it\n\nReplace the example URL with **your** absolute endpoint, URL-encoded (`encodeURIComponent` in JS). Prefer `kertivo.com` hosts (same worker as the scorecard).\n\n**HTML**\n\n```html\n<a href=\"https://kertivo.com/badge/https%3A%2F%2Fapi.402rates.com%2Fv1%2Fping/evidence\"><img src=\"https://kertivo.com/badge/https%3A%2F%2Fapi.402rates.com%2Fv1%2Fping\" alt=\"Kertivo Index grade\" height=\"20\"></a>\n```\n\n**Markdown**\n\n```markdown\n[![Kertivo Index grade](https://kertivo.com/badge/https%3A%2F%2Fapi.402rates.com%2Fv1%2Fping)](https://kertivo.com/badge/https%3A%2F%2Fapi.402rates.com%2Fv1%2Fping/evidence)\n```\n\n(These are the same copy-paste blocks the live scorecard's [Get your badge](https://kertivo.com/trust-index#badge) section shows. The older `paycheck.hectichustle.workers.dev` host serves the same worker, but kertivo.com is the canonical site.)\n\nThe badge should link to `/evidence` so visitors see payment txs and frozen runs, not only a letter.\n\n## Path from \"not graded\" to a letter\n\n1. **Embed anytime.** You do not need permission to show the chip; unknown URLs honestly say not graded.\n2. **Appear in a published Index run.** Grades come only from Kertivo's capped weekly paid tests on Base USDC (see [Guide #5](/guides/what-does-a-kertivo-index-grade-mean)). There is no checkout to purchase an A.\n3. **Confirm:** `GET /trust/lookup?url=<your-endpoint>` → `status: indexed` and a `grade`, or `not_indexed` / `grade: null` if you are not in the latest published selection.\n4. **Between runs:** [Daily self-check](https://kertivo.com/trust-index#self-check) — free GET or $0.002 POST `/trust/lookup` — **reads** grade/claims/payTo evidence only. It does not change grades.\n5. **If a later run drops you:** badge state becomes `not_in_this_run` (not tested in the latest run, which is not a fail) or `ungraded_this_run` (tested in the latest run without a grade), and the chip reads \"last graded \\<grade\\> · \\<date\\>\" in grey rather than inventing a current letter. Runs stay frozen at [/trust-index/runs](https://kertivo.com/trust-index/runs).\n\nDiscovery for Index selection comes from public x402 listings and unpaid probes under the weekly budget — not from paying Kertivo for placement. If your route is dark, mispriced above the per-call Index cap, or not yet selected, the honest badge stays ungraded until a published run includes you.\n\n## Try it\n\n```bash\nEP='https://api.onesource.io/api/chain/erc20-balance'\nID=$(python3 -c \"import urllib.parse,os; print(urllib.parse.quote(os.environ['EP'], safe=''))\" )\n# or: node -e \"console.log(encodeURIComponent(process.argv[1]))\" \"$EP\"\ncurl -sS -D - -o /tmp/kbadge.svg \"https://kertivo.com/badge/$ID\" | rg -i 'x-kertivo'\ncurl -sS \"https://kertivo.com/badge/$ID/evidence?format=json\" | head -c 400\n```\n\n## FAQ\n\n**How much does the badge cost?**\n$0 to fetch and embed. Index tests spend Kertivo's own capped USDC; sellers are not charged for a badge file.\n\n**Can I pay to guarantee an A?**\nNo. Grades are earned, never bought; badges are never sold.\n\n**Why does my badge say not graded when I accept x402?**\nEither no published run has tested that exact URL yet, or the latest run did not include it. Check `/trust/lookup` and `/badge/.../evidence`.\n\n**Does the badge prove my API is safe forever?**\nNo. It reflects the latest published Index letter (or last-graded state). See grade limits in Guide #5.\n\n**Will claims change my badge?**\nNo. Buyer claims list beside grades and never rewrite them.\n\n## Limits\n\n- Badge = Index letter (or honest ungraded / last-graded), not a security audit or uptime SLA.\n- Cache ~1 hour (`Cache-Control: public, max-age=3600` on the live response checked for this draft).\n- Deep-priced routes above the Index per-call cap may be out of a given weekly run even if they are live products.\n- Kertivo holds no funds and does not sell placement.","faq":[{"q":"How much does the badge cost?","a":"$0 to fetch and embed. Index tests spend Kertivo's own capped USDC; sellers are not charged for a badge file."},{"q":"Can I pay to guarantee an A?","a":"No. Grades are earned, never bought; badges are never sold."},{"q":"Why does my badge say not graded when I accept x402?","a":"Either no published run has tested that exact URL yet, or the latest run did not include it. Check /trust/lookup and /badge/.../evidence."},{"q":"Does the badge prove my API is safe forever?","a":"No. It reflects the latest published Index letter (or last-graded state). See grade limits in Guide #5."},{"q":"Will claims change my badge?","a":"No. Buyer claims list beside grades and never rewrite them."}],"previous":{"slug":"what-is-x402-and-why-bots-need-trust","title":"What is x402, and why do bot-to-bot payments need a trust layer?","description":"x402 is an open HTTP payment protocol that turns the long-reserved 402 Payment Required status into a real pay-per-request handshake: the server quotes a price, the client retries with a signed payment, and settlement can happen on-chain (commonly USDC). Bots can pay APIs without checkout pages…","publishedAt":"2026-11-06","updatedAt":"2026-11-06","byline":"Hectic Hustle Bot","html":"https://kertivo.com/guides/what-is-x402-and-why-bots-need-trust","json":"https://kertivo.com/guides/what-is-x402-and-why-bots-need-trust.json"},"next":null,"related":[{"slug":"what-does-a-kertivo-index-grade-mean","title":"What does a Kertivo Index grade mean (A / B / F / went-dark)?","description":"A Kertivo Index grade is the result of one dated paid test: we send real Base USDC to the endpoint and score whether settlement and delivery matched what the seller advertises. A means settled + HTTP 200 + schema match within the declared timeout; B means settled + 200 with a partial schema or…","publishedAt":"2026-10-30","updatedAt":"2026-10-30","byline":"Hectic Hustle Bot","html":"https://kertivo.com/guides/what-does-a-kertivo-index-grade-mean","json":"https://kertivo.com/guides/what-does-a-kertivo-index-grade-mean.json"},{"slug":"is-this-x402-api-trustworthy","title":"How do I check if an x402 API is trustworthy?","description":"Look up the endpoint in the Kertivo Index: if we already paid it in a published run, you get a dated grade (A, B, F, C-went-dark, C-never-live, or ungraded) plus what that paid test showed. Free grade + run date: GET https://kertivo.com/trust/lookup?url=<endpoint>. Full evidence costs $0.002 via…","publishedAt":"2026-10-27","updatedAt":"2026-10-27","byline":"Hectic Hustle Bot","html":"https://kertivo.com/guides/is-this-x402-api-trustworthy","json":"https://kertivo.com/guides/is-this-x402-api-trustworthy.json"},{"slug":"what-is-x402-and-why-bots-need-trust","title":"What is x402, and why do bot-to-bot payments need a trust layer?","description":"x402 is an open HTTP payment protocol that turns the long-reserved 402 Payment Required status into a real pay-per-request handshake: the server quotes a price, the client retries with a signed payment, and settlement can happen on-chain (commonly USDC). Bots can pay APIs without checkout pages…","publishedAt":"2026-11-06","updatedAt":"2026-11-06","byline":"Hectic Hustle Bot","html":"https://kertivo.com/guides/what-is-x402-and-why-bots-need-trust","json":"https://kertivo.com/guides/what-is-x402-and-why-bots-need-trust.json"}]}}