Authentication
Send the key in the X-API-Key header, or as Authorization: Bearer cd_live_…. Keys are shown once, when you create them. Keep them on a server, never in a web page.
GETGet a member's credentials
GET https://certdirectory.io/api/v1/certifications/{identifier}identifier is the member's profile address (for example maya-fernando) or their id. Only what a signed-out visitor sees on the profile is returned: members who hide their credentials are not found.
{
"status": "success",
"data": {
"user": { "slug": "maya-fernando", "uuid": "0190…", "name": "Maya Fernando" },
"certifications": [
{
"id": "0193…",
"name": "Certified Kubernetes Administrator (CKA)",
"provider": "The Linux Foundation",
"issued_date": "2025-03-01",
"expiry_date": "2027-03-01",
"status": "valid",
"credly_url": "https://www.credly.com/badges/…",
"badge_image_url": "https://…"
}
],
"microsoft_certifications": [
{
"id": "0193…",
"name": "Microsoft Certified: Azure Administrator Associate",
"issued_date": "2024-11-20",
"expiry_date": null,
"status": "valid",
"verification_url": "https://learn.microsoft.com/…"
}
],
"certdirectory_credentials": []
}
}Limits
Each key has its own hourly limit (100, 500 or 1,000 calls), chosen when you create it. Every answer carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset (a Unix time).
| Status | Meaning |
|---|---|
| 200 | The member's public credentials. |
| 401 | No key, or a key that is wrong, expired or revoked. |
| 404 | No such profile, or the member hides their credentials. |
| 429 | The key has used its calls for this hour (see the headers). |
Errors look like { "error": { "code": "not_found", "message": "Profile not found" } }.