August 24, 2026 · By YasKad
public-apis/public-apis

public-apis: the collective directory of free public APIs

public-apis/public-apis · 483,096★ · 53,366 forks

A directory of free APIs in a single Markdown file, hand-maintained since 2016, that became the de facto reference for discovering public APIs — and a case study in what happens when a commercial vendor works its way into the curation.


What public-apis is

public-apis is a repository whose product is a single document: README.md (238 KB, 2,189 lines), organized into 51 categories (from Animals and Anime to Weather, through Authentication, Blockchain, Finance, Government, Machine Learning, Security, or Transportation) and 1,706 table entries.

Each entry describes an API with these columns: name (linked to its official documentation), description (100 characters max), Auth (authentication type: OAuth, apiKey, X-Mashape-Key, No, or User-Agent), HTTPS (yes/no), CORS (Yes, No, or Unknown), and “Call this API” (a link to a public Postman collection where one exists). There’s no application code: GitHub classifies the primary language as Python solely because of the validation scripts in scripts/validate/. The license is MIT (c) 2022 public-apis.

The origin: from a personal README to a community standard

The repository was created on March 20, 2016 by Todd Motto (toddmotto), who made the initial commit at 23:49 UTC and merged the first PRs himself. Within 24 hours the list gained NASA, OpenWeatherMap, Transport for London, irail, Deutsche Bahn, Dribbble, Netflix Roulette, iTunes, Spotify, and RandomUser, among others. Its first Hacker News appearance dates to March 21, 2016 (2 points); the real push came in 2017, when a thread reached 270 points.

Dark-mode cyberpunk illustration of a personal README evolving into a community standard: on the left, a small 2016-style terminal window and handwritten notebook glow faintly, while on the right they expand into a vast luminous directory of public APIs. A neon timeline runs across the scene from an early commit point to a modern open-source ecosystem, with abstract milestone nodes representing the first entries, community growth, organization migration, and vendor controversy. Floating holographic API icons emerge from the timeline, including weather, space, transport, music, names, faces, and finance, all rendered as sleek neon symbols rather than logos. Contributor avatars appear as translucent silhouettes merging into the list, emphasizing collective ownership. Dark background, neon cyan and violet lighting, ultra-detailed, cinematic, 8K resolution, no readable text.

Three milestones mark the project’s evolution. In 2018, davemachado (the second-largest contributor with 683 commits) created the official JSON API, davemachado/public-api, in Go, served at api.publicapis.org. In 2019 the project moved to the public-apis organization (created May 28, 2019, with 6,205 followers today and only this one public repository); that same year the first commercial friction appeared: in an HN thread, user brianherbert observed that “the repo owner runs the website sponsoring the list.”

The bigger controversy landed in 2022: on March 11 the APILayer GitHub account pushed three “Update README.md” commits directly to the README; that same day Yann Bertrand (yannbertrand, 79 commits, top 10 of the project) pushed three Revert "Update README.md" commits to undo them. On March 16 and May 18, 2022, APILayer edited the README again, and this time the changes stuck: today’s README opens with an “APILayer Unified Suite is now Live!” section, promotes APILayer’s own products (IPstack, Marketstack, Weatherstack, Aviationstack, Fixer, Zenserp, Screenshotlayer), and the repository’s homepage link is a referral link to apilayer.com carrying UTM parameters. That controversy gave rise to the maintained community fork public-apis-dev/public-apis (today redirected to marcelscruz/public-apis), created May 11, 2022.

Tense, dark-mode cyberpunk scene depicting a commercial vendor injecting sponsored content into a public API directory: a neon corporate stack logo pushes a bright banner into the top of a glowing README document, while amber UTM tracking tags cling to several table rows like tiny circuit parasites. Community maintainers are shown performing revert commits, represented by cyan rewind ribbons, shield icons, and diff panels with green removal lines. A branching timeline splits into two paths: one branch remains polluted with commercial promotion, while the other becomes a clean community fork glowing emerald green. Dramatic neon lighting, dark mode, cyberpunk tech aesthetic, ultra-detailed materials, 8K resolution, no readable text.

Philosophy and principles

CONTRIBUTING.md explicitly states the philosophy: “This API list is not a marketing tool, but a tool to help the community build applications and use free, public APIs quickly and easily.” That statement yields verifiable rules:

  • Real free access: a proposed API must have complete free access or at least a free tier; APIs that depend on buying a device or service are rejected, and PRs identified as marketing attempts aren’t accepted.
  • Manual curation: the README states the list is “manually curated by community members like you and folks working at APILayer” — meaning no scraping or automated generation; every entry goes through a contributor’s human review.
  • Per-entry technical transparency: the Auth, HTTPS, and CORS columns make integration cost visible before opening the documentation; the document notes that without CORS, an API is only usable server-side.
  • Documentation hygiene: alphabetical order per section, a description under 100 characters, one link per PR, PR titles formatted Add Api-name API, squashed commits, no TLD in the name, and the name shouldn’t end in “API.”
  • Continuous verification: CI validates every link in the README daily and on every push or PR.

