REST API

Bring NowMetrix data into the tools your team already uses.

Start with a live snapshot, build a newsroom display, or send historical results into your reporting workflow. Pick an endpoint here, then open its complete technical reference.

Start with one base URL

Every API-key authenticated request starts with this host:

https://api.nowmetrix.com

Send your API key

Send your API key as a Bearer token in the Authorization header. API keys can be generated by account admins in the NowMetrix dashboard under Settings -> API.

Authorization: Bearer nm_YOUR_KEY

HTTPS is required for all API-key authenticated requests.

Make your first request

The quickest way to test your setup is a realtime snapshot. It confirms that the key works and can access the tracker.

curl -H "Authorization: Bearer nm_YOUR_KEY" \
  "https://api.nowmetrix.com/v1/realtime?site=TRACKER_ID"

Choose the data you need

Method Path Description Reference
GET /v1/realtime Current live snapshot: active users, pageviews, top pages, devices, countries, cities, and sources. View endpoint
GET /v1/sources Traffic sources from the current live window with classification and optional child rows. View endpoint
GET /v1/overview Daily pageviews and visits for the last N completed history rows. View endpoint
GET /v1/recap Recap data, summary metrics, and top pages for presets or a custom date range. View endpoint
GET /v1/pulse Today pulse, yesterday comparison, and 15-minute intraday curves. View endpoint
GET /v1/responsibilities Current team responsibilities for a tracker, including who is assigned to each visible role. View endpoint
GET /api/me API-key account context: current tracker and all trackers the token can access. View endpoint

Keep requests fast and predictable

The public API allows 20 requests per minute per tracker. Multiple users or keys querying the same tracker share the same counter.

X-RateLimit-Limit: 20
X-RateLimit-Remaining: 7
X-RateLimit-Reset: 1783612801
Retry-After: 42
Cache API responses in your own system whenever possible. As a rule of thumb, cache realtime data briefly and historical overview data for several minutes.

When a request fails

You should not have to parse a different format for every problem. API errors use a consistent JSON body with a stable machine-readable code.

HTTP Code Description
400 site_required The site query parameter is missing.
401 missing_token The Authorization header is missing.
401 invalid_token The token is invalid or revoked.
403 site_not_authorized The API key has no access to this tracker.
429 rate_limit_exceeded The rate limit has been exceeded.
503 redis_unavailable The realtime backend is temporarily unavailable.
{
  "error": {
    "code": "invalid_token",
    "message": "Bearer token is invalid or revoked."
  }
}