API

Public read-only REST API. No auth required. Rate limited to 30 req/min.

Overview

Base URLhttps://daosearch.io/api/v1
MCP Serverhttps://daosearch.io/api/mcp

Pagination

Paginated endpoints accept page and an optional limit parameter (1-50) to control how many items are returned per page. When limit is set, pagination metadata adjusts accordingly — for example,?page=2&limit=10 returns items 11-20.

Response Format

Success
{
  "data": { ... },
  "pagination": {
    "page": 1,
    "totalPages": 10,
    "total": 200
  }
}
Error
{
  "error": {
    "code": "NOT_FOUND",
    "message": "Book not found"
  }
}

Books

GET/v1/books

Full library search with filters for genre, word count, status, and more.

Parameters
qstringSearch by title (original or translated)
authorstringFilter by author name
genreintegerFilter by genre ID
subgenreintegerFilter by subgenre ID
sortstring[updated, newest, popularity, qq_score, community_score, word_count, favorites, fans, bookmarks]Sort field (default: updated)
orderstring[asc, desc]Sort order (default: desc)
statusstringFilter by book status
genderstring[male, female]Filter by target audience
minWordsintegerMinimum word count
maxWordsintegerMaximum word count
pageintegerPage number (max 200)
limitintegerItems per page (1-50, default: 50)
Example
curl "https://daosearch.io/api/v1/books?q=example&author=example"
Response
{
  "data": [
    "..."
  ],
  "pagination": {
    "page": 1,
    "totalPages": 10,
    "total": 200
  }
}
GET/v1/books/{id}

Returns full book details including translated metadata and aggregate stats.

Parameters
id*integerBook ID
Example
curl "https://daosearch.io/api/v1/books/161155"
Response
{
  "data": "..."
}
GET/v1/books/{id}/chapters

Paginated list of chapters with translated titles.

Parameters
id*integerBook ID
pageintegerPage number
Example
curl "https://daosearch.io/api/v1/books/161155/chapters?page=1"
Response
{
  "data": [
    "..."
  ],
  "pagination": {
    "page": 1,
    "totalPages": 10,
    "total": 200
  }
}
GET/v1/books/{id}/comments

Qidian user comments on a book, sorted by agree count.

Parameters
id*integerBook ID
pageintegerPage number
Example
curl "https://daosearch.io/api/v1/books/161155/comments?page=1"
Response
{
  "data": [
    "..."
  ],
  "pagination": {
    "page": 1,
    "totalPages": 10,
    "total": 200
  }
}
GET/v1/books/{id}/reviews

Community reviews written by DaoSearch users.

Parameters
id*integerBook ID
pageintegerPage number
Example
curl "https://daosearch.io/api/v1/books/161155/reviews?page=1"
Response
{
  "data": [
    "..."
  ],
  "pagination": {
    "page": 1,
    "totalPages": 10,
    "total": 200
  }
}
GET/v1/books/{id}/tags

Community-voted tags for a book.

Parameters
id*integerBook ID
Example
curl "https://daosearch.io/api/v1/books/161155/tags"
Response
{
  "data": "..."
}
GET/v1/books/{id}/recommendations

Similar books recommended by Qidian for a given book, with stats.

Parameters
id*integerBook ID
Example
curl "https://daosearch.io/api/v1/books/161155/recommendations"
Response
{
  "data": "..."
}

Search

GET/v1/search

Fast autocomplete search returning top 5 matching books.

Parameters
q*stringSearch query (min 2 characters)
Example
curl "https://daosearch.io/api/v1/search?q=example"
Response
{
  "data": "..."
}

Rankings

GET/v1/rankings

Official Qidian chart rankings by gender, type, and cycle.

Parameters
genderstring[male, female, publish]Target audience
typestring[popular, new, free, completed, hall_of_fame, knowledge]Ranking type
cyclestringRanking cycle (e.g. cycle-1 through cycle-5)
genreintegerFilter by genre ID
pageintegerPage number
limitintegerItems per page (1-50, default: 49)
Example
curl "https://daosearch.io/api/v1/rankings?gender=male&type=popular"
Response
{
  "data": [
    "..."
  ],
  "pagination": {
    "page": 1,
    "totalPages": 10,
    "total": 200
  }
}
GET/v1/community-rankings

Rankings based on DaoSearch reader activity, by period.

Parameters
periodstring[daily, weekly, monthly, all-time]Time period
genreintegerFilter by genre ID
pageintegerPage number
limitintegerItems per page (1-50, default: 49)
Example
curl "https://daosearch.io/api/v1/community-rankings?period=all-time&genre=1"
Response
{
  "data": [
    "..."
  ],
  "pagination": {
    "page": 1,
    "totalPages": 10,
    "total": 200
  }
}

Genres

GET/v1/genres

All primary genres that have at least one book.

Example
curl "https://daosearch.io/api/v1/genres"
Response
{
  "data": "..."
}

Booklists

GET/v1/booklists

Curated booklists from Qidian with preview images.

Parameters
sortstring[popular, recent, largest]Sort order
pageintegerPage number
limitintegerItems per page (1-50, default: 49)
Example
curl "https://daosearch.io/api/v1/booklists?sort=popular&page=1"
Response
{
  "data": [
    "..."
  ],
  "pagination": {
    "page": 1,
    "totalPages": 10,
    "total": 200
  }
}
GET/v1/booklists/{id}

Single Qidian booklist with its books.

Parameters
id*integerBooklist ID
pageintegerPage number
Example
curl "https://daosearch.io/api/v1/booklists/161155?page=1"
Response
{
  "data": [
    "..."
  ],
  "pagination": {
    "page": 1,
    "totalPages": 10,
    "total": 200
  }
}

Feed

GET/v1/feed

Global feed of Qidian comments or DaoSearch community activity.

Parameters
typestring[comments, activity]Feed type: 'comments' for Qidian comments, 'activity' for DaoSearch user activity
pageintegerPage number
limitintegerItems per page (1-50, default: 49)
Example
curl "https://daosearch.io/api/v1/feed?type=comments&page=1"
Response
{
  "data": [
    "..."
  ],
  "pagination": {
    "page": 1,
    "totalPages": 10,
    "total": 200
  }
}

Stats

GET/v1/stats

Aggregate statistics about books, chapters, translations, and community data.

Example
curl "https://daosearch.io/api/v1/stats"
Response
{
  "data": "..."
}

AI Integrations

ChatGPT

Custom GPT with access to all DaoSearch endpoints.

Open in ChatGPT
Discord Bot

Slash commands for search, rankings, reviews, and more.

Learn more

MCP Server

DaoSearch exposes an MCP (Model Context Protocol) server for AI agents. It uses the Streamable HTTP transport and provides all 13 tools from the API above.

Claude Desktop Config
{
  "mcpServers": {
    "daosearch": {
      "type": "streamable-http",
      "url": "https://daosearch.io/api/mcp"
    }
  }
}