JSONPlaceHolder Clone

A free reliable REST API for testing and prototyping. Based entirely on the popular project JSONPlaceHolder

Want to run this locally? Clone the project and use Docker to get started!

Resources

6 resource types with 5 items each. All data is static and read-only.

Posts

5 items

/posts

Comments

5 items

/comments

Albums

5 items

/albums

Photos

5 items

/photos

Todos

5 items

/todos

Users

5 items

/users

Response Schemas

Example JSON response for each resource type.

Post
{
  "id": 1,
  "userId": 1,
  "title": "sunt aut facere repellat",
  "body": "quia et suscipit..."
}
Comment
{
  "id": 1,
  "postId": 1,
  "name": "id labore ex et quam",
  "email": "[email protected]",
  "body": "laudantium enim..."
}
Album
{
  "id": 1,
  "userId": 1,
  "title": "quidem molestiae enim"
}
Photo
{
  "id": 1,
  "albumId": 1,
  "title": "accusamus beatae ad",
  "url": "https://via.placeholder.com/600/92c952",
  "thumbnailUrl": "https://via.placeholder.com/150/92c952"
}
Todo
{
  "id": 1,
  "userId": 1,
  "title": "delectus aut autem",
  "completed": false
}
User
{
  "id": 1,
  "name": "Leanne Graham",
  "username": "Bret",
  "email": "[email protected]",
  "address": { ... },
  "phone": "1-770-736-8031 x56442",
  "website": "hildegard.org",
  "company": { ... }
}

API Routes

Full CRUD operations for all resources. Write operations are mocked and do not persist.

Posts
GET /posts List all posts
GET /posts/:id Get post by ID
GET /posts/:id/comments Get comments for a post
POST /posts Create post
PUT /posts/:id Replace post
PATCH /posts/:id Update post
DELETE /posts/:id Delete post
Comments
GET /comments List all comments
GET /comments/:id Get comment by ID
POST /comments Create comment
PUT /comments/:id Replace comment
PATCH /comments/:id Update comment
DELETE /comments/:id Delete comment
Albums
GET /albums List all albums
GET /albums/:id Get album by ID
GET /albums/:id/photos Get photos for an album
POST /albums Create album
PUT /albums/:id Replace album
PATCH /albums/:id Update album
DELETE /albums/:id Delete album
Photos
GET /photos List all photos
GET /photos/:id Get photo by ID
POST /photos Create photo
PUT /photos/:id Replace photo
PATCH /photos/:id Update photo
DELETE /photos/:id Delete photo
Todos
GET /todos List all todos
GET /todos/:id Get todo by ID
POST /todos Create todo
PUT /todos/:id Replace todo
PATCH /todos/:id Update todo
DELETE /todos/:id Delete todo
Users
GET /users List all users
GET /users/:id Get user by ID
GET /users/:id/posts Get posts by user
GET /users/:id/albums Get albums by user
GET /users/:id/todos Get todos by user
POST /users Create user
PUT /users/:id Replace user
PATCH /users/:id Update user
DELETE /users/:id Delete user

Query Parameters

Filter, paginate, and simulate latency with query parameters.

Filtering

Filter by any field value

/posts?userId=1
/todos?completed=true

Pagination

Paginate with _page and _limit

/posts?_page=1&_limit=10

Delay

Simulate latency in milliseconds

/posts?_delay=2000

Note: All write operations (POST, PUT, PATCH, DELETE) return mocked responses but do not persist data. This API is intended for testing and prototyping only.