Developer portal

PolicyNumbers API

Read-only JSON endpoints for datasets and series data. API access is rate-limited. Paid plans increase quotas and throughput.

The web interface is free to use. API access is licensed separately.
Read-only v1 Public datasets Simple pagination
API products
Start with public metadata and time-series. Paid plans will add higher limits and richer coverage.
  • Public metadata access
  • Dataset series snapshots
  • Freshness indicators
Access model
Keys are optional today. Provide Authorization: Bearer pk_live_xxx to unlock higher limits later.
Contact us for B2B licensing and bulk data delivery.
Stability
Versioned endpoints under /api/v1. Future versions will be additive.
Endpoints
All responses are JSON.
List datasets
GET /api/v1/datasets
Params: q, category, source, cadence, limit, offset
Dataset detail
GET /api/v1/datasets/<slug>
Includes links, metadata, and freshness.
Dataset series
GET /api/v1/datasets/<slug>/series
Params: limit, direction
Preview JSON
GET /data/<slug>/preview
Used by the UI for sparkline previews.
Quick start
curl "https://api.policynumbers.com/api/v1/datasets?q=inflation&limit=5"
Below is a lightweight OpenAPI stub for easy tooling setup.
OpenAPI stub
openapi: 3.0.3
info:
  title: PolicyNumbers Public API
  version: 1.0.0
servers:
  - url: https://api.policynumbers.com
paths:
  /api/v1/datasets:
    get:
      summary: List datasets
      parameters:
        - in: query
          name: q
          schema: { type: string }
        - in: query
          name: category
          schema: { type: string }
        - in: query
          name: source
          schema: { type: string }
        - in: query
          name: cadence
          schema: { type: string }
        - in: query
          name: limit
          schema: { type: integer, default: 50 }
        - in: query
          name: offset
          schema: { type: integer, default: 0 }
      responses:
        '200':
          description: Dataset list
  /api/v1/datasets/{slug}:
    get:
      summary: Dataset detail
      parameters:
        - in: path
          name: slug
          required: true
          schema: { type: string }
      responses:
        '200':
          description: Dataset detail
  /api/v1/datasets/{slug}/series:
    get:
      summary: Dataset series
      parameters:
        - in: path
          name: slug
          required: true
          schema: { type: string }
        - in: query
          name: limit
          schema: { type: integer, default: 100 }
        - in: query
          name: direction
          schema: { type: string, enum: [latest, earliest] }
      responses:
        '200':
          description: Dataset series
This stub is intentionally minimal and designed for client generation. Auth is optional for now.