Badges
Check whether a candidate already holds a valid certification.
Requires the CERTIFICATION_RESULT_READ scope. Useful before creating an invite - a candidate can't be
re-invited to a certification they already hold a currently-valid badge for (see
Invites), so checking here first lets you skip straight to showing the
existing credential instead of hitting a BAD_USER_INPUT error.
query CertificationBadges($email: String!) {
developerCertificationBadges(email: $email) {
validCandidate
message
badges {
skillName
level
conceptsTested
}
}
}validCandidateisfalse(with an explanatorymessage) if the email isn't a syntactically valid address, or no certification candidate exists for it yet - that's not an error, just an empty result.badgesonly includes currently active, unexpired certifications - expired or revoked ones are omitted.
Example response
{
"data": {
"developerCertificationBadges": {
"validCandidate": true,
"message": null,
"badges": [
{
"skillName": "React",
"level": "Intermediate",
"conceptsTested": ["Component state and effects", "Data fetching", "Debugging"]
}
]
}
}
}Badge images
If you want to render the badge visually yourself (rather than, or in addition to, linking to the
certificateUrl verification page returned by Results /
Webhooks), each level has a fixed, standalone badge image URL - safe to
hardcode or cache, these don't change per-candidate:
| Level | Image URL |
|---|---|
| Beginner | https://scout-interview.sgp1.cdn.digitaloceanspaces.com/certifications/public/beginner-badge.png |
| Intermediate | https://scout-interview.sgp1.cdn.digitaloceanspaces.com/certifications/public/intermediate-badge.png |
| Advanced | https://scout-interview.sgp1.cdn.digitaloceanspaces.com/certifications/public/advanced-badge.png |
| Expert | https://scout-interview.sgp1.cdn.digitaloceanspaces.com/certifications/public/expert-badge.png |
developerCertificationResult.badgeImageUrl and the certification webhook's result.badgeImageUrl
return the URL matching the candidate's achieved level automatically (only when a certificate was
actually issued - null otherwise), so in most cases you don't need to hardcode this table yourself.
Use the table directly only if you want to show level badges independent of any specific candidate
result (e.g. a static "certifications we support" marketing page).