KitGradeSCORED ON WHAT A BUYER CAN CHECK
REFRESHED 05:41 UTCOpen API
38 kits scored16 installed and run here22 read, not run22 free and open source16 paid100 points, method 1.0captured 2026-09-13nothing here is sponsored

Every measurement this site renders, as JSON, from 5 calls that need no key.

No key and no account, and these are the calls this site makes to render itself. Every response carries the instant the figures were captured in an x-kitgrade-captured-at header, so a consumer can tell how old a figure is without asking for a second endpoint. Cite a figure from here rather than from the HTML: every number on this site is rendered from one of these responses, and this is the one that carries its sources with it.

AUTHENTICATION
none, and there is nothing to sign up for
CORS
open to every origin
ROWS AVAILABLE
38 kits, 16 with a run transcript
CAPTURED
2026-09-13, 17:02 UTC
CACHING
an hour at the edge, a day stale

/api/kits

GET, NO KEY

Every kit with its score, price, licence, stack and last commit. Filterable and sortable on the same axes the directory is.

stack
one stack slug, e.g. nextjs, laravel, prisma
ecosystem
Next.js, Laravel, Rails, Django, Node.js, Wasp
pricing
free or paid
evidence
hands_on or documented
max_price
an integer in USD
sort
score (default), name, price, updated
limit / offset
limit caps at 200
https://kitgrade.thecompound.tech/api/kits?ecosystem=Next.js&pricing=free&sort=score

/api/kits/{slug}

GET, NO KEY

One kit in full: every capability with the file or page it was found in, every price point with its source, and the install transcript where we ran it.

https://kitgrade.thecompound.tech/api/kits/next-forge

/api/compare

GET, NO KEY

Two to four kits side by side, with the fourteen capabilities resolved per kit.

slugs
two to four slugs, comma separated
https://kitgrade.thecompound.tech/api/compare?slugs=next-forge,makerkit

/api/method

GET, NO KEY

The scoring method itself: the components, their point ceilings, and how each one is computed. This is the same constant the score is calculated from, so it cannot drift from the arithmetic.

https://kitgrade.thecompound.tech/api/method

/api/stats

GET, NO KEY

The counts on the landing page, and when the directory was last refreshed.

https://kitgrade.thecompound.tech/api/stats

/api/badge/{slug}.svg

SVG, NO KEY

The one thing this site publishes that is meant to live on somebody else’s page. It states this index’s own measurement of that kit, in words, and it links back here. The value is not settable by the embedder and there is no ?message= parameter: a badge whose number the holder controls is a sticker, and one forged badge ends the usefulness of every honest one. Add ?theme=light for a light card. A maker who wants the listing to record that a maker has claimed it does that on the claim page.

https://kitgrade.thecompound.tech/api/badge/bullet-train.svg

What the API will not tell you

NO OPINIONS

It carries measurements, not opinions. There is no recommended field, no editor’s pick and no ranking that is not the score arithmetic applied to the numbers in the same response. Where a component could not be measured, a kit with no public repository has no commit history to read, the points are simply not awarded and the coverage field says how much of the method was applicable at all. Read how the score is built before treating a total as comparable across kits with different coverage.