Simula respuestas de API REST para probar tus aplicaciones, Postman o cualquier cliente HTTP. Endpoints listos para usar con diferentes métodos HTTP y códigos de estado.
Endpoints para GET, POST, PUT y DELETE con simulación de datos reales.
Endpoints protegidos con Bearer token para probar flujos de autenticación.
Prueba diferentes códigos HTTP: 200, 201, 400, 401, 403, 404, 500, etc.
Base URL: http://localhost:3000/api/v1
http://localhost:3000/api/v1/usersObtiene todos los usuarios disponibles
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| id | number | No | ID del usuario específico |
{
"data": [
{
"id": 1,
"name": "Juan Pérez",
"email": "juan@example.com",
"age": 28
}
],
"count": 3,
"message": "Usuarios obtenidos exitosamente"
}http://localhost:3000/api/v1/usersCrea un nuevo usuario
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| name | string | Sí | Nombre completo del usuario |
| string | Sí | Email único del usuario | |
| age | number | No | Edad del usuario |
{
"name": "Juan Pérez",
"email": "juan@example.com",
"age": 28
}{
"data": {
"id": 4,
"name": "Juan Pérez",
"email": "juan@example.com",
"age": 28,
"createdAt": "2024-01-15T10:30:00.000Z"
},
"message": "Usuario creado exitosamente"
}http://localhost:3000/api/v1/usersActualiza un usuario existente
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| id | number | Sí | ID del usuario a actualizar |
| name | string | No | Nuevo nombre |
| string | No | Nuevo email | |
| age | number | No | Nueva edad |
{
"id": 1,
"name": "Juan Pérez Actualizado",
"age": 29
}{
"data": {
"id": 1,
"name": "Juan Pérez Actualizado",
"email": "juan@example.com",
"age": 29,
"updatedAt": "2024-01-15T10:30:00.000Z"
},
"message": "Usuario actualizado exitosamente"
}http://localhost:3000/api/v1/usersElimina un usuario
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| id | number | Sí | ID del usuario a eliminar |
{
"data": {
"id": 1,
"name": "Juan Pérez",
"email": "juan@example.com",
"age": 28
},
"message": "Usuario eliminado exitosamente"
}http://localhost:3000/api/v1/productsObtiene todos los productos con paginación, filtra por categoría o busca por ID
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| id | number | No | ID del producto específico |
| category | string | No | Filtrar por categoría (Electronics, Clothing, Books, Home & Kitchen, Sports) |
| page | number | No | Número de página (default: 1) |
| limit | number | No | Productos por página (default: 10) |
{
"data": [
{
"id": 1,
"name": "Laptop",
"price": 999.99,
"category": "Electronics",
"stock": 15
},
{
"id": 2,
"name": "Mouse",
"price": 29.99,
"category": "Electronics",
"stock": 50
}
],
"pagination": {
"page": 1,
"limit": 10,
"total": 33,
"totalPages": 4,
"hasNextPage": true,
"hasPreviousPage": false
},
"message": "Productos obtenidos exitosamente"
}http://localhost:3000/api/v1/productsCrea un nuevo producto
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| name | string | Sí | Nombre del producto |
| price | number | Sí | Precio del producto |
| category | string | No | Categoría del producto (default: "General") |
| stock | number | No | Cantidad en stock (default: 0) |
{
"name": "Monitor",
"price": 299.99,
"category": "Electronics",
"stock": 20
}{
"data": {
"id": 4,
"name": "Monitor",
"price": 299.99,
"category": "Electronics",
"stock": 20,
"createdAt": "2024-01-15T10:30:00.000Z"
},
"message": "Producto creado exitosamente"
}http://localhost:3000/api/v1/products/{id}Actualiza un producto existente
| Parámetro | Tipo | Descripción |
|---|---|---|
| id | number | ID del producto a actualizar |
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| name | string | No | Nuevo nombre |
| price | number | No | Nuevo precio |
| category | string | No | Nueva categoría |
| stock | number | No | Nuevo stock |
{
"name": "Laptop Pro",
"price": 1299.99,
"stock": 10
}{
"data": {
"id": 1,
"name": "Laptop Pro",
"price": 1299.99,
"category": "Electronics",
"stock": 10,
"updatedAt": "2024-01-15T10:30:00.000Z"
},
"message": "Producto actualizado exitosamente"
}http://localhost:3000/api/v1/products/{id}Elimina un producto
| Parámetro | Tipo | Descripción |
|---|---|---|
| id | number | ID del producto a eliminar |
{
"data": {
"id": 1,
"name": "Laptop",
"price": 999.99,
"category": "Electronics",
"stock": 15
},
"message": "Producto eliminado exitosamente"
}http://localhost:3000/api/v1/ordersObtiene pedidos. Falla intencionalmente las primeras 2 veces para demostrar flujos de reintentos (n8n, etc.)
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| id | number | No | ID del pedido específico |
| reset | string | No | Resetear contador de intentos: ?reset=true |
{
"data": [
{
"id": 1,
"orderNumber": "ORD-2024-001",
"customerName": "Juan Pérez",
"items": [
{
"productId": 1,
"name": "Laptop",
"quantity": 1,
"price": 999.99
}
],
"total": 1059.97,
"status": "completed",
"createdAt": "2024-01-15T10:30:00.000Z"
}
],
"count": 3,
"message": "Pedidos obtenidos exitosamente",
"attempt": 3,
"note": "Este endpoint falla intencionalmente las primeras 2 veces para demostrar flujos de reintentos"
}http://localhost:3000/api/v1/protectedObtiene datos protegidos que requieren autenticación
| Header | Requerido | Descripción |
|---|---|---|
| Authorization | Sí | Bearer token: Bearer demo-token-123 |
{
"data": {
"message": "Acceso autorizado",
"user": {
"id": 1,
"name": "Usuario Demo",
"role": "admin"
},
"timestamp": "2024-01-15T10:30:00.000Z"
},
"message": "Datos protegidos obtenidos exitosamente"
}http://localhost:3000/api/v1/protectedCrea un recurso protegido
| Header | Requerido | Descripción |
|---|---|---|
| Authorization | Sí | Bearer token: Bearer demo-token-123 |
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| title | string | No | Título del recurso |
| description | string | No | Descripción del recurso |
{
"title": "Recurso Protegido",
"description": "Este es un recurso que requiere autenticación"
}{
"data": {
"title": "Recurso Protegido",
"description": "Este es un recurso que requiere autenticación",
"id": 456,
"createdAt": "2024-01-15T10:30:00.000Z",
"createdBy": "Usuario Demo"
},
"message": "Recurso creado exitosamente"
}http://localhost:3000/api/v1/searchRealiza una búsqueda con parámetros de paginación y ordenamiento
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| q | string | Sí | Término de búsqueda |
| limit | number | No | Número de resultados (default: 10) |
| offset | number | No | Desplazamiento para paginación (default: 0) |
| sort | string | No | Ordenamiento: "asc" o "desc" (default: "asc") |
{
"data": [
{
"id": 1,
"title": "Resultado 1",
"description": "Contiene: laptop",
"relevance": 0.95
}
],
"pagination": {
"total": 3,
"limit": 10,
"offset": 0,
"hasMore": false
},
"query": "laptop",
"message": "Búsqueda realizada exitosamente"
}http://localhost:3000/api/v1/statusPrueba diferentes códigos de estado HTTP
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| code | number | No | Código HTTP a probar (200, 201, 400, 401, 403, 404, 409, 500). Default: 200 |
{
"status": 200,
"message": "OK",
"description": "Solicitud exitosa",
"timestamp": "2024-01-15T10:30:00.000Z"
}