Back to articles

Todos REST API Guide

A detailed guide to Todos REST API: create tasks, work with a strict data schema, use search, FIFO, and query parameters.

5 min read

Todos REST API is a simple REST API for creating, reading, updating, and deleting tasks through a predictable data structure.

It works well for first todo apps, learning projects, interview tasks, and practice with interfaces where the data has to follow a fixed schema.

The API is useful when you want to practice with a clear task structure instead of arbitrary JSON: title, status, and description.

Each response follows the JSend format.

Features and limits#

All data in Todos REST API is tied to your account, so the Authorization header is required for every request.

The API supports up to 30 tasks at the same time.

The rate limit is 100 requests per minute.

There are also field length limits:

  • title — up to 190 characters
  • desc — up to 1000 characters

Strict data schema#

You cannot send an arbitrary JSON object here.

Each task has to match a fixed structure:

  • title — task title
  • status — task status
  • desc — task description (optional field)

Available values for status:

  • TODO
  • IN_PROGRESS
  • DONE
  • ARCHIVED

This strict schema makes the API useful for common CRUD interfaces: task lists, kanban boards, status filtering, and validated forms.

How FIFO works#

Todos REST API uses FIFO behavior.

If you add a new task after reaching the 30 item limit, the oldest task is removed automatically and the new one is saved instead.

This makes it easier to test interfaces without manually cleaning up old data.

Create your first task#

To create a task, send a POST request to:

Example request:

Example response:

Where:

  • id — unique task identifier
  • title — task title
  • status — current status
  • desc — task description
  • createdAt — creation time
  • updatedAt — last update time

Get a single task#

If you need one specific task, use its id:

Example request:

Example response:

Get the task list#

To read all available tasks, send a GET request to:

Example request:

Example response:

You can inspect rate limits in the response headers.

Example headers:

Query parameters#

Todos REST API supports query parameters for working with task lists.

They are useful for interfaces with lists, pagination, search, and sorting.

Available parameters:

  • page — page number
  • limit — number of tasks in the response
  • sort — sorting by task id. Available values: ASC and DESC
  • search — search by title and desc

Example request:

Update a task#

To update a task, use a PATCH request:

Unlike creation, updates can include only the fields you want to change.

Example request:

Delete a task#

To delete a task, use a DELETE request:

Example request:

If the deletion is successful, the API returns 204 No Content.

Playground#

Todos REST API includes a built-in Playground where you can quickly create, read, update, and delete tasks directly in the browser.

This is useful for testing validation, checking search behavior, and debugging CRUD flows without a separate client.

Open Todos REST API