Endpoints
| Endpoint | Contains | Use it for |
|---|---|---|
/api/index.json | The endpoint index, with version, licence and attribution. | Start here if you are discovering the API programmatically. |
/api/tests.json | Every test: slug, name, URL, category, what it measures, which durations it offers. | Building a directory, a launcher or a comparison of browser tools. |
/api/benchmarks.json | Published benchmark figures, each with an explicit basis field. | Answering 'what is a good CPS'. Read the basis field first: most of these are estimates, and the file says so. |
/api/methodology.json | How each measurement is taken, including known error sources and their size. | Deciding whether a number from this site is comparable with a number from somewhere else. |
Every file carries the same envelope: version, updated, license, attribution and source. If you cache one of these files, you still know where it came from and how old it is.
Read the basis field before you quote anything
This is the part that makes the API worth using rather than just available. Every benchmark value in /api/benchmarks.json carries a basis: either estimate, derived, specification or measured.
Today, nothing on this site is measured. The CPS tiers, the per-duration scales and the reaction-time range are all estimate: community conventions rather than data. That is not modesty about our own numbers, it is the state of the whole field. There is no published dataset on human click speed anywhere, so every benchmark table on every competing site is in exactly the same position, whether it admits it or not.
The polling rate figures and the reaction-time latency chain are specification and derived: a 60 Hz display sends a frame every 16.7 milliseconds by definition, and you can check that arithmetic yourself. Those you can quote as fact.
Licence and attribution
CC BY 4.0. Use it commercially, redistribute it, build on it. The one condition is attribution: credit ClickStorm (clickstorm.app) with a link where a link is possible.
Stable URLs are part of the contract. These paths will not move, and a breaking change to any file's shape gets a new major version rather than a silent edit. Corrections are welcome through the contact page and get fixed rather than argued with.
Example
Fetching the average-CPS figure together with the basis that qualifies it:
curl -s https://clickstorm.app/api/benchmarks.json | jq '.averageCps'The full method behind every one of these numbers is written out for humans on the measurement methodology page.