DEV Community

Cover image for 11 Free No-Key APIs Your AI Agent Can Use to Read the Web
Alex Spinov
Alex Spinov

Posted on • Originally published at blog.spinov.online

11 Free No-Key APIs Your AI Agent Can Use to Read the Web

An AI agent doesn't need a paid data vendor to read the web. These eleven REST APIs return real data with no API key and no credit card, just a plain HTTP GET. Every one was re-verified with a live curl on July 1, 2026, and the responses below are the actual output, trimmed for length, not paraphrased.

I build tool layers for agents. The plumbing that lets an agent fetch a page, check a fact, or pull a live number before it answers. My last post here was an MCP web-fetch server built for exactly that job. So when I say these eleven work, I mean I re-ran a live curl against every one of them and pasted back what actually came out. I am not claiming each one ran inside my 2,190 production scraper runs. That would be a lie. I'm claiming each returned real data, keyless, when I checked, and that between them they cover most of what an agent needs to ground an answer in something real.

One thing this list is not. It is not the roundup of free LLM inference APIs, the models your agent calls to think. This is the other half: the read-and-ground tool layer, the endpoints an agent calls to fetch. Different keyword, different job. A model reasons; these let it check its reasoning against the world.

Here they are.

1. Jina Reader: any URL as clean Markdown (No key)

Point it at a page and it hands back Markdown an LLM can read, with the nav and ad cruft stripped. This is the single most on-theme entry: it is literally "agent reads a web page."

curl https://r.jina.ai/https://example.com
Enter fullscreen mode Exit fullscreen mode
Title: Example Domain

URL Source: https://example.com/

Warning: This is a cached snapshot of the original page, consider retry with caching opt-out.

Markdown Content:
This domain is for use in documentation examples without needing permission. Avoid use in operations.
Enter fullscreen mode Exit fullscreen mode

Notice the Warning line about a cached snapshot. That is a real field, not decoration, and worth reading in an agent loop before you treat the page as fresh. Keyless and rate-limited on the free tier. A free key raises the limit but is not required to make the call.

2. Microlink: page metadata and preview (No key)

Send a URL, get back structured metadata: title, publisher, language, description, publish date, lead image. Good when the agent needs to know about a link without reading the whole body.

curl "https://api.microlink.io/?url=https://example.com"
Enter fullscreen mode Exit fullscreen mode
{"status":"success","data":{"publisher":"example.com","lang":"en","title":"Example Domain","url":"https://example.com/","date":"2026-06-27T11:26:45.000Z","description":"This domain is for use in documentation examples without needing permission. Avoid use in operations.","image":null,"author":null}}
Enter fullscreen mode Exit fullscreen mode

Free tier is roughly 50 requests a day without a card. Enough to prototype a link-preview or a "what is this page" check, not enough to crawl at scale.

3. Wayback CDX: what a URL looked like before (No key)

The Internet Archive's CDX index returns every snapshot it holds for a URL, with timestamp, HTTP status, and a content digest. This is how an agent answers "what did this page say last year," or notices that a page changed.

curl "http://web.archive.org/cdx/search/cdx?url=example.com&output=json&limit=3"
Enter fullscreen mode Exit fullscreen mode
[["urlkey","timestamp","original","mimetype","statuscode","digest","length"],
["com,example)/","20020120142510","http://example.com:80/","text/html","200","HT2DYGA5UKZCPBSFVCV3JOBXGW2G5UUA","1792"],
["com,example)/","20020328012821","http://www.example.com:80/","text/html","200","UY3I2DT2AMWAY6DECFCFYMT5ZOTFHUCH","481"]]
Enter fullscreen mode Exit fullscreen mode

The first row is a header, every row after it is a capture. Keyless. It can be slow: this call took about 14 seconds when I ran it, so give the agent a real timeout and do not hammer it.

4. Wikipedia REST: a grounded one-paragraph summary (No key)

The page/summary endpoint returns a structured extract of an article: title, short description, first paragraph, thumbnail. This is a cheap way to ground a factual claim before the model asserts it.

