129 comments

[ 0.94 ms ] story [ 225 ms ] thread
Very cool site and a good reminder that we need more common/shared infrastructure like that.

One nitpick: why can I not open like KS to API sub-pages in a new tab? Are Hyperlinks unfashionable now?

(This doesn't apply to every API in the list, but) having made the mistake of using a public API (that later went offline) for examples in a book of mine, never again.

These days I keep an API deployed on a subdomain I control.

The possibility of an internet resource disappearing exists regardless of the resource type. Running an API Forwarder that could act as a common target for all your APIs might work. Give it the request, and it passes it on, records success, optionally sends a notification if an endpoint that previously succeeded is now failing.

Add a fancy feature of redirection with format changing to handle replacing dead APIs with new ones transparently.

If anybody makes one of these, they should totally make it a free public API. I'd use it, and I'm not certain if that would just be ironically.

  > Running an API Forwarder that could act as a common target for all your APIs might work.
That just sounds like adding another point of failure into the chain.
I'd say it only makes sense if you control the forwarder.
But it's one that you can fix.
Maybe we can convince IANA to host a simple API, on example.com as well.

  > having made the mistake of using a public API (that later went offline) for examples in a book of mine
Literally a tale as old as time. The Old Testament references a command from God, that is not contained in the Old Testament itself.
That explains Mel Brooks' 5 missing commandments. Where's the undef ref?
Do you have an example for this? Just curious
Not sure which specific example they're referring to, but another example is that, according to tradition, the prophet Isaiah was martyred by placing him inside a hollow tree that was then sawn down. This appears to be referenced by the Apostle Paul in Hebrews 11:37 even though there is no description of Isaiah's death in the Old Testament:

"They were stoned, they were sawn asunder, were tempted, were slain with the sword: they wandered about in sheepskins and goatskins; being destitute, afflicted, tormented;"

Not literally a tale as old as time. Time existed for billions of years before humans.
A tale as old as tales, then.
I’ve seen books reference internet archive.
This is great - bookmarked!
I'm glad to see https://isevenapi.xyz/ made the list.
I Seven API vs is Even API. Can't say I saw it the right way at first.
that makes me want to make an is seven API.
I feel like one of the categories they are missing is 'APIs that can be done in one line of JavaScript"

I'm not saying these shouldn't exist, I think they're pretty funny, but everything in its place.

These come in handy in an instructional context—being able to have a simple predictable API that you can point students at so they can learn how to call an API and process its data.
(comment deleted)
I love their pricing options include larger ranges of numbers, and enterprise class also includes negative numbers. ha ha.

Best part is that 'sign up' links to https://archive.org/donate/

I think their ad placement is even better than their pricing.

API Result:

GET https://api.isevenapi.xyz/api/iseven/6/

{"ad":"Buy isEvenCoin, the hottest new cryptocurrency!","iseven":true}

    {"ad":"Looking for someone to do yard work. Must have a hoolahoop. 760-555-7562","iseven":true}
    {"ad":"FOR SALE - collection of old people call 253-555-7212","iseven":true}
    {"ad":"Auto Repair Service: Free pick-up and delivery. Try us once, you'll never go anywhere again. Email dave57@qotmail.com","iseven":true}

    $ curl https://api.isevenapi.xyz/api/iseven/9999999
    {"error":"Number out of range. Upgrade to isEven API Premium or Enterprise."}

    $ curl https://api.isevenapi.xyz/api/iseven/2e21
    {"error":"what is this I don't even"}
What I really want is isoddapi.xyz.

Just like the npm package, all it should do is call isevenapi.xyz and invert the result.

I'd like to see isfizzbuzz.xyz.

Ideally, before 11:30 AM ET this Friday.

so many coding interviews will change forever
The error response telling me to upgrade to a paid plan isn't in json.

Also, I broke something, maybe in the caching logic. I tried 99999999 then 999999 then 99999 and down, and now I'm currently getting.

    ~$ curl https://api.isfizzbuzz.xyz/api/9
    Invalid number. Please upgrade to a paid plan to use imaginary, non-real, or non-numeric numbers.
also fails on 8.
Whoops, fixed and fixed! And regression tests added.

I had made a silly, silly mistake when I went to restrict numbers longer than 7 digits from the "free plan", I had at the same time disallowed digits larger than 7 as being "valid digits", so anything with an 8 or a 9 had been "invalid".

Putting the 'micro' into microservices one bit of logic at-a-time :)
And then isevenapi.xyz should call isoddapi.xyz and invert the result to offload all the work to them.
(comment deleted)
It was the first one I searched for. What a silly tool: Parity as a Service.
But what do I do if I need to know if a number is odd?
> If a number isn't even, you can easily tell that it's odd.
Yeah that's a hole in the market, I'm stealing it
(comment deleted)
Paraphrasing a known saying, "there's no API, it's just someone else's computer".

