Hitsteps API documentation

Read Hitsteps analytics from software you run. This page is the index: it names every Hitsteps API we document, explains what each one is for, how it authenticates, what limits apply, and where the full reference lives.

Start a free Hitsteps accountSee analytics features

Choose the API you need

Two public APIs and one account-gated reference cover everything Hitsteps exposes. Start with the Analytics API if you are not sure which one applies to you.

Reports API

Read one saved report as JSON from your own server. You create the key inside the report, so the integration only ever sees that report and nothing else from your account.

Not yet available on every account: if your saved report has no Reports API section, use the Analytics API.

POST /api/reports-v2.php

Read the Reports API guide

Analytics API

The original website-level API. Returns account details, connected sites, visitor traffic, referrers, pages, campaigns, goals and live counts for a site you already track.

POST /api/callback/<action>

Open the Analytics API reference · OpenAPI spec

White-label API

Account and site provisioning for resellers. The reference lives inside the product and is limited to existing white-label accounts, so it is not part of the public documentation.

POST /api/whitelabel/<action>

Sign in to open the reference

Grafana setup

Pull Hitsteps numbers into Grafana with the Infinity data source and our ready-made dashboard. No custom plugin to install.

See the Grafana setup guide

Which one fits your integration?

The two public APIs use different credentials and different request formats. Pick by what you need to read, not by which page you landed on first.

You want Use Reference
One saved report as JSON in your own app Reports API Reports API guide
Account, website, visitor, traffic or live data for a site Analytics API Analytics API reference
Reseller account and site provisioning White-label API Sign in to open it
Hitsteps numbers on a Grafana dashboard Grafana setup Grafana setup guide

Get a credential

Each API takes a different credential, and they are not interchangeable.

  • Reports API key. Not yet available on every account: if your saved report has no Reports API section, use the Analytics API. Where it is available, open a saved report in your dashboard, expand the Reports API section, choose an expiry of 1, 7, 30 or 90 days and create the key. It is shown once, so store it in your server's secret manager. The key belongs to that one report and its current revision; editing the report invalidates it.
  • Analytics API code. Open the tracking code and API key page. This is the website key your plugins and apps already ask for, and it works differently from a Reports API key.
  • White-label access. Sign in to an account that already has white-label history. There is no public key signup for this reference.

Not sure which key you are holding? The API key FAQ shows where each one lives, step by step.

Example: read one saved report

This is the whole request for the Reports API. It asks for one complete day and returns that saved report as JSON. Replace the timestamps with days inside your own retained history.

Not yet available on every account: if your saved report has no Reports API section, use the Analytics API instead. This example assumes the section is there.

Configure HITSTEPS_REPORT_API_KEY in your server environment before running it. Passing the header through standard input keeps the key out of the command line, where process listings could read it.

printf 'Authorization: Bearer %s\n' "$HITSTEPS_REPORT_API_KEY" |
curl --silent --show-error --include \
'https://www.hitsteps.com/api/reports-v2.php' \
-H @- \
-H 'Content-Type: application/json' \
--data '{"from":1788645600,"until":1788732000}'

Those two timestamps are 6 and 7 September 2026 for an account at UTC+02:00. --include prints the status line and headers, so you can see a Retry-After value when the rate limit answers. Always branch on the HTTP status: an error response still carries a JSON body. The full Reports API guide covers the response shape, the error table and how to handle days that are still processing.

Authentication and limits at a glance

  Reports API Analytics API
Endpoint POST /api/reports-v2.php POST /api/callback/<action>
Credential Authorization: Bearer report key apicode form field, plus website_id for most actions
Request body JSON, two integer timestamps, up to 4096 bytes multipart/form-data
Rate limit 20 requests per 60-second window per key No published request quota; repeated failed API-code attempts are throttled (HTTP 429 with Retry-After)
Full reference Reports API guide Analytics API reference

Keep credentials server-side. Never place a password, API code, report key or visitor data in browser JavaScript, public repositories, URLs, screenshots or support messages. These reference pages document the APIs only; they do not accept credentials or make authenticated requests for you.

Where to go next