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.
JSONPlaceholder publishes 7 API contracts indexed on the APIs.io network, including Albums API, Comments API, Photos API, and 4 more. Tagged areas include Development, Testing, Prototyping, Fake API, and Open Source.
The JSONPlaceholder catalog on APIs.io includes 2 JSON-LD contexts and 2 Spectral governance rulesets.
JSONPlaceholder’s developer surface includes getting-started guide, engineering blog, documentation, pricing, and 18 more developer resources.
25.3/100emerging▬ flatAgent19/100agent awareFront door AI1/6
silent
Heartbeat50/100
alive
open core · MIT
Full breakdown ↓
scored 2026-11-06 · rubric v0.27.0 · Show this score on your site →
Regulatory Posture applies to this provider. Its tags matched the
Horizontal (data, software, accessibility, platform) regime, so
Regulatory Posture carries 15 points of the composite.
If this regime is wrong for your business, say so on your
provider repo — the
applicability map is public and we will correct it.
Create-or-Update Ergonomics applies to this provider. This API accepts writes, so it
carries 10 points of the composite. It is scored from the published contracts
themselves: whether a caller can create-or-update in one call, whether the write accepts a key the caller already
holds, and whether the response says which branch ran. Without that, every write needs a search-and-branch in
front of it, and the first time that check is skipped a duplicate record is created.
Scored against the observed mean rather than raw — a provider at the catalog average is unchanged by this facet,
not penalised by it.
The six quality facets above are damped to 75 points between them,
because the conditional facet above carries the other
25. That is why each facet's contribution is shown against a damped
maximum: raising a quality facet moves the composite by 75% of its nominal
weight, not 100%. The full arithmetic is at apis.io/rating/.
Show this score on your site.
It updates itself when the score changes. Paste this where you link to your API docs:
<a href="https://apis.io/providers/jsonplaceholder/"><img src="https://apis.io/badge/jsonplaceholder/card.svg" alt="JSONPlaceholder on APIs.io — Kin Score by API Evangelist"></a>
Other styles, a README pill and a shields.io endpoint are on the badge page.
Raise your score.
Agent readiness — checks not met, largest first (exact, from this profile):
MCP Server+12 pts — deployment.mode + probe verdict on the mcp/ manifest, not the pointer; an unprobed slug falls back to authorship
Machine-Readable Auth+10 pts — a served openid-configuration/oauth-authorization-server carrying `issuer` (served), else the securitySchemes class in the provider OpenAPIs — bound (mutualTLS, DPoP, Signature) > negotiable (oauth2 authorizationCode/clientCredentials, openIdConnect) > bearer (http bearer, apiKey)
Idempotency+9 pts — OpenAPI mutating operations declare an idempotency key — a header, a request-body property, or a named de-duplication token whose own description says so (verified); else common[].type matches /idempoten/i (documented)
Stable Error Semantics+8 pts — OpenAPI $refs a shared error schema across 4xx/5xx responses (verified), else common[].type includes ErrorCatalog / ErrorCodes / DeclineCodes
A2A Agent Card+8 pts — a2a/-a2a.yml manifest, graded on conformance.grade against A2A 1.0.0
Standards this provider implements or carries. De facto ones are profiled and measured by the API Commons; formal ones come from the standards directory and are linked by the provider's own tags. The evidence column says how each claim was established — not that it was made.
Not yet checked against JSONPlaceholder's own pricing page. Compiled by API Evangelist on 2026-05-29 from jsonplaceholder.typicode.com; confirm before you rely on a figure. A free plan or tier is listed.
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.
aid: jsonplaceholder
deliveryModel:
model: open-core
license: MIT
open_source: true
commercial: true
callable_host: true
label: Open core · an OSS project plus a commercial hosted product
confidence: high
source:
- license
- openapi
- pricing
generated: '2026-08-28'
method: derived
accessModel:
pricing: free
onboarding: open
trial: false
try_now: true
public: true
gated: none
gated_source:
- onboarding
label: Free · Open access
confidence: low
source:
- plans
- security
generated: '2026-11-06'
method: derived
image: https://kinlane-images.s3.amazonaws.com/shared/apis-json/icons/jsonplaceholder.png
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.23'
created: '2026-05-28'
modified: '2026-08-08'
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
tags_raw:
- Development
- Testing
- Prototyping
- Fake API
- Open Source
- REST
- Open-Source
apis:
- aid: jsonplaceholder:jsonplaceholder-albums-api
name: JSONPlaceholder Albums API
description: 100 sample photo albums owned by users
humanURL: https://jsonplaceholder.typicode.com
tags:
- Albums
properties:
- type: OpenAPI
url: openapi/jsonplaceholder-albums-api-openapi.yml
- type: Documentation
url: https://jsonplaceholder.typicode.com
- type: GettingStarted
url: https://jsonplaceholder.typicode.com/guide/
- type: JSONSchema
url: json-schema/jsonplaceholder-post-schema.json
- type: JSONSchema
url: json-schema/jsonplaceholder-comment-schema.json
- type: JSONSchema
url: json-schema/jsonplaceholder-album-schema.json
- type: JSONSchema
url: json-schema/jsonplaceholder-photo-schema.json
- type: JSONSchema
url: json-schema/jsonplaceholder-todo-schema.json
- type: JSONSchema
url: json-schema/jsonplaceholder-user-schema.json
- type: JSONStructure
url: json-structure/jsonplaceholder-post-structure.json
- type: JSONStructure
url: json-structure/jsonplaceholder-comment-structure.json
- type: JSONStructure
url: json-structure/jsonplaceholder-album-structure.json
- type: JSONStructure
url: json-structure/jsonplaceholder-photo-structure.json
- type: JSONStructure
url: json-structure/jsonplaceholder-todo-structure.json
- type: JSONStructure
url: json-structure/jsonplaceholder-user-structure.json
- type: JSONLD
url: json-ld/jsonplaceholder-context.jsonld
- type: Examples
url: examples/jsonplaceholder-post-example.json
- type: Examples
url: examples/jsonplaceholder-comment-example.json
- type: Examples
url: examples/jsonplaceholder-album-example.json
- type: Examples
url: examples/jsonplaceholder-photo-example.json
- type: Examples
url: examples/jsonplaceholder-todo-example.json
- type: Examples
url: examples/jsonplaceholder-user-example.json
- aid: jsonplaceholder:jsonplaceholder-comments-api
name: JSONPlaceholder Comments API
description: 500 sample comments belonging to posts
humanURL: https://jsonplaceholder.typicode.com
tags:
- Comments
properties:
- type: OpenAPI
url: openapi/jsonplaceholder-comments-api-openapi.yml
- type: Documentation
url: https://jsonplaceholder.typicode.com
- type: GettingStarted
url: https://jsonplaceholder.typicode.com/guide/
- type: JSONSchema
url: json-schema/jsonplaceholder-post-schema.json
- type: JSONSchema
url: json-schema/jsonplaceholder-comment-schema.json
- type: JSONSchema
url: json-schema/jsonplaceholder-album-schema.json
- type: JSONSchema
url: json-schema/jsonplaceholder-photo-schema.json
- type: JSONSchema
url: json-schema/jsonplaceholder-todo-schema.json
- type: JSONSchema
url: json-schema/jsonplaceholder-user-schema.json
- type: JSONStructure
url: json-structure/jsonplaceholder-post-structure.json
- type: JSONStructure
url: json-structure/jsonplaceholder-comment-structure.json
- type: JSONStructure
url: json-structure/jsonplaceholder-album-structure.json
- type: JSONStructure
url: json-structure/jsonplaceholder-photo-structure.json
- type: JSONStructure
url: json-structure/jsonplaceholder-todo-structure.json
- type: JSONStructure
url: json-structure/jsonplaceholder-user-structure.json
- type: JSONLD
url: json-ld/jsonplaceholder-context.jsonld
- type: Examples
url: examples/jsonplaceholder-post-example.json
- type: Examples
url: examples/jsonplaceholder-comment-example.json
- type: Examples
url: examples/jsonplaceholder-album-example.json
- type: Examples
url: examples/jsonplaceholder-photo-example.json
- type: Examples
url: examples/jsonplaceholder-todo-example.json
- type: Examples
url: examples/jsonplaceholder-user-example.json
- aid: jsonplaceholder:jsonplaceholder-photos-api
name: JSONPlaceholder Photos API
description: 5000 sample photos belonging to albums
humanURL: https://jsonplaceholder.typicode.com
tags:
- Photos
properties:
- type: OpenAPI
url: openapi/jsonplaceholder-photos-api-openapi.yml
- type: Documentation
url: https://jsonplaceholder.typicode.com
- type: GettingStarted
url: https://jsonplaceholder.typicode.com/guide/
- type: JSONSchema
url: json-schema/jsonplaceholder-post-schema.json
- type: JSONSchema
url: json-schema/jsonplaceholder-comment-schema.json
- type: JSONSchema
url: json-schema/jsonplaceholder-album-schema.json
- type: JSONSchema
url: json-schema/jsonplaceholder-photo-schema.json
- type: JSONSchema
url: json-schema/jsonplaceholder-todo-schema.json
- type: JSONSchema
url: json-schema/jsonplaceholder-user-schema.json
- type: JSONStructure
url: json-structure/jsonplaceholder-post-structure.json
- type: JSONStructure
url: json-structure/jsonplaceholder-comment-structure.json
- type: JSONStructure
url: json-structure/jsonplaceholder-album-structure.json
- type: JSONStructure
url: json-structure/jsonplaceholder-photo-structure.json
- type: JSONStructure
url: json-structure/jsonplaceholder-todo-structure.json
- type: JSONStructure
url: json-structure/jsonplaceholder-user-structure.json
- type: JSONLD
url: json-ld/jsonplaceholder-context.jsonld
- type: Examples
url: examples/jsonplaceholder-post-example.json
- type: Examples
url: examples/jsonplaceholder-comment-example.json
- type: Examples
url: examples/jsonplaceholder-album-example.json
- type: Examples
url: examples/jsonplaceholder-photo-example.json
- type: Examples
url: examples/jsonplaceholder-todo-example.json
- type: Examples
url: examples/jsonplaceholder-user-example.json
- aid: jsonplaceholder:jsonplaceholder-posts-api
name: JSONPlaceholder Posts API
description: 100 sample blog posts owned by users
humanURL: https://jsonplaceholder.typicode.com
tags:
- Posts
properties:
- type: OpenAPI
url: openapi/jsonplaceholder-posts-api-openapi.yml
- type: Documentation
url: https://jsonplaceholder.typicode.com
- type: GettingStarted
url: https://jsonplaceholder.typicode.com/guide/
- type: JSONSchema
url: json-schema/jsonplaceholder-post-schema.json
- type: JSONSchema
url: json-schema/jsonplaceholder-comment-schema.json
- type: JSONSchema
url: json-schema/jsonplaceholder-album-schema.json
- type: JSONSchema
url: json-schema/jsonplaceholder-photo-schema.json
- type: JSONSchema
url: json-schema/jsonplaceholder-todo-schema.json
- type: JSONSchema
url: json-schema/jsonplaceholder-user-schema.json
- type: JSONStructure
url: json-structure/jsonplaceholder-post-structure.json
- type: JSONStructure
url: json-structure/jsonplaceholder-comment-structure.json
- type: JSONStructure
url: json-structure/jsonplaceholder-album-structure.json
- type: JSONStructure
url: json-structure/jsonplaceholder-photo-structure.json
- type: JSONStructure
url: json-structure/jsonplaceholder-todo-structure.json
- type: JSONStructure
url: json-structure/jsonplaceholder-user-structure.json
- type: JSONLD
url: json-ld/jsonplaceholder-context.jsonld
- type: Examples
url: examples/jsonplaceholder-post-example.json
- type: Examples
url: examples/jsonplaceholder-comment-example.json
- type: Examples
url: examples/jsonplaceholder-album-example.json
- type: Examples
url: examples/jsonplaceholder-photo-example.json
- type: Examples
url: examples/jsonplaceholder-todo-example.json
- type: Examples
url: examples/jsonplaceholder-user-example.json
- aid: jsonplaceholder:jsonplaceholder-users-api
name: JSONPlaceholder Users API
description: 10 sample users with profile, address, and company metadata
humanURL: https://jsonplaceholder.typicode.com
tags:
- User
tags_raw:
- Users
properties:
- type: OpenAPI
url: openapi/jsonplaceholder-users-api-openapi.yml
- type: Documentation
url: https://jsonplaceholder.typicode.com
- type: GettingStarted
url: https://jsonplaceholder.typicode.com/guide/
- type: JSONSchema
url: json-schema/jsonplaceholder-post-schema.json
- type: JSONSchema
url: json-schema/jsonplaceholder-comment-schema.json
- type: JSONSchema
url: json-schema/jsonplaceholder-album-schema.json
- type: JSONSchema
url: json-schema/jsonplaceholder-photo-schema.json
- type: JSONSchema
url: json-schema/jsonplaceholder-todo-schema.json
- type: JSONSchema
url: json-schema/jsonplaceholder-user-schema.json
- type: JSONStructure
url: json-structure/jsonplaceholder-post-structure.json
- type: JSONStructure
url: json-structure/jsonplaceholder-comment-structure.json
- type: JSONStructure
url: json-structure/jsonplaceholder-album-structure.json
- type: JSONStructure
url: json-structure/jsonplaceholder-photo-structure.json
- type: JSONStructure
url: json-structure/jsonplaceholder-todo-structure.json
- type: JSONStructure
url: json-structure/jsonplaceholder-user-structure.json
- type: JSONLD
url: json-ld/jsonplaceholder-context.jsonld
- type: Examples
url: examples/jsonplaceholder-post-example.json
- type: Examples
url: examples/jsonplaceholder-comment-example.json
- type: Examples
url: examples/jsonplaceholder-album-example.json
- type: Examples
url: examples/jsonplaceholder-photo-example.json
- type: Examples
url: examples/jsonplaceholder-todo-example.json
- type: Examples
url: examples/jsonplaceholder-user-example.json
- name: JSONPlaceholder
description: Fake data for testing and prototyping
humanURL: http://jsonplaceholder.typicode.com/
tags:
- Test Data
properties:
- type: Documentation
url: http://jsonplaceholder.typicode.com/
- aid: jsonplaceholder:jsonplaceholder-to-dos-api
name: JSONPlaceholder To Dos API
description: 200 sample todo items owned by users
humanURL: https://jsonplaceholder.typicode.com
tags:
- To-Dos
tags_raw:
- To Dos
properties:
- type: OpenAPI
url: openapi/jsonplaceholder-to-dos-api-openapi.yml
- type: Documentation
url: https://jsonplaceholder.typicode.com
- type: GettingStarted
url: https://jsonplaceholder.typicode.com/guide/
- type: JSONSchema
url: json-schema/jsonplaceholder-post-schema.json
- type: JSONSchema
url: json-schema/jsonplaceholder-comment-schema.json
- type: JSONSchema
url: json-schema/jsonplaceholder-album-schema.json
- type: JSONSchema
url: json-schema/jsonplaceholder-photo-schema.json
- type: JSONSchema
url: json-schema/jsonplaceholder-todo-schema.json
- type: JSONSchema
url: json-schema/jsonplaceholder-user-schema.json
- type: JSONStructure
url: json-structure/jsonplaceholder-post-structure.json
- type: JSONStructure
url: json-structure/jsonplaceholder-comment-structure.json
- type: JSONStructure
url: json-structure/jsonplaceholder-album-structure.json
- type: JSONStructure
url: json-structure/jsonplaceholder-photo-structure.json
- type: JSONStructure
url: json-structure/jsonplaceholder-todo-structure.json
- type: JSONStructure
url: json-structure/jsonplaceholder-user-structure.json
- type: JSONLD
url: json-ld/jsonplaceholder-context.jsonld
- type: Examples
url: examples/jsonplaceholder-post-example.json
- type: Examples
url: examples/jsonplaceholder-comment-example.json
- type: Examples
url: examples/jsonplaceholder-album-example.json
- type: Examples
url: examples/jsonplaceholder-photo-example.json
- type: Examples
url: examples/jsonplaceholder-todo-example.json
- type: Examples
url: examples/jsonplaceholder-user-example.json
common:
- type: IssueTracker
url: https://github.com/typicode/jsonplaceholder/issues
- type: License
name: MIT
url: https://github.com/typicode/jsonplaceholder/blob/master/LICENSE
- type: AgenticAccess
url: agentic-access/jsonplaceholder-agentic-access.yml
- type: DomainSecurity
url: security/jsonplaceholder-domain-security.yml
- 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.
- type: Documentation
url: https://jsonplaceholder.typicode.com/guide/
- type: GitHubOrg
url: https://github.com/typicode
- type: Pricing
url: https://jsonplaceholder.typicode.com
- type: X
url: https://x.com/typicode
- type: FinOps
url: finops/jsonplaceholder-finops.yml
- type: Website
url: http://jsonplaceholder.typicode.com/
maintainers:
- FN: Kin Lane
email: kin@apievangelist.com
x-merged-from:
- json-placeholder
JSONPlaceholder API — frequently asked questions
Does JSONPlaceholder have an API?
Yes. APIs.io lists 7 APIs from JSONPlaceholder, including JSONPlaceholder Albums API, JSONPlaceholder Comments API and JSONPlaceholder Photos API, and 4 more.
Is there an OpenAPI specification for the JSONPlaceholder API?
Yes. APIs.io indexes 6 OpenAPI specifications for JSONPlaceholder, each linked for download from this page.
How much does the JSONPlaceholder API cost?
APIs.io lists 1 pricing plan for JSONPlaceholder, with each plan's price, limits and inclusions under Pricing on this page.
Is the JSONPlaceholder API ready for AI agents?
JSONPlaceholder has a Kin Score of 25.3 out of 100 (emerging) and an Agent Readiness score of 19.0 (agent-aware), scored by API Evangelist on 2026-11-06.
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.