DEN DEN MUSHI API

⚓ One Piece Knowledge · REST API · v1 ⚓

Access the Grand Line Archives programmatically. Characters, chapters, episodes, bounties, Devil Fruits and more — all from the One Piece dataset.

Free · 3 req/day API Key Required JSON v1
BASE URL https://dendenmushi.space/v1

⚡ Rate Limits

Rate limits are applied per IP address. Response headers tell you your current usage.

TierRequests/dayAuthCost
🟢 Free3API KeyFree forever
🔵 Basic (coming soon)1,000API KeyComing soon
🟡 Pro (coming soon)10,000API KeyComing soon

Limits reset daily at midnight UTC. Every response includes X-RateLimit-* headers.

⚓ GET FREE API KEY 🗝 DASHBOARD

Response Headers

X-RateLimit-LimitYour daily request limit
X-RateLimit-UsedRequests used today
X-RateLimit-RemainingRequests left today
X-RateLimit-ResetWhen your limit resets (UTC)

Endpoints

👤 Characters

GET /v1/character/{name} Full character page

Returns the full page for a character including all sections. Name is case-insensitive and accepts spaces or underscores.

ParamTypeDescription
namepathCharacter name e.g. Nami, roronoa_zoro
fieldsoptionalqueryComma-separated fields to return e.g. ?fields=title,sections
# Request
GET /v1/character/Nami

# Response
{
  "source_id": "Nami",
  "title":     "Nami",
  "type":      "character",
  "page_id":   1584,
  "sections": {
    "Bounty":     "366,000,000 berries",
    "Appearance": "Nami is a slim young woman...",
    "Personality": "..."
  },
  "content": "66,000,000 16,000,000\nBounty: 366,000,000 berries\n..."
}
GET /v1/character/{name}/bounty Bounty only

Returns only the bounty information for a character.

# Request
GET /v1/character/Roronoa_Zoro/bounty

# Response
{
  "character": "Roronoa_Zoro",
  "bounty":    "1,111,000,000 berries",
  "all_bounties_raw": null
}
GET /v1/character/{name}/section/{section} Single section

Returns a specific section of a character page. Section names are case-insensitive.

GET /v1/character/Luffy/section/abilities-and-powers
GET /v1/character/Shanks/section/bounty

📖 Chapters & Episodes

GET /v1/chapter/{number} Chapter summary

Returns the summary page for a chapter. Covers chapters 1–1185.

GET /v1/chapter/1000
GET /v1/episode/{number} Episode summary

Returns the summary page for an episode. Covers episodes 1–1031.

GET /v1/episode/1015

🔍 Search

GET /v1/search Search all pages

Search pages by keyword across title and source_id. Optionally filter by type.

ParamTypeDescription
qquerySearch keyword (min 2 chars)
typeoptionalquerycharacter, chapter, episode, arc
limitoptionalqueryMax results, default 10, max 20
GET /v1/search?q=zoro&type=character
GET /v1/search?q=marineford&limit=5

🎲 Random

GET /v1/random Random page

Returns a random page. Optionally filter by type.

GET /v1/random
GET /v1/random?type=character
GET /v1/types Available types & counts
GET /v1/types

# Response
{
  "types": {
    "character": ...,
    "chapter":   ...,
    "episode":   ...,
    "group":     ...
  },
  "total": ...
}

Code Examples

Replace YOUR_API_KEY with your key from the dashboard.

# Get character info
curl -H "X-API-Key: YOUR_API_KEY" \
  https://api.dendenmushi.space/v1/character/Roronoa_Zoro

# Get bounty only
curl -H "X-API-Key: YOUR_API_KEY" \
  https://api.dendenmushi.space/v1/character/Nami/bounty

# Search
curl -H "X-API-Key: YOUR_API_KEY" \
  "https://api.dendenmushi.space/v1/search?q=zoro&type=character"

# Random character
curl -H "X-API-Key: YOUR_API_KEY" \
  "https://api.dendenmushi.space/v1/random?type=character"

Errors

404 — not_found
The requested character, chapter, or episode does not exist in the dataset.
429 — rate_limit_exceeded
You've hit the daily limit. Check X-RateLimit-Reset for when it resets.
400 — invalid_query
Search query too short or missing required parameters.