Overview
MangaMade has two developer surfaces. The REST API answers JSON over HTTPS. The MCP server lets AI assistants such as Claude Code, Cursor or VS Code call MangaMade as tools. Both use the same workspace API keys and the same limits, and both are included in Hobby, Creator and Studio.
- REST API
- https://api.mangamade.com/api/v1
- MCP server
- https://api.mangamade.com/api/mcp
Quick start
Choose a plan for your workspace. The free trial does not include API keys.
In Settings, open API keys and create a key. Only admins and the owner can. Copy it: it is shown once.
Call the API with the key as a bearer token:
curl https://api.mangamade.com/api/v1/series \ -H "Authorization: Bearer mm_live_…"
Authentication
Send the key in the Authorization header of every request. A key acts as the person who created it, in the workspace it was created in, and never in another one.
Authorization: Bearer mm_live_…Keys reach series, cast, chapters, pages, generation, exports and credits. Billing, team, account, admin and key management always need a signed-in session and answer session_required to a key.
MangaMade stores only a hash of each key, so a lost key cannot be shown again: revoke it and create another. Keys can expire after 30, 90 or 365 days, or never.
Rate limits
Limits apply per workspace, per minute, across the REST API and MCP: every key of a workspace shares them. An MCP tool call counts as one request.
| Plan | Requests per minute | Expensive per minute |
|---|---|---|
| Hobby | 60 | 10 |
| Creator | 120 | 20 |
| Studio | 300 | 40 |
Expensive requests
These count against both budgets:
- chapter plans
- model sheets
- style references
- panel generation and redraws
- exports
- share links
- translations
Headers
Every key-authenticated response carries:
- RateLimit-Limit
- the budget of the current window
- RateLimit-Remaining
- requests left in the window
- RateLimit-Reset
- seconds until the window resets
- RateLimit-Policy
- the budget and window it applies
RateLimit-Limit: 120
RateLimit-Remaining: 117
RateLimit-Reset: 42
RateLimit-Policy: 120;w=60Past the limit, the API answers 429 rate_limited with a Retry-After header in seconds. Wait that long, then retry.
Errors
Every error is JSON with a code, a readable message and, sometimes, details.
{
"code": "rate_limited",
"message": "Too many requests",
"details": {}
}| Code | Status | Meaning |
|---|---|---|
invalid_api_key | 401 | The key is unknown, revoked or expired. |
api_plan_required | 403 | The workspace has no plan; API access comes with every plan. |
session_required | 403 | The route needs a signed-in session and is not available to keys. |
validation_failed | 400 | The body or the query does not match the schema; details lists the fields. |
insufficient_credits | 402 | The workspace does not have enough credits for this. |
rate_limited | 429 | The per-minute budget is spent; retry after Retry-After seconds. |
Idempotency
Requests that spend credits (style references, model sheets, chapter generation and panel redraws) take an idempotencyKey in the body, 8 to 100 characters. Send the same key when you retry and MangaMade charges once, whatever happened to the first attempt. Use a new key for new work.
curl -X POST https://api.mangamade.com/api/v1/panels/{id}/regenerate \
-H "Authorization: Bearer mm_live_…" \
-H "Content-Type: application/json" \
-d '{"idempotencyKey":"panel-42-retry-1"}'REST endpoints
Paths are relative to the base URL below. Bodies are JSON. Each route accepts and returns the same shapes as the MangaMade app.
Base URL
https://api.mangamade.com/api/v1
Expensive: counts against the expensive budget. Spends credits: takes an idempotencyKey.
Series and styles
| Method | Path | What it does |
|---|---|---|
GET | /style-presets | List the style presets |
GET | /series | List the series of the workspace |
POST | /series | Create a series |
GET | /series/:id | Get a series |
PATCH | /series/:id | Update a series |
DELETE | /series/:id | Delete a series |
POST | /series/:id/style-anchor | Draw or upload the style referenceExpensiveSpends credits |
Cast
| Method | Path | What it does |
|---|---|---|
GET | /series/:seriesId/characters | List the characters of a series |
POST | /series/:seriesId/characters | Create a character |
GET | /characters/:id | Get a character |
PATCH | /characters/:id | Update a character |
DELETE | /characters/:id | Delete a character |
POST | /characters/:id/references | Attach uploaded reference art to a character |
DELETE | /characters/:id/references/:assetId | Remove reference art from a character |
POST | /characters/:id/sheet | Draw or upload a model sheetExpensiveSpends credits |
Uploads
| Method | Path | What it does |
|---|---|---|
POST | /uploads/presign | Get a presigned form to upload an image to storage |
POST | /uploads/complete | Verify an upload and get its key for referenceKeys, uploadKey or a reference |
Chapters
| Method | Path | What it does |
|---|---|---|
GET | /series/:seriesId/chapters | List the chapters of a series |
POST | /series/:seriesId/chapters | Create a chapter |
GET | /chapters/:id | Get a chapter with its script |
PATCH | /chapters/:id | Update a chapter |
DELETE | /chapters/:id | Delete a chapter |
POST | /chapters/:id/plan | Plan the chapter script from its briefExpensive |
PUT | /chapters/:id/script | Replace the script |
POST | /chapters/:id/translate | Create a translated editionExpensive |
Pages and panels
| Method | Path | What it does |
|---|---|---|
GET | /chapters/:id/pages | List the pages of a chapter |
GET | /pages/:id | Get a page with its panels and lettering |
PATCH | /pages/:id/layout | Change the page layout |
PATCH | /pages/:id/lettering | Edit the lettering of a page |
PATCH | /panels/:id | Edit the drawing cues of a panel |
Generation
| Method | Path | What it does |
|---|---|---|
POST | /chapters/:id/estimate | Estimate the credits to draw a chapter |
POST | /chapters/:id/generate | Draw the panels of a chapterExpensiveSpends credits |
GET | /chapters/:id/batches | List the generation batches of a chapter |
POST | /panels/:id/regenerate | Redraw one panelExpensiveSpends credits |
POST | /panels/:id/select | Choose which drawing a panel uses |
Exports and share links
| Method | Path | What it does |
|---|---|---|
POST | /chapters/:id/exports | Start an export (PNG, PDF or CBZ)Expensive |
GET | /chapters/:id/exports | List the exports of a chapter |
GET | /exports/:id | Get an export and its status |
GET | /exports/:id/download | Get the download link of a finished export |
POST | /chapters/:id/share-links | Create a read-only share linkExpensive |
GET | /chapters/:id/share-links | List the share links of a chapter |
DELETE | /share-links/:id | Delete a share link |
Credits
| Method | Path | What it does |
|---|---|---|
GET | /credits | Get the credit balance |
GET | /credits/ledger | List the credit history |
MCP server
The MCP server speaks Streamable HTTP, stateless, with JSON responses. Point any MCP client at the URL below with the same bearer key.
Server URL
https://api.mangamade.com/api/mcp
claude mcp add --transport http mangamade \
https://api.mangamade.com/api/mcp \
--header "Authorization: Bearer mm_live_…"{
"mcpServers": {
"mangamade": {
"url": "https://api.mangamade.com/api/mcp",
"headers": {
"Authorization": "Bearer mm_live_…"
}
}
}
}Tools
- get_account
- The workspace, its plan, credit balance and limits.
- list_style_presets
- The style presets a series can use.
- list_series
- The series of the workspace.
- get_series
- One series with its style and story bible.
- create_series
- Create a series from a title, format, style and premise.
- create_style_anchor
- Draw the style reference of a series, or use an uploaded sample (spends credits).
- list_characters
- The cast of a series.
- create_character
- Add a character to a series.
- generate_character_sheet
- Draw a character’s model sheet (spends credits).
- list_chapters
- The chapters of a series.
- create_chapter
- Create a chapter from a brief.
- get_chapter
- One chapter with its script and status.
- plan_chapter
- Write the chapter script from its brief.
- get_chapter_pages
- The pages and panels of a chapter.
- estimate_generation
- What drawing a chapter will cost, in credits.
- generate_chapter
- Draw the panels of a chapter (spends credits).
- list_generation_batches
- The progress of a chapter’s drawing batches.
- create_export
- Export a chapter as PNG, PDF or CBZ, wait for the file and return its download link.
- get_export
- The status and download link of an export.
For language models
A plain-text summary of MangaMade, including this page, is published for assistants and answer engines.