curl -A "MyAgent/1.0 (you@example.com)" \
  "https://en.wikipedia.org/api/rest_v1/page/summary/Web_scraping"
Enter fullscreen mode Exit fullscreen mode
{"title":"Web scraping","description":"Method of extracting data from websites","extract":"Web scraping, web harvesting, or web data extraction is data scraping used for extracting data from websites..."}
Enter fullscreen mode Exit fullscreen mode

Keyless, but Wikimedia's policy asks for a descriptive User-Agent with contact info. Send one. A bare default UA is how you get rate-limited or blocked, and it costs you one header to be polite.

5. DuckDuckGo Instant Answer: a fast definition (No key)

Ask a question, get back a short abstract with its source, plus related topics. It is not a full search result page, it is the instant-answer box, which is often exactly the fact you wanted.

curl "https://api.duckduckgo.com/?q=web+scraping&format=json&no_html=1"
Enter fullscreen mode Exit fullscreen mode
{"Heading":"Web scraping","AbstractSource":"Wikipedia","AbstractURL":"https://en.wikipedia.org/wiki/Web_scraping","Abstract":"Web scraping, web harvesting, or web data extraction is data scraping used for extracting data from websites..."}
Enter fullscreen mode Exit fullscreen mode

Keyless. The catch is coverage: many queries return an empty Abstract because there is no instant answer for them. Check for the empty string before you feed it to the model, or you will ground a claim on nothing.

6. Hacker News (Firebase): live posts and comment threads (No key)

The official HN API serves every item, story or comment, as JSON by id, plus lists like topstories. This is a clean feed of what developers are talking about right now.

curl "https://hacker-news.firebaseio.com/v0/item/8863.json"
Enter fullscreen mode Exit fullscreen mode
{"by":"dhouston","descendants":71,"id":8863,"score":104,"title":"My YC app: Dropbox - Throw away your USB drive","type":"story","url":"http://www.getdropbox.com/u/2/screencast.html"}
Enter fullscreen mode Exit fullscreen mode

That id is the original Dropbox launch post, still there, still fetchable. No auth, no key. To read a thread you walk the kids array id by id, which means many small calls, so cache aggressively.

7. GitHub REST (unauthenticated): repo, release, and file metadata (No key)

Hit repos/{owner}/{repo} and get stars, forks, open issues, default branch, license, description. An agent uses this to read the state of a project, check a latest release, or pull a file's raw contents.

curl "https://api.github.com/repos/python/cpython"
Enter fullscreen mode Exit fullscreen mode
{"full_name":"python/cpython","description":"The Python programming language","stargazers_count":73392,"forks_count":34798,"open_issues_count":9438,"language":"Python","default_branch":"main"}
Enter fullscreen mode Exit fullscreen mode

Here is the honest limit, and it bites fast: 60 requests per hour unauthenticated, per IP. When I ran the call the response headers read x-ratelimit-limit: 60 and x-ratelimit-remaining: 56. An agent that polls GitHub in a loop will burn that in a minute. A free token raises it to 5,000/hour, so for anything beyond a spot check, authenticate.

8. Open-Meteo: real weather and forecast (No key)

Give it a latitude and longitude, get current conditions and a forecast. Real numbers for when an agent has to reason about actual weather instead of guessing.

curl "https://api.open-meteo.com/v1/forecast?latitude=52.52&longitude=13.42&current_weather=true"
Enter fullscreen mode Exit fullscreen mode
{"latitude":52.52,"longitude":13.42,"current_weather":{"time":"2026-07-01T01:15","temperature":20.3,"windspeed":6.1,"winddirection":28,"weathercode":3}}
Enter fullscreen mode Exit fullscreen mode

Keyless, and generous. The important caveat is in the license: the free tier is for non-commercial use only. Ship it in a product and you need a paid plan. Fine for a prototype or a personal agent, not for your SaaS.

9. Frankfurter: currency exchange rates from the ECB (No key)

