Live on api.counters.dev — arbitrary-precision counters as a service

Counters that never overflow.

One API call to increment. Isolated per organization, idempotent by design, with time series down to the minute. Stop hand-rolling counters in your database.

counter: api.requests
,,,,,,
already past 253 — still exact

The primitives

Everything a counter should be

A single-purpose service that does one thing exactly right — so you never write UPDATE t SET n = n + 1 again.

Arbitrary precision

Values are decimal strings end-to-end — never IEEE-754 doubles. Your counter is exact at 10, and exact at 10⁴⁰.

253 + 1 — a JS double reads …993 as …992
,,,,,

Time series built in

Per-bucket deltas from 1-minute to 1-month granularity, with timezone-aware calendar boundaries.

Idempotent writes

Every write takes an Idempotency-Key. Retry as hard as you like; the increment applies exactly once.

Isolated per organization

API keys are scoped to your org. Counters, series, and quotas never cross tenant boundaries.

Batched operations

Coalesce up to 1,000 operations per call. Each carries its own idempotency key, so batches retry safely.

Counters that reset cleanly

clear starts a new epoch instead of destroying data — historical series stay queryable while the live number starts over.

POST /counters/days_since_incident/clearepoch 1 → epoch 2 · value 61 → 0 · history stays queryable

Sixty seconds to first count

One call. That’s the API.

Step 01

Create a key

Sign up, create your org, mint an API key. Keys are scoped to your org — counters never cross tenants.

Step 02

POST /add from anywhere

Your server, your game loop, your CI job. One HTTP call with an idempotency key — retry as hard as you like.

Step 03

Read it everywhere

Exact current value, or per-minute time series. Drop the widgets on any site and watch it move.

increment a counter
curl -X POST https://api.counters.dev/v1/counters/signups/add \
  -H "Authorization: Bearer $COUNTERS_API_KEY" \
  -H "Idempotency-Key: 5f2b7c1e" \
  -d '{ "amount": "1" }'
{ "key": "signups", "value": "48214", "epoch": 1 }

Pricing

Simple, plan-based limits

Every plan gets the same exact counters — bigger plans buy finer granularity, longer retention, and more throughput.

Free

$0forever
  • 3 counters
  • 1-hour granularity
  • 7-day retention
  • 5 rps
  • 100K ops/month
Get started

Starter

$19/month

+ $5 per extra seat

  • 1,000 counters
  • 5-minute granularity
  • 30-day retention
  • 50 rps
  • 10M ops/month
Get started
Most popular

Pro

$79/month

+ $5 per extra seat

  • 5,000 counters
  • 1-minute granularity
  • 90-day retention
  • Raw events retained
  • 500 rps
  • 100M ops/month
Get started

Enterprise

Custom
  • Unlimited counters
  • 1-minute granularity
  • 10-year retention
  • Raw events retained
  • 5,000 rps
  • Unlimited ops
Talk to us

Your first counter is one curl away.

Free plan, no card. Increment something in the next sixty seconds.