Conceptual dark-mode cyberpunk scene representing the philosophy of a community-curated free API list: an open-air neon library where contributor figures inspect glowing API cards arranged on transparent shelves. Each card displays abstract icons for free access, HTTPS encryption, CORS compatibility, API keys, OAuth, and no-authentication access. Above the library, a large translucent banner shows a broken megaphone and an open hand, symbolizing that the directory is a community tool rather than a marketing channel. In a dimmed side chamber, commercial vendor megaphones and sponsored banners are contained behind glass, visually separated from the main commons. Human reviewers are shown approving entries with glowing checkmarks, while scraped or automated spam data is rejected as dark static. Ethical, transparent, and collaborative mood, dark mode, cyberpunk tech aesthetic, neon accents, ultra-detailed surfaces, 8K resolution, no readable text.

How it works

The entire content lives in README.md. The “Index” section links to the 51 categories, and each category is an alphabetically sorted table. Of the 1,706 entry links, 26 carry APILayer’s utm_source tracking parameter (including the 11 rows of the promotional “APILayer APIs” table that heads the file).

The repository’s infrastructure is minimal, limited to scripts/ (Python 3.8) and two GitHub Actions workflows: test_of_push_and_pull.yml (on every push or PR to master) validates Markdown formatting, runs a check against the proposed change, and looks for duplicate links; validate_links.yml (scheduled daily at midnight UTC) validates that every README link still responds.

Detailed, dark-mode cyberpunk diagram of a large README file functioning as a luminous control panel: the central panel is a glowing markdown table with abstract columns for API name, description, authentication, HTTPS, CORS, and Postman collection link. Around it, 51 category modules are arranged in a circular index, each rendered as a neon chip with abstract icons for animals, weather, finance, healthcare, gaming, transport, security, and machine learning. A side pipeline shows automated validation workflows: push triggers, pull-request checks, markdown format validation, duplicate link detection, and a daily midnight link checker represented by a clock-like neon orb. Green pulses travel through the pipeline when links pass, while broken links appear as faint red sparks. Precise, technical, and maintainable mood, dark mode, cyberpunk tech aesthetic, ultra-detailed circuitry, 8K resolution, no readable text.

The README also officially links the project’s JSON API (davemachado/public-api, Go, Apache 2.0), whose README documents the base https://api.publicapis.org/ with four public endpoints, no authentication, and CORS support: GET /entries (lists everything, with filters by title, description, auth, https, cors, and category), GET /random (a random entry), GET /categories, and GET /health. A documented detail: for categories with a space and ampersand, the parameter uses only the first word (Science & Math → category=science). That API’s own repository shows no commits since December 8, 2022, and the api.publicapis.org host did not respond in the most recent check, so its current availability remains unconfirmed.

Dark-mode cyberpunk interface for a public JSON API service: four glowing endpoint terminals are arranged in a clean grid, each representing a different operation: list all entries, return a random entry, list categories, and health check. The terminals emit soft cyan, violet, and amber light, with abstract filter chips floating nearby for title, description, authentication, HTTPS, CORS, and category. A transparent data pipeline shows API requests entering from a browser-like client and responses returning as structured JSON packets, with no authentication gate and an open CORS bridge spanning between client and server. A small abstract Go-language badge sits near the service core, suggesting a lightweight backend. One dimmed side node hints at an unverified or offline host, rendered as a quiet warning light rather than an alarm. Technical, elegant, and developer-friendly mood, dark mode, cyberpunk tech aesthetic, neon accents, ultra-detailed, 8K resolution, no readable text.

The ecosystem

Official or same-author companions:

  • davemachado/public-api — the list’s official JSON API, linked from the README itself. 1,683 stars, 181 forks; Go, Apache 2.0; last published December 8, 2022.
  • The public-apis organization (6,205 followers) owns only this repository; there are no sibling repos in the org.
  • toddmotto/public-apis — Todd Motto’s original repository, today a fork of the main project (2,739 stars, 311 forks); it’s the residue of the project’s personal origin.

Community forks and alternatives (verified via the GitHub API on August 21, 2026):

  • marcelscruz/public-apis (formerly public-apis-dev/public-apis) — “A collaborative list of public APIs for developers”; 9,360 stars, 1,023 forks, created May 11, 2022, MIT, homepage publicapis.dev. It’s the marketing-free APILayer fork cited in later community discussions.
  • public-api-lists/public-api-lists — “A curated list of free public APIs — searchable, community-maintained, with a free JSON API”; 15,552 stars, 1,691 forks, created January 5, 2020, MIT, web interface at public-api-lists.github.io.
  • tonnyl/awesome_apis — “A collection of APIs”; 13,081 stars; a general API collection, not limited to free ones.
  • Free-APIs/Free-APIs.github.io — “A collection of free APIs for new and experienced developers”; 1,284 stars.
  • 255kb/stack-on-a-budget — 12,389 stars; adjacent (free-tier services for tight budgets), not an API directory.

