What is Glemo?
One API to verify the credentials you issue, and those from the issuers in our registry.
Glemo is a credential verification network. You're hiring, admitting or onboarding someone who claims a credential, a degree, a certification, a license. Instead of emails and 3-5 day manual checks, you make one API call and get a cryptographic verdict in milliseconds, for credentials issued by any issuer on open standards (W3C Verifiable Credentials 2.0, Open Badges 3.0).
Quickstart
Self-serve test key → first verdict in under 5 minutes.
API essentials
Authentication, test vs live keys, errors and rate limits.
Concepts
Credentials, DIDs, verification and revocation, the model.
Interactive reference
Every endpoint, generated from the OpenAPI spec, with try-it.
How it works
- Someone presents a credential, an id from Glemo's registry, or a portable signed credential (VC-JWT) issued by anyone.
- You call
POST /verifywith your API key. - Glemo runs the checks, signature, issuer identity (DID), schema, revocation status, validity window, and returns a verdict with the evidence.
curl -X POST https://api.glemo.io/verify \
-H "Authorization: Bearer $GLEMO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"method": "byHash", "credentialId": "3f2a…"}'{
"status": "valid",
"checks": [
{ "name": "lookup", "ok": true },
{ "name": "status", "ok": true },
{ "name": "expiration", "ok": true }
]
}Verdicts
Every verification resolves to exactly one of six deterministic verdicts: never a maybe:
| Verdict | Meaning | Typical action |
|---|---|---|
valid | Every check passed | Accept |
revoked | The issuer revoked it | Reject, show reason |
expired | Past its validity window | Ask for a renewal |
tampered | Signature or schema broken, content was altered | Reject, flag |
not_found | No credential with that id | Ask for the source |
not_verifiable | We could not check it: the issuer identity did not resolve, or an uploaded image carries no credential we can read | Retry / manual review |
The verdict is the summary. Underneath it, every verification also returns the facts it rests on, one by one: the signature, the issuer's status list, the two ends of the validity window separately, and how the evidence reached us. A fact we could not check comes back as unchecked with its reason, never as a failure. See Verification for the shape.
Ways to integrate
- API:
POST /verify, one call, any stack. Start at the quickstart. - SDK:
@glemo/sdkfor Node, browsers and edge, with typed errors. - Widget:
<glemo-verify>, paste a snippet, get a live verdict badge. No code beyond HTML. - Webhooks: signed notifications for every verification, for your async pipelines. See webhooks.