Free browser capabilities API

A small, static, keyless JSON API you can build on. It documents every client-side detectable browser property, and the common user agent tokens, so you can assemble your own detection or a reference tool. No key, no rate limit, no sign up.

Endpoints

Every endpoint is a plain static JSON file. Fetch it, cache it, ship it. Because the data is served statically, it is fast and there is nothing to throttle.

EndpointWhat it returns
/api/index.jsonIndex of the API with version and endpoint list.
/api/capabilities.jsonEvery client-side detectable property, its exact JS API, its category, and whether it needs user consent.
/api/user-agent-tokens.jsonA reference of common user agent tokens and their meanings.

Example: list capabilities

fetch("https://readmybrowser.com/api/capabilities.json")
  .then((r) => r.json())
  .then((data) => {
    // data.capabilities is an array of detectable browser properties,
    // each with the exact JS API and whether it needs user consent.
    console.log(data.count, "capabilities");
  });

Example response (user agent tokens)

{
  "updated": "2026-07-02",
  "count": 14,
  "tokens": [
    { "token": "Chrome/120.0.0.0", "meaning": "Google Chrome, major version 120." },
    { "token": "Edg/120.0.0.0", "meaning": "Microsoft Edge, major version 120." }
  ]
}

Using it in your own tool

Pair the capabilities list with the browser APIs it names and you have the skeleton of a detection dashboard. For parsing user agent strings in the browser, the user agent parser shows the same logic you can port to your own code. If you just want to display the values, the embeddable widget does it in one snippet.

Attribution. The API is free for any use. A link back to ReadMyBrowser is appreciated and helps keep it maintained, but it is not required.

Frequently asked questions

Is there a rate limit?

No. The endpoints are static files on a CDN, so fetch them as often as you need. Caching them on your side is still polite and fast.

Does the API see my visitors' data?

No. It only returns reference data. The actual detection happens in each visitor's browser, so no visitor information passes through these endpoints or through us.