Dark-mode cyberpunk network map of an open-source API directory ecosystem: a central repository node with a radiant star icon connects to an official JSON API service, an original personal repository, a community fork, alternative curated API lists, public ranking sites, and third-party client libraries. Each node glows with different intensity to represent stars, forks, and activity, surrounded by abstract metric rings and small contributor silhouettes. A side panel shows a JSON service interface with four abstract route cards for entries, random selection, categories, and health checks, plus filter chips for title, description, authentication, HTTPS, CORS, and category. Data packets travel through transparent pipes, and a CORS handshake is visualized as a neon bridge between client and server. Living open-source constellation mood, dark mode, cyberpunk tech aesthetic, neon accents, ultra-detailed, 8K resolution, no readable text.

Outside GitHub itself, two related projects have no identified repository of their own: freepublicapis.com (“A collection of Free Public APIs for Students and Developers. Tested every single day.”, with a 2024 HN thread that reached 602 points) and apirank.dev (“We crawled and ranked public APIs from the internet,” a Show HN post with 176 points). No official npm/PyPI/crates package exists for the list, since it’s a document, not software.

Official and semi-official status

There’s no formal designation as a standard, nor any marketplace presence; the status is de facto: with 467,497 stars it’s the most-starred API list on GitHub and the canonical link that shows up in tutorials, threads, and podcasts whenever someone asks about “free APIs.”

What does exist is a documented vendor relationship: APILayer (a commercial API provider — IPstack, Weatherstack, Serpstack) participates in curation per the README’s own claim, had direct write access to the file in 2022, the repository’s homepage is a referral link to APILayer, and 26 rows of the list carry its UTM parameter. In practice, APILayer’s products get guaranteed visibility at the top of the niche’s most-consulted list, and the community responded with public reverts and an alternative fork. It’s not an “official status” of a standard, but a de facto commercial relationship between the list and a vendor.

Repo numbers

Measured: August 21, 2026, GitHub API.

MetricValue
Stars467,497
Forks51,560
Real subscribers4,674
Commits5,158
Open issues + PRs1,717
Primary languagePython (validation scripts)
LicenseMIT (c) 2022 public-apis
CreatedMarch 20, 2016
Last pushAugust 19, 2026
Releases / tagsnone

watchers_count mirrors the star count in the API response, so the reported subscriber figure is subscribers_count. open_issues_count includes open change requests, not only issues.

Dark-mode cyberpunk dashboard celebrating the scale of a highly popular open-source repository: holographic gauges, bar charts, and radial charts display abstract metrics for stars, forks, commits, open issues, subscribers, repository size, and recent activity. The main display features a large radiant star counter with stylized digits that glow without becoming legible, emphasizing popularity rather than exact numbers. A small Python script icon hovers beside validation workflow nodes, while an MIT license seal glows as a compact blue emblem. A miniature world map lights up with API endpoint pulses, showing global usage and discovery. The timeline extends from 2016 to the present, with a final recent push marked by a bright green pulse. Authoritative, futuristic, data-rich mood, dark mode, cyberpunk tech aesthetic, neon accents, ultra-detailed panels, 8K resolution, no readable text.

Top contributors by commits: matheusfelipeog (826), davemachado (683), ArindamOSS (292), pawelborkar (150), jbrooksuk (135), marekdano (133), mikestreety (129), toddmotto (99), yannbertrand (79), wesbos (44). One pattern stands out: matheusfelipeog’s hundreds of “Remove X, it’s broken” commits — a streak of 20 removals in a single day is just one example — evidence of ongoing cleanup of dead APIs.

Quick-start guide

Installation and first run

There’s no software to install: the product is a document. Three ways to access it, from lowest to highest control:

  1. Browse: open the repository on GitHub and read the rendered README. The file weighs 238 KB; the browser’s search (Ctrl/Cmd+F) is the natural navigation tool.
  2. Clone locally: git clone the repository and open README.md in whatever viewer suits you, or process it with your own scripts.
  3. Official JSON API (if it responds): curl https://api.publicapis.org/categories and curl "https://api.publicapis.org/entries?category=weather". It requires no authentication and supports CORS.

On first use, pay attention to the Auth and CORS columns — they determine whether the API can be integrated from the browser without a key, and how much effort it’ll take.