Ask for a rate between two currencies and get the European Central Bank's reference figure. Clean, open-source, and enough for an agent that needs to convert or sanity-check a price.

curl "https://api.frankfurter.dev/v1/latest?base=USD&symbols=EUR"
Enter fullscreen mode Exit fullscreen mode
{"amount":1.0,"base":"USD","date":"2026-06-30","rates":{"EUR":0.87765}}
Enter fullscreen mode Exit fullscreen mode

One live gotcha I hit while writing this: the old api.frankfurter.app host now 301-redirects to api.frankfurter.dev. Same free API, new home. Use the .dev host directly, or follow redirects with curl -L. The rates update once a business day, so do not expect intraday ticks.

10. Open Library: book metadata by title or author (No key)

Search books and get titles, authors, publish years, ISBNs. The fields parameter keeps the payload small, which matters when the response feeds a token budget.

curl "https://openlibrary.org/search.json?q=the+lord+of+the+rings&limit=2&fields=title,author_name"
Enter fullscreen mode Exit fullscreen mode
{"numFound":918,"docs":[
  {"author_name":["J.R.R. Tolkien"],"title":"The Lord of the Rings"},
  {"author_name":["J.R.R. Tolkien"],"title":"The Fellowship of the Ring"}]}
Enter fullscreen mode Exit fullscreen mode

Keyless. Open Library asks you to be reasonable with request volume and to set a real User-Agent, same courtesy as Wikipedia.

11. Openverse: openly-licensed images (No key)

Search Creative Commons and public-domain media. Every result carries its license, so an agent can pick an image it is actually allowed to use, with attribution attached.

curl "https://api.openverse.org/v1/images/?q=cat&page_size=2"
Enter fullscreen mode Exit fullscreen mode
{"result_count":240,"results":[
  {"id":"3d32b0c5-58b3-4e38-b034-cd6c8d674d73","title":"cat in the sun",
   "license":"by","license_version":"2.0","creator":"fidber",
   "url":"https://live.staticflickr.com/7300/11748899763_2dd16da8b4_b.jpg"}]}
Enter fullscreen mode Exit fullscreen mode

The license field is the whole point: by means CC BY, so the agent knows it must credit fidber. Keyless for anonymous use. A free token raises the rate limit, but you can start without one.

The catch

Keyless is not the same as unlimited, and I would rather you learn that from a paragraph than from a 429 in production.

Every one of these has a limit. GitHub gives you 60 requests an hour unauthenticated. Microlink is around 50 a day on the free tier. Open-Meteo is free only for non-commercial use. The rest lean on soft, polite-use expectations rather than hard published caps, which means "keyless" really means "keyless until you abuse it," and then you get throttled or blocked by IP. Send a real User-Agent, cache what you can, and add a timeout, because at least one of these (Wayback) took 14 seconds to answer me.

Free tiers also move. Frankfurter's host changed under me between the analysis for this post and the writing of it. That is exactly why I put "verified July 2026" at the top instead of pretending these are permanent. Before you wire one into anything that matters, run the curl yourself and read the current terms. And for real production load, the honest answer is usually the same: get the free key where one exists to lift the limit, pay the tier when you ship commercially, or self-host the open-source ones (Frankfurter, Open-Meteo, and the Archive tooling are all open). This list is a fast start, not a free lunch.

So: eleven endpoints, no key, no card, real data, checked live. Which keyless API would you add to this list? I keep a running set of these for the tool layer, and the one I keep hearing I'm missing is a good free geocoder that survives real traffic. If you've got one that holds up, drop it in the comments, I read every reply and I'll test it.


Written by Aleksei Spinov. I build web-scraping and agent tool layers, currently 2,190 runs across 32 actors in production. Every API above was re-verified with a live curl (HTTP 200, real response) on July 1, 2026 before publishing; responses are trimmed, not paraphrased. Drafted with an AI assistant, fact-checked and edited by me.

Follow for the next batch of keyless tools I test for the agent tool layer. And tell me the free API you'd add to this list, I'm collecting them.

Top comments (0)