Skip to content
jsonforge.app

API JSON Placeholder

Una API REST falsa, gratuita y en vivo con 20 recursos relacionados (users, posts, orders y más) a la que puedes hacer fetch() desde tu propio código.

GET api.jsonforge.app/placeholder/users/1

Request

Loading editor…

Endpoints

ResourceRelationExample
users— (root)api.jsonforge.app/placeholder/users
postsuserId → usersapi.jsonforge.app/placeholder/posts
commentspostId → postsapi.jsonforge.app/placeholder/comments
todosuserId → usersapi.jsonforge.app/placeholder/todos
albumsuserId → usersapi.jsonforge.app/placeholder/albums
photosalbumId → albumsapi.jsonforge.app/placeholder/photos
categories— (root)api.jsonforge.app/placeholder/categories
productscategoryId → categoriesapi.jsonforge.app/placeholder/products
cartsuserId → usersapi.jsonforge.app/placeholder/carts
orderscustomerId → customersapi.jsonforge.app/placeholder/orders
customers— (root)api.jsonforge.app/placeholder/customers
reviewsproductId → products, userId → usersapi.jsonforge.app/placeholder/reviews
roles— (root)api.jsonforge.app/placeholder/roles
permissions— (root)api.jsonforge.app/placeholder/permissions
notificationsuserId → usersapi.jsonforge.app/placeholder/notifications
conversations— (root)api.jsonforge.app/placeholder/conversations
messagesconversationId → conversations, senderId → usersapi.jsonforge.app/placeholder/messages
filesownerId → usersapi.jsonforge.app/placeholder/files
invoicescustomerId → customersapi.jsonforge.app/placeholder/invoices
transactionsinvoiceId → invoicesapi.jsonforge.app/placeholder/transactions

¿Qué es API JSON Placeholder?

JSON Placeholder API es una API REST falsa, gratuita y en vivo a la que puedes hacer fetch() desde tu propio código sin escribir un backend. Es accesible en la URL corta api.jsonforge.app (o bajo /api/placeholder en el dominio principal — ambas funcionan idénticamente) y sirve 20 recursos realistas y relacionados (users, posts, comments, todos, albums, photos, products, categories, carts, orders, customers, reviews, roles, permissions, notifications, conversations, messages, files, invoices y transactions), cada uno con decenas o cientos de registros deterministas y referencias cruzadas entre ellos (un post tiene un userId, un comment tiene un postId, etc.), de modo que obtienes datos de muestra genuinamente anidados y de aspecto relacional en lugar de un puñado de filas planas. Cada endpoint soporta GET, POST, PUT, PATCH y DELETE, y las respuestas incluyen siempre cabeceras CORS permisivas para que puedas llamarla directamente desde un proyecto en el navegador, un CodeSandbox o un ejercicio de un curso. Las operaciones de escritura se simulan: validan tu petición y devuelven una respuesta realista, pero nunca se guarda nada.

Cómo usar API JSON Placeholder

  1. Abre el explorador de abajo, elige un recurso (p. ej. users o posts) y, opcionalmente, un id.
  2. Elige un método HTTP — GET funciona con o sin id; POST/PUT/PATCH/DELETE necesitan uno donde la API lo espera (PUT/PATCH/DELETE necesitan id, POST no).
  3. Para POST/PUT/PATCH, edita el cuerpo JSON de la petición y pulsa "Probar" para enviar una petición real a esta API y ver la respuesta en vivo.
  4. Copia el snippet curl o fetch() generado y suéltalo directamente en tu proyecto — la URL y el método ya están rellenados con lo que acabas de probar.

Ejemplos

Listar todos los posts del usuario 1

Entrada

GET https://api.jsonforge.app/placeholder/posts?userId=1

Salida

[ { "id": 3, "userId": 1, "title": "...", "body": "..." }, { "id": 17, "userId": 1, "title": "...", "body": "..." } ]

Ruta anidada: comentarios de un post concreto

Entrada

GET https://api.jsonforge.app/placeholder/posts/1/comments

Salida

[ { "id": 5, "postId": 1, "name": "...", "email": "...", "body": "..." } ]

Creación simulada (no se persiste)

Entrada

POST https://api.jsonforge.app/placeholder/posts Body: {"title": "Hello", "userId": 1}

Salida

{ "id": 151, "title": "Hello", "userId": 1 }

Errores comunes

  • Asumir que un POST/PUT/PATCH/DELETE persiste — comprobarlo con un GET posterior y confundirse cuando no refleja el cambio. Aquí no se almacena nada; consulta las preguntas frecuentes.
  • Probar /orders/1/items o /carts/1/items esperando una respuesta de ruta anidada — los items de carts y orders son campos incrustados en el propio registro, no recursos separados, así que no existe ese endpoint (da 404).
  • Asumir que users y customers son la misma identidad — son deliberadamente separados: users es la identidad detrás de posts/comments/todos/messages/notifications/files, mientras que customers es la identidad del lado de comercio detrás de orders/invoices.

Por qué usar esta herramienta

  • 20 recursos realistas con referencias cruzadas, claves foráneas reales y rutas anidadas — no solo un puñado de arrays planos y desconectados.
  • Completamente determinista: el mismo id devuelve siempre el mismo registro, así que puedes montar una demo sobre ids concretos y seguirá funcionando.
  • Sin registro, sin clave de API, sin quebraderos de cabeza con límites de peticiones — CORS está abierto por defecto, así que funciona desde cualquier proyecto de navegador de inmediato.

Preguntas frecuentes