Loading page…
/api/v1/books/by-categoryReturns books by category. Category maps to the book genre field, for example poetry, novel, essay, history, children, or science.
Open this endpoint in the API Explorer.
Import this API into your tooling.
See real implementation patterns.
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| category | query | string | Yes | Book category or genre. |
| page | query | integer | No | Page number. Defaults to 1. |
| limit | query | integer | No | Records per page. Defaults to 20 and maxes at 100. |
curl "https://bdapi4all.vercel.app/api/v1/books/by-category?category=poetry&page=1&limit=20"const response = await fetch("https://bdapi4all.vercel.app/api/v1/books/by-category?category=poetry&page=1&limit=20");
const payload = await response.json();
console.log(payload.data);import requests
response = requests.get("https://bdapi4all.vercel.app/api/v1/books/by-category?category=poetry&page=1&limit=20")
print(response.json()["data"])$response = file_get_contents("https://bdapi4all.vercel.app/api/v1/books/by-category?category=poetry&page=1&limit=20");
$data = json_decode($response, true);
print_r($data["data"]);$response = Http::get("https://bdapi4all.vercel.app/api/v1/books/by-category?category=poetry&page=1&limit=20");
$data = $response->json("data");export default async function Page() {
const res = await fetch("https://bdapi4all.vercel.app/api/v1/books/by-category?category=poetry&page=1&limit=20", { next: { revalidate: 3600 } });
const payload = await res.json();
return <pre>{JSON.stringify(payload.data, null, 2)}</pre>;
}{
"success": true,
"version": "v1",
"timestamp": "2026-06-02T00:00:00.000Z",
"data": [
{
"id": 8,
"title_en": "Bidrohi",
"author_id": 8,
"genre": "poetry",
"language": "bengali"
}
],
"meta": {
"pagination": {
"page": 1,
"limit": 20,
"total": 1,
"total_pages": 1
}
}
}