BYTETOOLS

Abacus API

A free, key-free counter API for page hits, downloads and votes. Read a counter without incrementing it, or increment atomically. CountAPI's live replacement.

No API key requiredCORS enabledHTTPSFree tier

Endpoint tested and returned HTTP 200 on 21 Aug 2026

What is the Abacus API?

Abacus is a free hosted counter API. `GET https://abacus.jasoncameron.dev/get/{namespace}/{key}` reads a counter without changing it and returns `{"value": n}`, while `/hit/{namespace}/{key}` increments it atomically and returns the new value. No API key or account is needed.

CountAPI was the standard answer for 'I need a counter and no backend', and its domain no longer resolves at all, which stranded a lot of static sites. Abacus is the drop-in successor with the same mental model: namespaces and keys you invent on the spot, no registration, and an atomic increment that survives concurrent requests.

The distinction between `/hit` and `/get` is the whole API and is worth getting right. `/hit` both increments and returns, so calling it to display a number inflates that number every time the page renders. `/get` is a pure read. Rate limiting is exposed in standard `RateLimit-Policy`, `RateLimit-Remaining` and `RateLimit-Reset` headers, and the observed policy is 30 requests per 10 seconds. Counters are public to anyone who guesses the namespace, so treat them as ornamental, never as billing data.

Quick facts

Base URL
https://abacus.jasoncameron.dev
Authentication
No key for the public endpoints. Namespaces are not secret and anyone who knows the pair can read or increment your counter, so choose an unguessable namespace if that matters.
Rate limit
Observed policy of 30 requests per 10 seconds, reported in `RateLimit-Policy`, `RateLimit-Remaining` and `RateLimit-Reset` headers.
Pricing
Free and open source.
CORS
Enabled — callable directly from browser JavaScript
Official docs
Read the docs

How to use the Abacus API

Every request below was executed against the live API on 21 Aug 2026, and the response shown is the real body it returned — not an illustration.

1. Read a counter without incrementing it

GET https://abacus.jasoncameron.dev/get/test/test

curl
curl 'https://abacus.jasoncameron.dev/get/test/test'
JavaScript (fetch)
const res = await fetch("https://abacus.jasoncameron.dev/get/test/test");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);
Python (requests)
import requests

res = requests.get("https://abacus.jasoncameron.dev/get/test/test", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200
{
  "value": 606
}

Parameters

ParameterTypeRequiredDescription
{namespace}pathRequiredA grouping of your choice, typically your domain. Created implicitly on first use. example.com
{key}pathRequiredThe counter name within the namespace, such as a page slug. homepage
callbackstringOptionalJSONP callback name, for embedding in environments where fetch is unavailable. cb

Response fields

valueinteger
The counter's current value. `/get` returns it unchanged; `/hit` returns the value after incrementing, so the first hit returns 1, not 0.
RateLimit-Policyheader
The active policy, formatted as `30;w=10` meaning 30 requests per 10-second window.
RateLimit-Remaining / RateLimit-Resetheader
Requests left in the window and the Unix timestamp when it resets.

What you can build with the Abacus API

  • Add a view counter to a static site or blog with no backend at all
  • Count downloads of a release asset from a plain HTML page
  • Run a lightweight poll or upvote widget in documentation
  • Track how often a README badge is rendered
  • Prototype a counter feature before building real storage for it

Common errors and how to fix them

404 from /get

The namespace and key pair has never been hit, so no counter exists yet.

Fix: Counters are created by `/hit`, not by `/get`. Treat a 404 as zero, or create the counter deliberately before reading.

429

You exceeded 30 requests in a 10-second window.

Fix: Read `RateLimit-Remaining` and pause until `RateLimit-Reset`. Do not retry immediately in a loop.

Counter climbing faster than expected

You are calling `/hit` to display the value, which increments on every render.

Fix: Use `/hit` once per real event and `/get` everywhere you only want to show the number.

Abacus API — frequently asked questions

Is Abacus a replacement for CountAPI?

In practice yes. CountAPI's host no longer resolves, and Abacus offers the same namespace-and-key model with no signup, plus explicit rate-limit headers that CountAPI never had.

Does reading a counter increase it?

Only if you use `/hit`. `/get` is a pure read and leaves the value untouched, which is the endpoint you want behind a display.

Are my counters private?

No. Anyone who knows or guesses the namespace and key can read and increment them. Use a long random namespace if the number is even slightly sensitive, and never use counters for anything financial.

Can I call it directly from browser JavaScript?

Yes. It returns a permissive CORS header, and a JSONP `callback` parameter is available for older embedding scenarios.

Tools that pair with this API

Alternatives to Abacus API

If Abacus does not fit, these developer & testing apis cover similar ground. Every one was called before publishing, and each links to its own reference page with a working curl command and the response it returned.

APIWhat it doesAuthCORSLast verified
GitHub REST APIGitHub REST API with no key for public data: repository details, users, issues, releases and commits. 60 req/hour unauthenticated, 5,000 with a token.No keyYes19 Aug 2026
JSONPlaceholderFree fake REST API for testing and prototyping. Posts, comments, users and todos with full GET, POST, PUT and DELETE support. No key. Real curl examples.No keyYes19 Aug 2026
Postman EchoPostman Echo reflects your HTTP request back as JSON: headers, body, query params and auth. Free, no key, ideal for debugging clients. Real POST example.No keyNo19 Aug 2026
DummyJSONFree fake REST API with realistic products, users, carts, recipes and auth. Supports search, pagination, sorting and POST. No key. Tested GET and POST examples.No keyYes19 Aug 2026
Anaconda.orgLook up conda packages on Anaconda.org including every version, owner and summary, with no API key. Covers conda-forge and Bioconda. Verified example included.No keyNo21 Aug 2026
APIs.guruAPIs.guru is a free, key-free directory of machine-readable OpenAPI definitions for thousands of public APIs. List providers, fetch specs, tested curl example included.No keyYes21 Aug 2026
All Developer & Testing APIs

Abacus is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 21 Aug 2026; always check the official documentation before relying on this API in production, as terms and limits can change.