Skip to main content

REST API Documentation Example: Requests, Responses, and Errors

Updated 4 min readMarkdown
REST API Documentation Example: Requests, Responses, and Errors

Task API Reference: Create and Retrieve Tasks with REST

This guide describes how a client application can create and retrieve tasks using the fictional Task API.

It covers authentication, request formats, successful responses, common errors, and a few practical integration considerations.

All endpoints and example behavior in this document are illustrative. They are not connected to a live service.

Base URL

https://api.example.com/v1

All endpoints in this guide are relative to this base URL.

Authentication

The example API uses bearer-token authentication.

Include an access token in the Authorization header:

Authorization: Bearer YOUR_ACCESS_TOKEN

Requests without valid authentication may return 401 Unauthorized.

Never place secret API credentials in client-side JavaScript or commit real tokens to a public repository. For production applications, use the authentication flow and token-storage strategy recommended by the actual API provider.

Resource: Task

A task represents a unit of work.

Example task object:

{
  "id": "task_1042",
  "title": "Review the release notes",
  "completed": false,
  "createdAt": "2026-10-15T09:30:00Z"
}
Field Type Description
id String Unique task identifier
title String Task title
completed Boolean Whether the task is complete
createdAt String Creation timestamp in ISO 8601 format

The field names and timestamp format above are part of this illustrative schema.

Create a task

Creates a new task.

Request

POST /tasks
Content-Type: application/json
Authorization: Bearer YOUR_ACCESS_TOKEN

Request body

Field Type Required Description
title String Yes Task title
completed Boolean No Completion status; defaults to false in this example

Example:

{
  "title": "Review the release notes",
  "completed": false
}

cURL example

curl -X POST "https://api.example.com/v1/tasks" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"title":"Review the release notes","completed":false}'

Successful response

A successful creation returns 201 Created.

HTTP/1.1 201 Created
Content-Type: application/json
{
  "id": "task_1042",
  "title": "Review the release notes",
  "completed": false,
  "createdAt": "2026-10-15T09:30:00Z"
}

The server assigns the task identifier and creation timestamp.

Retrieve a task

Returns a single task by its identifier.

Request

GET /tasks/{taskId}
Authorization: Bearer YOUR_ACCESS_TOKEN

Replace {taskId} with the identifier of the task to retrieve.

Example:

curl "https://api.example.com/v1/tasks/task_1042" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"

Successful response

A successful retrieval returns 200 OK and the task object.

{
  "id": "task_1042",
  "title": "Review the release notes",
  "completed": false,
  "createdAt": "2026-10-15T09:30:00Z"
}

Error responses

Clients should handle errors explicitly rather than assuming every request succeeds.

Status Meaning Suggested client action
400 Bad Request The request is invalid Check the request body and parameters
401 Unauthorized Authentication is missing or invalid Check authentication and refresh credentials if supported
404 Not Found The task does not exist Verify the task identifier
429 Too Many Requests The request limit was exceeded Follow any Retry-After header or the provider's retry policy
500 Internal Server Error The server encountered an unexpected error Retry cautiously when appropriate and report persistent failures

These status codes describe the example contract. A real API may use different responses and error formats.

Example error body:

{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "The title field is required."
  }
}

Do not assume all APIs return this error structure. Check the actual provider's documentation before writing error-handling code.

Integration recommendations

Validate input before sending it. Client-side validation improves the user experience, but the server must enforce its own validation rules.

Handle unsuccessful responses. An HTTP request can complete at the network level while returning an error status. Check the response status before treating its body as successful data.

Protect credentials. Never embed private API secrets in frontend bundles.

Make retries deliberate. Retrying every failed request can create duplicate operations or increase load. Follow the API's documented retry and idempotency behavior.

Quick reference

Operation Method Endpoint
Create a task POST /tasks
Retrieve a task GET /tasks/{taskId}

This reference is a starting point for a task-management integration. Before using a real API, confirm its base URL, authentication requirements, request schema, response schema, error format, rate limits, and versioning policy.

About the author

  • I'm a frontend and mobile developer, technical writer, and SEO specialist passionate about making technology easier to understand. I write practical, beginner-friendly articles on JavaScript, React, React Native, web development, APIs, and developer tools. My goal is to turn complex technical concepts into clear explanations, useful tutorials, and well-structured documentation that developers can apply in real projects. Through my writing, I aim to help developers learn, solve problems, and build better digital experiences.

No comments yet. Be the first to comment.

More from this blog