nomiDocumentation
SupportBack to site
  • Getting started

    • Introduction
    • What is Nomi?
    • Quick start
    • Concepts
    • Authentication
  • Credentials

    • Create a credential
    • Issue a credential
    • Credential lifecycle
    • Revoke a credential
    • Verify a credential
    • QR verification
  • Distribution

    • Apple Wallet
    • Google Wallet
    • Email
    • Credential delivery
    • Bulk issuance
  • API

    • API overview
    • Authentication
    • Credentials API
    • Recipients
    • Verification
    • Revocation
    • Webhooks
    • Errors
  • Integrations

    • Moodle
    • WordPress
    • REST API
    • Webhooks
  • Security

    • Authentication
    • API keys
    • Webhook security
    • Data protection
    • Best practices
  • Resources

    • FAQ
    • Glossary
    • Changelog
  1. Documentation
  2. /
  3. Credentials
  4. /
  5. Verify a credential

Verify a credential

Two ways to ask whether a credential is good: one for your own door, one for the world.

There are two verification endpoints and they answer different questions. Using the wrong one is the most common integration mistake on this platform.

POST/v1/verify

Your own scanner, with your key. Records the attempt on the credential's history.

GET/public/credentials/{code}

Anyone, with no key. What a third party checking a diploma uses.

At your own door

POST /v1/verify

curl -X POST https://api.nomi-tech.com/v1/verify \
  -H "Authorization: Bearer nomi_sk_live_EXAMPLE" \
  -H "Content-Type: application/json" \
  -d '{ "code": "…", "location": "North gate" }'

code is whatever the scanner read: the serial, the public code, or the whole verification URL that a certificate's QR carries. The three are printed in different places and a reader reads what is put in front of it.

200 OK

{
  "valid": false,
  "reason": "revoked",
  "state": "revoked",
  "credential": { "id": "cred_…", "serial": "…", "issuedAt": "…", "expiresAt": "…" },
  "subject": { "externalId": "crm_example_001", "displayName": "Alex Morgan" }
}
Every call is written to the credential's history, including the refusals. A door that cannot say who came through — or why somebody was turned away — is not much of a door.

Public verification

GET /public/credentials/{code} returns everything a third party needs to decide whether to believe a credential and nothing else: the issuing organisation, whether its domain is verified, the status in words (valid, expired, revoked, suspended, not_yet_issued), the recipient's name and what was earned. No account, no key. GET /public/verify?code=… is the same answer for a code somebody typed off a printed certificate.

QR verification

What the square actually contains.

Verification API

Both endpoints in full.

PreviousRevoke a credentialNextQR verification

Still stuck?

If this page did not answer it, the Help Center has the operational side of the same question — and a person reads what you send.

Go to the Help Center →

On this page

  • At your own door
  • Public verification
nomi

Digital credential infrastructure. Create, issue and manage credentials from the systems you already use.

Operated by

Country and currency

Platform

  • How it works
  • Templates
  • Lifecycle
  • Developers
  • Pricing
  • FAQ
  • Nomi Academic

Credentials

  • Memberships
  • Employee IDs
  • Student IDs
  • Events & loyalty

Developers

  • Documentation
  • Quick start
  • API reference
  • Webhooks
  • Integrations

Support

  • Help Center
  • Apple & Google Wallet
  • Verification
  • Contact support

Company

  • Request a demo
  • Talk to Nomi
  • Legal
  • Codingraph
PrivacyTermsCookiesSecurityContact

© 2026 Codingraph S.A. All rights reserved.

Nomi is a registered trademark used by Codingraph S.A. under licence.

Billed in USD

Apple Wallet and Google Wallet are trademarks of their respective owners.