Our Story

How a truly free API
came to be.

GratisAPI started with a stubborn idea: an API that is genuinely, permanently free โ€” not a free tier waiting to be taken away. Here's how it went.

The idea

We kept running into the same wall. You want a simple list โ€” the chemical elements, country capitals, a random quote โ€” and the "free" API you find wants an account, an API key, a credit card on file "just in case," and a rate limit that trips the moment your side-project gets noticed. The free tier is bait; the real product is your lock-in.

So we set out to build the opposite: reference data about the world, served as plain files, with no keys, no limits, no tracking and no cost โ€” and to make it impossible for a future us to quietly take that away. That second part is why the whole thing is open source under the GPL. If we ever changed our minds, you could simply fork it.

Version one: GitHub Pages

The fastest way to host a pile of static files for free is GitHub Pages. We wrote a small generator that turns curated datasets into JSON, pushed it, pointed a branch at Pages, and โ€” that was it. A real API, live on the internet, for $0. It was the perfect place to prove the concept.

The catch we saw coming

GitHub Pages is generous but not infinite: it publishes a soft bandwidth limit of about 100 GB per month and is intended for modest sites. That's plenty for a hobby project โ€” but an API that gets popular is, by definition, a lot of bandwidth. We didn't want a success to become an outage (or an awkward email from GitHub). A "free forever" API can't live somewhere with a bandwidth ceiling.

Version two: Cloudflare

The fix was Cloudflare Pages. It serves static assets from a global edge network with unlimited bandwidth on the free plan โ€” exactly the shape of the problem we had. Same files, same generator, same clean URLs, but now the site can be hammered as hard as anyone likes without a meter running. GitHub still holds the source of truth; Cloudflare puts it in front of the world. As a bonus, a small _headers file lets us serve every extension-less endpoint as real application/json with permissive CORS.

Where we are now

What's next

The static API answers one question perfectly: "give me this data." The next chapter is a dynamic API โ€” filtering, search, and random endpoints โ€” which needs a little compute at the edge. That introduces the one thing a pile of files never had: a per-request cost. We're planning it carefully and funding it out of pocket (and with donations). The technical page explains the two APIs and their trade-offs, and the cost page shows the (small) numbers.

The technicals โ†’   What it costs โ†’