JSONPlaceholder
JSONPlaceholder is a free, no-auth fake REST API for prototyping, tutorials, and testing. It exposes six relational resources — posts, comments, albums, photos, todos, and users — over six standard REST routes per resource. All write operations (POST, PUT, PATCH, DELETE) are accepted and respond as if successful, but no changes are persisted. The service is built on the open-source json-server engine (also by typicode) and serves billions of requests per month with no rate limits or authentication.
1 APIs
8 Features
DevelopmentTestingPrototypingFake APIOpen SourceREST
Six Relational Resources
Posts, comments, albums, photos, todos, and users with realistic relationships between them (posts belong to users, comments belong to posts, etc.).
Full REST Surface
GET, POST, PUT, PATCH, and DELETE methods are accepted on every resource — write operations simulate success without persisting changes.
Nested Routes
Single-level nested access such as /posts/1/comments, /albums/1/photos, and /users/1/todos for relational queries.
Query Filtering
Basic query-string filtering on any resource field (e.g. /comments?postId=1, /posts?userId=1).
No Authentication
Open to the public — no API keys, OAuth, or signup required. Use it in tutorials, sandboxes, and frontend demos freely.
No Rate Limits
The service does not publish or enforce documented rate limits and routinely serves about three billion requests per month.
CORS Enabled
All origins are allowed, making the service usable directly from browser-based applications without a proxy.
HTTPS Only
Served exclusively over HTTPS for safe inclusion in modern web tutorials and demos.
Frontend Prototyping
Wire up React, Vue, Angular, or Svelte tutorials against a real HTTP endpoint without standing up a backend.
API Client Testing
Exercise HTTP client libraries (fetch, axios, requests, OkHttp) against a stable public REST surface.
Tutorial and Courseware
Power coding tutorials, bootcamp exercises, and conference workshops that need a deterministic JSON API.
Mobile App Demos
Drive iOS and Android sample apps that demonstrate networking, list rendering, and CRUD flows.
Tooling QA
Smoke-test API generators, codegen tools, SDK builders, and OpenAPI tooling against a stable real-world API.
Workshop Sandboxes
Provide a no-signup HTTP API for hands-on workshops where participants cannot wait for credentials.
json-server
The open-source engine that powers JSONPlaceholder — runs the same fake REST API locally with a single command.
lowdb
The tiny local JSON database that json-server uses for storage; ships from the same typicode org.
Postman
Public collections wrap JSONPlaceholder for quick HTTP exploration and learning.
Hoppscotch
Frequently used as the default example endpoint in HTTP clients including Hoppscotch and Insomnia.
MSW (Mock Service Worker)
Often paired with MSW so frontend tests can intercept and stub JSONPlaceholder traffic deterministically.
aid: jsonplaceholder
name: JSONPlaceholder
description: >-
JSONPlaceholder is a free, no-auth fake REST API for prototyping, tutorials, and testing. It exposes six relational
resources — posts, comments, albums, photos, todos, and users — over six standard REST routes per resource. All write
operations (POST, PUT, PATCH, DELETE) are accepted and respond as if successful, but no changes are persisted. The
service is built on the open-source json-server engine (also by typicode) and serves billions of requests per month
with no rate limits or authentication.
url: https://jsonplaceholder.typicode.com
baseURL: https://jsonplaceholder.typicode.com
specificationVersion: '0.20'
created: '2026-05-28'
modified: '2026-05-29'
x-source: public-apis/public-apis
x-category: Development
x-type: opensource
x-tier: 3
x-tier-reason: free-public-prototyping-service-backed-by-open-source
tags:
- Development
- Testing
- Prototyping
- Fake API
- Open Source
- REST
apis:
- name: JSONPlaceholder REST API
description: >-
Free fake REST API surface exposing six relational resources (posts, comments, albums, photos, todos, users).
Supports GET / POST / PUT / PATCH / DELETE plus nested routes (e.g. /posts/1/comments) and basic query-string
filtering (e.g. /comments?postId=1). Write operations are simulated — the service responds with the expected
payload but does not persist changes.
humanURL: https://jsonplaceholder.typicode.com
baseURL: https://jsonplaceholder.typicode.com
tags:
- REST
- Fake API
- Testing
properties:
- type: Documentation
url: https://jsonplaceholder.typicode.com
- type: GettingStarted
url: https://jsonplaceholder.typicode.com/guide/
- type: OpenAPI
url: openapi/jsonplaceholder-openapi.yml
- type: JSONSchema
url: json-schema/jsonplaceholder-post-schema.json
title: Post Schema
- type: JSONSchema
url: json-schema/jsonplaceholder-comment-schema.json
title: Comment Schema
- type: JSONSchema
url: json-schema/jsonplaceholder-album-schema.json
title: Album Schema
- type: JSONSchema
url: json-schema/jsonplaceholder-photo-schema.json
title: Photo Schema
- type: JSONSchema
url: json-schema/jsonplaceholder-todo-schema.json
title: Todo Schema
- type: JSONSchema
url: json-schema/jsonplaceholder-user-schema.json
title: User Schema
- type: JSONStructure
url: json-structure/jsonplaceholder-post-structure.json
title: Post Structure
- type: JSONStructure
url: json-structure/jsonplaceholder-comment-structure.json
title: Comment Structure
- type: JSONStructure
url: json-structure/jsonplaceholder-album-structure.json
title: Album Structure
- type: JSONStructure
url: json-structure/jsonplaceholder-photo-structure.json
title: Photo Structure
- type: JSONStructure
url: json-structure/jsonplaceholder-todo-structure.json
title: Todo Structure
- type: JSONStructure
url: json-structure/jsonplaceholder-user-structure.json
title: User Structure
- type: JSONLD
url: json-ld/jsonplaceholder-context.jsonld
- type: Example
url: examples/jsonplaceholder-post-example.json
title: Post Example
- type: Example
url: examples/jsonplaceholder-comment-example.json
title: Comment Example
- type: Example
url: examples/jsonplaceholder-album-example.json
title: Album Example
- type: Example
url: examples/jsonplaceholder-photo-example.json
title: Photo Example
- type: Example
url: examples/jsonplaceholder-todo-example.json
title: Todo Example
- type: Example
url: examples/jsonplaceholder-user-example.json
title: User Example
common:
- type: Website
url: https://jsonplaceholder.typicode.com
- type: GettingStarted
url: https://jsonplaceholder.typicode.com/guide/
- type: GitHubRepository
url: https://github.com/typicode/jsonplaceholder
title: JSONPlaceholder Source
- type: GitHubRepository
url: https://github.com/typicode/json-server
title: json-server (Engine)
- type: GitHubRepository
url: https://github.com/typicode/lowdb
title: lowdb (Storage)
- type: GitHubOrganization
url: https://github.com/typicode
- type: Blog
url: https://blog.typicode.com
- type: PublicAPIsListing
url: https://github.com/public-apis/public-apis
- type: Plans
url: plans/jsonplaceholder-plans-pricing.yml
- type: RateLimits
url: rate-limits/jsonplaceholder-rate-limits.yml
- type: SpectralRules
url: rules/jsonplaceholder-rules.yml
- type: Vocabulary
url: vocabulary/jsonplaceholder-vocabulary.yml
- type: Features
data:
- name: Six Relational Resources
description: >-
Posts, comments, albums, photos, todos, and users with realistic relationships between them (posts belong to
users, comments belong to posts, etc.).
- name: Full REST Surface
description: >-
GET, POST, PUT, PATCH, and DELETE methods are accepted on every resource — write operations simulate success
without persisting changes.
- name: Nested Routes
description: >-
Single-level nested access such as /posts/1/comments, /albums/1/photos, and /users/1/todos for relational
queries.
- name: Query Filtering
description: Basic query-string filtering on any resource field (e.g. /comments?postId=1, /posts?userId=1).
- name: No Authentication
description: >-
Open to the public — no API keys, OAuth, or signup required. Use it in tutorials, sandboxes, and frontend
demos freely.
- name: No Rate Limits
description: >-
The service does not publish or enforce documented rate limits and routinely serves about three billion
requests per month.
- name: CORS Enabled
description: All origins are allowed, making the service usable directly from browser-based applications without a proxy.
- name: HTTPS Only
description: Served exclusively over HTTPS for safe inclusion in modern web tutorials and demos.
- type: UseCases
data:
- name: Frontend Prototyping
description: Wire up React, Vue, Angular, or Svelte tutorials against a real HTTP endpoint without standing up a backend.
- name: API Client Testing
description: Exercise HTTP client libraries (fetch, axios, requests, OkHttp) against a stable public REST surface.
- name: Tutorial and Courseware
description: Power coding tutorials, bootcamp exercises, and conference workshops that need a deterministic JSON API.
- name: Mobile App Demos
description: Drive iOS and Android sample apps that demonstrate networking, list rendering, and CRUD flows.
- name: Tooling QA
description: Smoke-test API generators, codegen tools, SDK builders, and OpenAPI tooling against a stable real-world API.
- name: Workshop Sandboxes
description: Provide a no-signup HTTP API for hands-on workshops where participants cannot wait for credentials.
- type: Integrations
data:
- name: json-server
description: >-
The open-source engine that powers JSONPlaceholder — runs the same fake REST API locally with a single
command.
- name: lowdb
description: The tiny local JSON database that json-server uses for storage; ships from the same typicode org.
- name: Postman
description: Public collections wrap JSONPlaceholder for quick HTTP exploration and learning.
- name: Hoppscotch
description: Frequently used as the default example endpoint in HTTP clients including Hoppscotch and Insomnia.
- name: MSW (Mock Service Worker)
description: Often paired with MSW so frontend tests can intercept and stub JSONPlaceholder traffic deterministically.
- type: Solutions
data:
- name: Local Mirror via json-server
description: >-
For teams that need write persistence or offline development, install json-server, point it at a local
db.json, and reproduce JSONPlaceholder routes verbatim.
- name: My JSON Server
description: >-
typicode operates an additional service (My JSON Server) that turns any GitHub-hosted db.json into a personal
hosted fake REST API.
maintainers:
- FN: Kin Lane
email: kin@apievangelist.com