# Introduction

{% embed url="<https://www.youtube.com/watch?v=6_wfq76CG6g>" fullWidth="false" %}

Welcome to the Blog API documentation! This API provides functionalities for managing blog posts, users, comments, and likes.

## Base URL

All API endpoints are relative to the following base URL: /api/v1

For example, the user registration endpoint is `/api/v1/auth/register`.

## Overview

* **API Version:** 1.0.0
* **Authentication:** Uses JWT Bearer tokens for access and JWT refresh tokens (via HTTP-only cookies) for session renewal.
* **Authorization:** Role-based access control ('admin', 'user'). Specific roles are required for certain endpoints.
* **Rate Limiting:** Applied globally (60 requests per minute per IP). Exceeding the limit returns a `429 Too Many Requests` error.
* **Input Validation:** Uses `express-validator`. Invalid requests return detailed `400 Bad Request` errors.
* **Content Format:** Primarily JSON (`application/json`). File uploads use `multipart/form-data`.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.blog-api.codewithsadee.com/readme.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