I wish programmers would internalize this. They often seem to take APIs uncritically, not questioning whose resources they're using and where does the data come from as well as its quality beyond obvious cases. APIs are leaky abstractions as all abstractions are.

API doesn't mean someone's else's computer.
But all the APIs in this collection of free public APIs are on someone else's computer.

Hence testing them daily to see if the someone else is still offering them.

APIs can be hosted locally. In fact, I think most of them are.
> APIs are leaky abstractions as all abstractions are.

Not all abstractions are leaky. Not at all.

Do you have any favorite non-leaky abstractions?
That’s “there’s no cloud”. Of course there are APIs.
> Free IP Geolocation API - lookup any IP address. Provides geolocation data based on the input IPv4/IPv6 address or domain name

Where does one get a geo location for an IP address from?

Whatever happened to programmable web?
Honestly, Web3 is partially it now. If you remove the hype and buzzwords, you are left with a bunch of individually addressable contracts that can all be composed and integrated together seamlessly under a single web frontend.

I remember years ago doing something as simple as getting a coin onto an alt-chain was a 20 step process. Get the gas coin on the target chain, find the right contract address, bridge the assets over, do a bunch of conversions, finally to get the token on the chain I wanted.

These days its a single click. Different tools or companies have sprung up, and while they use the same exact contracts I would have manually interacted with before, they script them all together into one transaction to save time and gas fees. A simple UI to select destination chain and coin and it handles all the swaps, gas, bridging, etc needed.

You don't need permission and a lot of standards have developed to keep things running smooth.

It's not just coins and crypto either. No reason not to develop other things off the chain too.

I've been working on my own PIM (personal information management) suite and using web3 has been amazing. No need to worry about a server or a database. Just deploy my code to the chain and store all my data encrypted on chain as well. The altchains are extremely cheap and this storage is already backed up, replicated, distributed, and can be local with a self-ran node. I will never lose it and I can bootstrap my data from scratch anywhere in the world as long as I can sync the chain or reach an API. I have todo lists, notes, contact management, and more in the pipeline and I've never felt so safe about my infrastructure or data before.

The key here is tested daily. The last time I wanted some sample data api it took me way too long to find one because all the ones that were recommended to me were deprecated. It's really tough to keep a free api up, because there's no incentives. You can't sell ads on it.
> You can't sell ads on it.

Maybe you could! Perhaps a sample data API that creates users like "John Chocolate Oreos," address "100 Pack Street", age 19.99, email "visit<at>oreo.com"

I don’t think Oreo would want to commit ad spend to that—it would perform worse than the display network, and worse than the Outbrain/Taboolas of the world.
I get the feeling arjvik's comment was meant to be sarcasm.
Me likes, however the first API I looked for was not found. USPS address verification
I'm relieved to know the Rick and Morty API is in such good health.
I don't really understand why one would build an HTTP API for this. I can't imagine the database being more than a few megabytes, the whole thing could probably be served as a JSON file.
I assume it's intended to be used in an educational context. Learning how to work with a simple API is more fun that way.
The last category on the left sidebar is "FHGR", which I'm guessing stands for Fachhochschule Graubünden, and indeed under IM2 we find:

> APIs handpicked by the University of Applied Sciences of Grisons for their IM2 JavaScript programming course...

That explains why there’s so many Swiss APIs.
I like this, not only does it let people find the APIs but having a collection like this encourages others to make APIs and to keep them running.

There's not a lot of incentive to create a service if you feel like no-one will ever know about it. I have had a few thoughts for services that I might have developed if I thought anyone would ever see it.

There's probably an argument for sponsorship here as well, not as a vehicle for advertising, but just companies paying for (or supplying resources) to cover the ongoing costs of the service as a public good. I wish I could make something that worked and could put it somewhere and commit zero mindspace to billing, server maintenance etc. and just have it keep running, forever.

