JSONPlaceholder logo

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 6 Capabilities 8 Features
DevelopmentTestingPrototypingFake APIOpen SourceREST

APIs

JSONPlaceholder REST API

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....

Capabilities

JSONPlaceholder REST API — Albums

Albums — the JSONPlaceholder photo-album surface. 7 operations. Lead operation: List Albums. Self-contained Naftiko capability covering one JSONPlaceholder business surface.

Run with Naftiko

JSONPlaceholder REST API — Comments

Comments — the JSONPlaceholder comments surface. 6 operations. Lead operation: List Comments. Self-contained Naftiko capability covering one JSONPlaceholder business surface.

Run with Naftiko

JSONPlaceholder REST API — Photos

Photos — the JSONPlaceholder photos surface (5000 placeholder images grouped into 100 albums). 6 operations. Lead operation: List Photos. Self-contained Naftiko capability cover...

Run with Naftiko

JSONPlaceholder REST API — Posts

Posts — the canonical JSONPlaceholder blog-post surface. 7 operations. Lead operation: List Posts. Self-contained Naftiko capability covering one JSONPlaceholder business surface.

Run with Naftiko

JSONPlaceholder REST API — Todos

Todos — the JSONPlaceholder todo-list surface. 6 operations. Lead operation: List Todos. Self-contained Naftiko capability covering one JSONPlaceholder business surface.

Run with Naftiko

JSONPlaceholder REST API — Users

Users — the JSONPlaceholder users surface (10 sample users with profile, address, and company metadata). 8 operations including nested routes for posts, albums, and todos. Lead ...

Run with Naftiko

Features

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.

Use Cases

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.

Integrations

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.

Solutions

Local Mirror via json-server

For teams that need write persistence or offline development, install json-server, point it at a local db.json, and reproduce JSONPlaceholder routes verbatim.

My JSON Server

typicode operates an additional service (My JSON Server) that turns any GitHub-hosted db.json into a personal hosted fake REST API.

Semantic Vocabularies

Jsonplaceholder Context

9 classes · 26 properties

JSON-LD

API Governance Rules

JSONPlaceholder API Rules

34 rules · 13 errors 18 warnings 3 info

SPECTRAL

Resources

🔗
Website
Website
🚀
GettingStarted
GettingStarted
👥
JSONPlaceholder Source
GitHubRepository
👥
json-server (Engine)
GitHubRepository
👥
lowdb (Storage)
GitHubRepository
👥
GitHubOrganization
GitHubOrganization
📰
Blog
Blog
🔗
PublicAPIsListing
PublicAPIsListing
🔗
Plans
Plans
🔗
RateLimits
RateLimits
🔗
SpectralRules
SpectralRules
🔗
Vocabulary
Vocabulary

Sources

Raw ↑
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
      - type: NaftikoCapability
        url: capabilities/jsonplaceholder-posts.yaml
      - type: NaftikoCapability
        url: capabilities/jsonplaceholder-comments.yaml
      - type: NaftikoCapability
        url: capabilities/jsonplaceholder-albums.yaml
      - type: NaftikoCapability
        url: capabilities/jsonplaceholder-photos.yaml
      - type: NaftikoCapability
        url: capabilities/jsonplaceholder-todos.yaml
      - type: NaftikoCapability
        url: capabilities/jsonplaceholder-users.yaml
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: [email protected]