README badges
Shield-style SVG badges that show your skill's current SkillOx grade — same visual language as shields.io, drops in next to your CI / coverage / npm badges. Updates within five minutes of every re-scan.
Endpoints
GET /badge/<skill-name>.svg— letter-grade badge. Renders asskillox | A(color matches the grade band).GET /badge/score/<skill-name>.svg— numeric-score badge. Renders asskillox score | 87.
Both also accept the URL without the .svg extension. The skill-name path component is the same name used at /c/<skill-name>, URL-encoded.
Markdown
[](https://skillox.io/c/<skill-name>)
For the numeric-score badge:
[](https://skillox.io/c/<skill-name>)
HTML
<a href="https://skillox.io/c/<skill-name>"> <img src="https://api.skillox.io/badge/<skill-name>.svg" alt="SkillOx grade" /> </a>
reStructuredText (Sphinx, etc.)
.. image:: https://api.skillox.io/badge/<skill-name>.svg :target: https://skillox.io/c/<skill-name> :alt: SkillOx grade
/c/<your-skill> on skillox.io to grab them.Caching
- 5-minute CDN cache (
s-maxage=300) - 30-minute stale-while-revalidate
- 1-minute browser cache (
max-age=60)
Long-tail skills barely change grade week-over-week, so the short TTL is fine. If you need to bust the cache (e.g. after a re-scan), append ?v=timestamp to the badge URL in your README.
Unknown skills
If we haven't scanned that skill name yet, the badge renders as a gray skillox | unknown — never errors. To get a grade, either submit it for scanning via the home page or wait for the next crawler pass to pick it up.