An API for polling data would be cool, one can dream
What do you mean?
"Polling" as in "voting", not "polling" as in "fetching". Doh!
Not so much for polling data, but some governments do allow access to coarse election data.

Australia's was enough that the unfortunately complicated math of their election system was repeatable and verifiable (Can't find the post about it, however)

Good point. However, in my experience messing around with choropleth maps, I often find myself resorting to web scraping in the end when I want something more current (opinion polling). Despite this data being seemingly everywhere, and companies often wanting you to use it (with attribution) so they can get advertising for other services, they never seem to have an API.
Polling is a fool's errand, in my experience, since I'd guess a ton of the "how about now?" responses are "nope"

IMHO sitemap.xml and/or ActivityPub are sleeper approaches to helping the sites with the adversarial relationship they have with scrapers. In my experience, there are two schools of thought: play the very expensive game of cat and mouse (expensive for BOTH sides) of trying to verify the human-ness of visitors, or make it so the inevitable bots don't eat up very expensive and valuable resources that can be spent serving actual humans

Imagine how much less nonsense would have to go on if Amazon had ActivityPub that CamelCamelCamel could subscribe to, or similar for Craigslist

I'm not saying "all information wants to be free," so if Amazon wants to focus its energies on hoarding the review content, since that's arguably its moat, fantastic - let the bot and anti-bot people war over that content, instead of arguably factual data found on the product listing pages

Maybe there is a language issue here. In Australia, a full on election is also called a poll. The government electoral commission does the polling, the voters do the voting.

I think you getting confused with opinion polling.

Ah, that's quite possible - since it was a thread about APIs, I interpreted the question as "a way to programmatically await data arrival" - the verb "polling" in API context is repeatedly invoking a status endpoint to ask if new information is available either in absolute terms or in terms of since the last request

I stand by my rant :-D but obviously stand corrected on the question being asked

Regarding APIs, what is a recommend good and free tool, other than Postman, that allows for importing and exporting of saved collections?
I just recently (today) started using Bruno, seems pretty good so far. I like that it has a flat file structure that can be included in a git repo.
less is more get rid of the joke ones
I did a similar deep dive to find all the specifically Music-related APIs that are available a few years ago. I've since moved on to other projects but maybe someone will find it useful / maybe OP can add the entries in my list to FreePublicAPIs.com!

https://docs.sweeting.me/s/music-apis

I'm not OP but I am the dude who made freepublicapis.com. Will check it out for sure, thank you so much!
Great resource, with a nice UI (Love to know how it's built).

Found public resources I always wished existed.

glad to hear it! I built it using nuxtjs and tailwindcss
Anyone know of a decent (doesn't have to be realtime) stock API for stocks? I didn't find any under the finance category besides one crypto related.
for basic high-low-open-close daily data, I like yfinance for daily data and polygon.io for minute by minute data
I think most of these would be better off as files
Tangentially, what APIs do you guys actually pay for? (Personally or through work)
AWS is arguably an API, and I shovel a ton of money their way. Stripe is another one, though that ends with me getting paid, so I guess that technically doesn't count unless I start losing money using it. There's also the APIs backing all the apps I pay for, since I don't talk to them via a webpage. But then, if we look at every web page that hits an API to get a list of items to display, instead of that list coming over on the html itself, that'd be an API, technically. ChatGPT is an API I hit a bunch via non-web browser clients that I pay for.
Algo trading requires expensive APIs that fetch almost realtime bids. There are platforms that provide UPSI as APIs, which these traders use.
This site is very slow when accessed from Asia. And I can't open each card in a new tab. Slow server and/or bad Nuxt implementation?
>And I can't open each card in a new tab.

Design flaw, sadly. Also very annoyed by this.

Not having a free public API for this site is a bit of a joke.
[flagged]
> User remarks about irony of free API list having no free API. > Gets a response dramatically moralising the comment.

The humour of jaded online idealists knows no bounds

Oh, misread it as an expressive "what a joke", rather than a literal "this is a joke"

This is why emojis and "/s" were created

What's the use case?
Examples page for an app that generates an app given any API
a syndication feed would probably suffice
It would never load due to infinite recursion.
No right click -> New tab / Middle click is a killer in 2024.
(comment deleted)