API Access

Access your data via REST API

Access your analytics data programmatically with the PureStats REST API. Perfect for building custom dashboards, reports, or integrations.

Authentication

All API requests require authentication using an API key. Generate your API key from your site settings.

curl -X GET "https://purestats.io/api/stats?site=yourdomain.com" \
  -H "Authorization: Bearer YOUR_API_KEY"

Base URL

All API endpoints are available at:

https://purestats.io/api/

Available Endpoints

Get Site Statistics

Retrieve overall statistics for your site:

GET /api/stats?site=yourdomain.com&period=30d

// Response
{
  "visitors": 12543,
  "pageviews": 35621,
  "bounce_rate": 42.3,
  "visit_duration": 145
}

Parameters

Parameter Description Example
site Your domain (required) example.com
period Time period 7d, 30d, 12mo
date Specific date 2024-01-15

Get Time Series Data

Get data over time for charts:

GET /api/timeseries?site=yourdomain.com&period=7d&metric=visitors

// Response
{
  "labels": ["2024-01-01", "2024-01-02", ...],
  "data": [423, 512, 389, ...]
}

Get Top Pages

Retrieve most visited pages:

GET /api/pages?site=yourdomain.com&period=30d&limit=10

// Response
{
  "pages": [
    {"path": "/", "visitors": 5234, "pageviews": 8921},
    {"path": "/pricing", "visitors": 2341, "pageviews": 3456},
    ...
  ]
}

Get Traffic Sources

See where your visitors come from:

GET /api/sources?site=yourdomain.com&period=30d

// Response
{
  "sources": [
    {"source": "Google", "visitors": 4521},
    {"source": "Direct", "visitors": 3214},
    {"source": "Twitter", "visitors": 892},
    ...
  ]
}

Rate Limits

API requests are limited to:

  • 100 requests per minute per API key
  • 10,000 requests per day per API key

Rate limit exceeded: You'll receive a 429 Too Many Requests response. Wait before retrying.

Error Responses

The API returns standard HTTP status codes:

  • 200 - Success
  • 400 - Bad request (missing parameters)
  • 401 - Unauthorized (invalid API key)
  • 404 - Site not found
  • 429 - Rate limit exceeded
  • 500 - Server error

Code Examples

JavaScript (fetch)

const response = await fetch(
  'https://purestats.io/api/stats?site=yourdomain.com&period=7d',
  {
    headers: {
      'Authorization': 'Bearer YOUR_API_KEY'
    }
  }
)
const data = await response.json()
console.log(data)

Python

import requests

response = requests.get(
    'https://purestats.io/api/stats',
    params={'site': 'yourdomain.com', 'period': '7d'},
    headers={'Authorization': 'Bearer YOUR_API_KEY'}
)
data = response.json()
print(data)

PHP

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://purestats.io/api/stats?site=yourdomain.com&period=7d');
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer YOUR_API_KEY']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$data = json_decode($response, true);
print_r($data);