open-source · community-built

Real APIs to practice,
build, and ship.

FreeAPI is a hub of production-style endpoints — auth, e-commerce, social, todos, and dozens more — so you can learn API integration on the same patterns you ship to production. No keys. No quotas. Just curl and go.

api online·50+ endpoints·MIT license
GET /usersPOST /todosGET /productsPOST /loginGET /quotesGET /jokesfreeAPIv1 · public
GET/api/v1/public/quotes/random/GET/api/v1/public/randomusers/GET/api/v1/public/randomjokes/GET/api/v1/public/randomproducts/POST/api/v1/users/login/GET/api/v1/ecommerce/categories/POST/api/v1/todos/GET/api/v1/kitchen-sink/http-methods/get/POST/api/v1/social-media/posts/GET/api/v1/public/meals/GET/api/v1/public/dogs/GET/api/v1/public/books/GET/api/v1/public/quotes/random/GET/api/v1/public/randomusers/GET/api/v1/public/randomjokes/GET/api/v1/public/randomproducts/POST/api/v1/users/login/GET/api/v1/ecommerce/categories/POST/api/v1/todos/GET/api/v1/kitchen-sink/http-methods/get/POST/api/v1/social-media/posts/GET/api/v1/public/meals/GET/api/v1/public/dogs/GET/api/v1/public/books/
/explore the surface area

Six lanes. Fifty-plus endpoints.

Each category mirrors a real backend you might build — so the skills carry over the moment you start your own project.

30+ endpoints

Public

Quotes, jokes, meals, books, dogs, random users, products — perfect first calls.

  • GET /public/quotes/random
  • GET /public/meals
  • GET /public/books
8 endpoints

Authentication

Register, login, refresh tokens, OAuth flows. Real JWT behaviour, not a demo.

  • POST /users/register
  • POST /users/login
  • POST /users/refresh-token
20+ endpoints

E-commerce

Carts, products, categories, addresses, orders, coupons — the full transaction loop.

  • GET /ecommerce/products
  • POST /ecommerce/cart/item/:id
  • POST /ecommerce/orders
6 endpoints

Todos

A classic CRUD playground — your first end-to-end app, fully working.

  • GET /todos
  • POST /todos
  • PATCH /todos/:id
15+ endpoints

Social Media

Posts, comments, bookmarks, likes, follows — model a tiny Twitter in a weekend.

  • GET /social-media/posts
  • POST /social-media/comments/post/:id
GET POSTPUT DELETEAll HTTP verbs

Kitchen Sink

GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS — test every client behaviour.

  • GET /kitchen-sink/http-methods/get
  • POST /kitchen-sink/http-methods/post
// how it flows

From fetch to render — the same shape as production.

Every endpoint returns a consistent envelope: a status code, a human-readable message, and a typed data payload. So when you move to your own backend, the contract you learned still holds.

  • Predictable response envelope across all routes
  • Pagination metadata where it matters
  • Real error shapes — 400s, 401s, 404s, 422s
  • Cookie & bearer auth, both supported
your appfetch(url)await resrender(data)api.freeapi.app/quotes/products/login/todosGET /api/v1/public/quotes/random200 OK · application/json
$ try it now

One line away from a live response.

~/freeapi
$ curl 
200 OKapplication/json · 84ms
awaiting request…
No API key. No sign-up. The base URL is https://api.freeapi.app.
/* why developers choose it */

Not a fake API. A real one, free forever.

Built for learning

Mirror the patterns of real production APIs — auth headers, paginated lists, typed errors. The muscle memory transfers.

Community-driven

9.3k+ stars, 1.4k+ forks. PRs welcome. New endpoints, fixes, and docs ship continuously.

Yours to self-host

MIT-licensed. Clone the repo, run it locally with Docker, or deploy to your own infra in minutes.

Documented & tested

Swagger docs, Postman collections, and Playwright integration tests come baked in.

0+
GitHub stars
0+
Forks
0+
Endpoints
0%
Free, always

Build the project
you’ve been putting off.

Pick a category, read three pages of docs, and ship something this weekend. The endpoints are waiting.