Common workflows

  1. Find an API for a specific domain: open the README, locate the category, and read the rows. To filter without browsing, GET /entries?category=weather&auth=No returns only weather APIs with no authentication.
  2. Test before integrating: the “Call this API” column links to public Postman collections; for keyless APIs, a single test request is enough.
  3. Ingest the catalog as data: consume GET /entries (or GET /random) from your own project, or parse the README.md tables if the API is unavailable.
  4. Validate your own project’s link: if contributing, the PR triggers format and link validation, plus the daily midnight-UTC check.

Common pitfalls and fixes

  • The API is listed but goes down or changes contract: CI validates that documentation links respond, not that the endpoint works. The fix is a smoke test against the chosen endpoint before depending on it.
  • “Free” with fine print: many entries are “free up to N requests, then $” — free tiers with a scaling ceiling. Verify the free plan in the official docs before sizing a project around it.
  • CORS: No from the browser: CONTRIBUTING.md warns that without CORS an API is only usable server-side; the fix is a backend proxy or picking an entry with CORS: Yes.
  • Vendor advertising in the list: the header promotes APILayer and 26 rows carry utm_source. For a clean catalog, the community uses the marcelscruz/public-apis fork — same format, no marketing.
  • Depending on api.publicapis.org: that API’s repository has been inactive since December 2022; having a fallback (the README itself or public-api-lists, which offers its own free JSON API) avoids a dead dependency.

Contributing

CONTRIBUTING.md documents a full process: fork the repository, clone it, and connect the upstream; create a branch for the change; add one API per PR, in the section that best fits the service, in alphabetical order, with the exact table format and a description under 100 characters; title the PR Add Api-name API; squash all commits and verify CI passes before requesting review.

Content restrictions: the API must have complete free access or a free tier, must not depend on buying a device or service, must have adequate documentation, and must not be a marketing attempt.

How the community received it

The recovered evidence shows sustained adoption over a decade, a turning point with APILayer’s arrival, and an ecosystem of alternatives.

In the 2017 Hacker News thread (270 points, 23 comments), iDemonix wrote “next time I feel the urge for a side project I know which page to start on”; thedatamonger awarded it “github star of the week award.” In a 2019 thread, brianherbert raised the first verified commercial criticism — “The repo owner runs the website sponsoring the list” — while yllus defended the process as “structured enough — TravisCI tests to ensure a consistent documentation style.”

During the 2022–2023 APILayer controversy, a thread titled “Tell HN: The 226K stars ‘public-APIs’ repo has been ruined by a greedy company” gathered 25 points, with a user linking both the maintained fork (marcelscruz/public-apis) and the public-api-lists alternative. The direct community reply lives in the git history: three reverts by yannbertrand the same day as the APILayer account’s edits.

In 2024, the site freepublicapis.com (“Tested every single day”) gathered 602 points and 122 comments on Hacker News: one user proposed an “API forwarder” as a shared goal that would log endpoint failures, and another summed up the reliability discussion with “API doesn’t mean someone’s else’s computer.”

public-apis versus other proposals

ProposalVerifiable overlapVerifiable difference
public-api-lists/public-api-lists (15,552 ⭐)Curated list of free public APIs, community-maintainedAdds a searchable web interface and its own free JSON API; born in 2020
marcelscruz/public-apis (9,360 ⭐)Same table format; direct fork of the projectNo APILayer marketing; site at publicapis.dev; born out of the 2022 controversy
tonnyl/awesome_apis (13,081 ⭐)Collection of APIsNot limited to free or public APIs
freepublicapis.com (site)Directory of free APIs for students and developersTests the APIs “every single day”; no public repository found
apirank.dev (Show HN, 176 pts)List of public APIsCrawls and ranks APIs from the internet instead of curating by hand

The structural difference isn’t scale but nature: public-apis is a hand-curated Markdown document with integration metadata (Auth/HTTPS/CORS) and CI-driven link validation; its alternatives either add an interface, health testing, or automated ranking.

Use cases and who this repository can help

  • Prototype and side-project developers: discover a free Auth: No API for sample data in minutes, without signing up or reading documentation.
  • Full-stack developers: the CORS and Auth columns show at a glance which APIs can be called directly from the browser; the Postman column lets you test the endpoint without writing code.
  • Students and instructors: the 51 categories work as a map of what exists in public APIs.
  • Data pipeline maintainers: the catalog can be ingested programmatically; the daily link-validation cron is a reusable pattern for watching over your own catalog’s documentation.
  • Teams that need a clean data source: the marcelscruz/public-apis fork offers the same format with no promotional rows or UTM parameters.
  • Open-source ecosystem researchers: a decade of git history, contributors, and HN threads form a documented case of community governance versus vendor capture.

Resources


Note: this article combines the repository’s README and CONTRIBUTING file, the GitHub API, the README’s git history, and Hacker News threads consulted on August 21, 2026. Figures change over time.

Comments