Free REST API for Testing & Prototyping

Real REST API which is ready to handle your HTTP requests for free. Can be used for demo projects, testing, learning or even educating someone else.

✔ Full CRUD Support ✔ CORS Enabled ✔ JWT Authentication ✔ 13 Sample Objects
GET /restful-api/objects/7
// 200 OK
{
  "id": "7",
  "name": "Apple MacBook Pro 16",
  "data": {
    "year": 2019,
    "price": 1849.99,
    "CPU model": "Intel Core i9",
    "Hard disk size": "1 TB"
  }
}

Available Endpoints

All endpoints are prefixed with /restful-api. Click any endpoint below for full documentation.

API Key (for authentication): restful-api-9a8b7c6d5e4f3g2h1i0j
GEThttp://rest-api.cl.getdemo.dev/restful-api/objectsList all objects
Parameters
ParameterTypeRequiredDescription
limitnumberoptionalMaximum number of objects to return
offsetnumberoptionalNumber of objects to skip
idstringoptionalFilter by specific IDs (?id=1&id=2)
Response Body
[
  {
    "id": "1",
    "name": "Google Pixel 6 Pro",
    "data": { "color": "Cloudy White" }
  }
]
GEThttp://rest-api.cl.getdemo.dev/restful-api/objects/{id}Single object
Parameters
ParameterTypeRequiredDescription
idstringrequiredObject ID
Response Body
{
  "id": "7",
  "name": "Apple MacBook Pro 16",
  "data": { "year": 2019, "price": 1849.99 }
}
POSThttp://rest-api.cl.getdemo.dev/restful-api/objectsAdd a new object
Request Body
{
  "name": "Samsung Galaxy S23",
  "data": {
    "price": 799.99,
    "color": "Black"
  }
}
Response Body
{
  "id": "14",
  "name": "Samsung Galaxy S23",
  "data": { /* ... */ },
  "createdAt": "2024-01-15T10:30:00.000Z"
}
PUThttp://rest-api.cl.getdemo.dev/restful-api/objects/{id}Update an object
Parameters
ParameterTypeRequiredDescription
idstringrequiredObject ID
Request Body
{
  "name": "Updated Name",
  "data": {
    "price": 2499.99,
    "color": "Silver"
  }
}
Response Body
{
  "id": "7",
  "name": "Updated Name",
  "data": { /* ... */ },
  "updatedAt": "2024-01-15T10:30:00.000Z"
}
PATCHhttp://rest-api.cl.getdemo.dev/restful-api/objects/{id}Partially update an object
Parameters
ParameterTypeRequiredDescription
idstringrequiredObject ID
Request Body
{
  "name": "Updated Name Only"
}
Response Body
{
  "id": "7",
  "name": "Updated Name Only",
  "data": { /* unchanged */ },
  "updatedAt": "2024-01-15T10:30:00.000Z"
}
DELETEhttp://rest-api.cl.getdemo.dev/restful-api/objects/{id}Delete an object
Parameters
ParameterTypeRequiredDescription
idstringrequiredObject ID
Response Body
{
  "message": "Object with id = 7, has been deleted."
}
GEThttp://rest-api.cl.getdemo.dev/restful-api/collectionsList all collections
Response Body
[
  {
    "collectionName": "products",
    "objectCount": 13
  }
]
GEThttp://rest-api.cl.getdemo.dev/restful-api/collections/{name}/objectsList objects in a collection
Parameters
ParameterTypeRequiredDescription
namestringrequiredCollection name (path)
limitnumberoptionalMaximum objects to return
offsetnumberoptionalNumber of objects to skip
idstringoptionalFilter by specific IDs
Response Body
[
  {
    "id": "1",
    "name": "Google Pixel 6 Pro",
    "data": { ... }
  },
  /* ... */
]
GEThttp://rest-api.cl.getdemo.dev/restful-api/collections/{name}/objects/{id}Single object from a collection
Parameters
ParameterTypeRequiredDescription
namestringrequiredCollection name (path)
idstringrequiredObject ID (path)
Response Body
{
  "id": "7",
  "name": "Apple MacBook Pro 16",
  "data": { ... }
}
POSThttp://rest-api.cl.getdemo.dev/restful-api/collections/{name}/objectsAdd to collection
Parameters
ParameterTypeRequiredDescription
namestringrequiredCollection name (auto-created if not exists)
Request Body
{
  "name": "Samsung Galaxy S23",
  "data": {
    "price": 799.99
  }
}
Response Body
{
  "id": "14",
  "name": "Samsung Galaxy S23",
  "data": { ... },
  "createdAt": "2024-01-15T10:30:00.000Z"
}
PUThttp://rest-api.cl.getdemo.dev/restful-api/collections/{name}/objects/{id}Update object in collection
Parameters
ParameterTypeRequiredDescription
namestringrequiredCollection name (path)
idstringrequiredObject ID (path)
Request Body
{
  "name": "Updated Name",
  "data": { ... }
}
Response Body
{
  "id": "7",
  "name": "Updated Name",
  "data": { ... },
  "updatedAt": "2024-01-15T10:30:00.000Z"
}
PATCHhttp://rest-api.cl.getdemo.dev/restful-api/collections/{name}/objects/{id}Partially update in collection
Parameters
ParameterTypeRequiredDescription
namestringrequiredCollection name (path)
idstringrequiredObject ID (path)
Request Body
{
  "name": "Updated Name Only"
}
Response Body
{
  "id": "7",
  "name": "Updated Name Only",
  "data": { /* unchanged */ },
  "updatedAt": "2024-01-15T10:30:00.000Z"
}
DELETEhttp://rest-api.cl.getdemo.dev/restful-api/collections/{name}/objects/{id}Delete from collection
Parameters
ParameterTypeRequiredDescription
namestringrequiredCollection name (path)
idstringrequiredObject ID (path)
Response Body
{
  "message": "Object with id = 7, has been deleted."
}
POSThttp://rest-api.cl.getdemo.dev/restful-api/registerRegister a new user account
Parameters
ParameterTypeRequiredDescription
expires-innumberoptionalToken lifetime in seconds (default: 3600)
Request Body
{
  "email": "user@example.com",
  "password": "securePassword123",
  "name": "John Doe"
}
Response Body
{
  "token": "eyJhbGciOiJIUzI1NiIs...",
  "tokenType": "Bearer",
  "expiresIn": 3600,
  "user": {
    "id": "1",
    "email": "user@example.com",
    "name": "John Doe"
  }
}
POSThttp://rest-api.cl.getdemo.dev/restful-api/loginAuthenticate an existing user
Parameters
ParameterTypeRequiredDescription
expires-innumberoptionalToken lifetime in seconds (default: 3600)
Request Body
{
  "email": "user@example.com",
  "password": "securePassword123"
}
Response Body
{
  "token": "eyJhbGciOiJIUzI1NiIs...",
  "tokenType": "Bearer",
  "expiresIn": 3600,
  "user": {
    "id": "1",
    "email": "user@example.com",
    "name": "John Doe"
  }
}

Frequently Asked Questions

Find answers to common questions about our REST API service.

What HTTP methods are supported?
All major HTTP methods: GET, POST, PUT, PATCH and DELETE.
Does the API support CORS?
Yes, CORS is enabled for all domains, making it perfect for frontend development.
Can I modify or delete data?
Yes, you can create, update and delete objects. Data is stored in memory and resets when the server restarts.
Is this API free to use?
Yes, this API is completely free to use for testing and prototyping.
What data can I create with POST?
Each object requires a name field and an optional data field. The data field can contain any valid JSON object.
Can I paginate results?
Yes, use ?limit=&offset= query parameters to paginate. Filter by IDs with ?id=1&id=2.