Developer API

Integrate OriginManga's library into your website or application. Read-only, open, and completely free.

Sync in Real-Time

When we scrape and update manga chapters, your downstream sites or applications receive updates immediately through the API.

Read-Only Safety

The API is completely secure and read-only. Users can query catalog details but cannot modify databases or write records.

No Key Required

Get started immediately. There is no API key generation required for standard endpoints. Rate limits are handled automatically.

Base API URL

All API requests must be sent as GET requests to the following base URL:

https://originmanga.com/api/public or https://originmanga.xyz/api/publicGET ONLY

Endpoints Documentation

GET/manga
List, search, and filter manga catalog

Query the entire manga library with built-in search filters and pagination.

Query Parameters

ParameterTypeDefaultDescription
querystring-Search term matches title, alt titles, or author.
genrestring-Filter by genres (e.g. Action, Fantasy). Case-insensitive.
statusstring-Filter by publishing status (e.g. ONGOING, COMPLETED).
pagenumber1Page offset.
limitnumber20Manga objects per request (Max: 100).

Example Response

{
  "manga": [
    {
      "id": "e2f073fa-85d8-4f81-a675-10255ebde427",
      "title": "Solo Leveling",
      "altTitles": ["Only I Level Up", "Na Honjaman Rebeleop"],
      "description": "In a world where hunters must battle deadly monsters...",
      "coverUrl": "https://example.com/covers/solo.jpg",
      "status": "COMPLETED",
      "author": "Chugong",
      "artist": "DUBU (REDICE STUDIO)",
      "rating": 4.8,
      "genres": ["Action", "Fantasy", "Adventure"],
      "createdAt": "2026-05-10T12:00:00Z",
      "updatedAt": "2026-06-13T10:30:00Z",
      "chapterCount": 179
    }
  ],
  "pagination": {
    "total": 45,
    "page": 1,
    "limit": 20,
    "totalPages": 3
  }
}
GET/manga/{id}
Retrieve specific manga details

Fetches metadata for a single manga using its unique ID.

Example Response

{
  "manga": {
    "id": "e2f073fa-85d8-4f81-a675-10255ebde427",
    "title": "Solo Leveling",
    "altTitles": ["Only I Level Up"],
    "description": "In a world where hunters...",
    "coverUrl": "https://example.com/covers/solo.jpg",
    "status": "COMPLETED",
    "author": "Chugong",
    "artist": "DUBU",
    "rating": 4.8,
    "genres": ["Action", "Fantasy"],
    "sourceUrl": "https://asuracomic.net/manga/solo-leveling",
    "createdAt": "2026-05-10T12:00:00Z",
    "updatedAt": "2026-06-13T10:30:00Z"
  }
}
GET/manga/{id}/chapters
Fetch all chapters and image content

Returns the chronological list of chapters for a manga along with the array of page image links to embed in your reader.

Query Parameters

ParameterTypeDefaultDescription
orderstringascSorting of chapter list by chapter number. Options: asc or desc.

Example Response

{
  "manga": {
    "id": "e2f073fa-85d8-4f81-a675-10255ebde427",
    "title": "Solo Leveling"
  },
  "chapters": [
    {
      "id": "9a61f3bb-8c35-4e78-9e5c-cb3e77a2818a",
      "chapterNumber": 1,
      "title": "Prologue",
      "releaseDate": "2026-05-11",
      "pageCount": 4,
      "pages": [
        "https://example.com/pages/solo/ch1_001.jpg",
        "https://example.com/pages/solo/ch1_002.jpg",
        "https://example.com/pages/solo/ch1_003.jpg",
        "https://example.com/pages/solo/ch1_004.jpg"
      ]
    }
  ]
}

Downstream Auto-Update Script (JavaScript Example)

Embed this simple Javascript fetch loop in your reader pages to display and automatically fetch chapter lists dynamically from OriginManga:

async function loadChapters(mangaId) {
  try {
    // You can use either originmanga.com or originmanga.xyz
    const response = await fetch(`https://originmanga.com/api/public/manga/${mangaId}/chapters?order=desc`);
    if (!response.ok) throw new Error("Failed to load catalog");
    
    const data = await response.json();
    console.log("Manga Title:", data.manga.title);
    
    // Auto update your UI chapter elements
    const listElement = document.getElementById("chapters-list");
    listElement.innerHTML = data.chapters.map(ch => `
      <div class="chapter-row">
        <span>Chapter ${ch.chapterNumber}: ${ch.title}</span>
        <button onclick="readPages('${ch.id}')">Read (${ch.pageCount} Pages)</button>
      </div>
    `).join('');
  } catch (error) {
    console.error("API error:", error);
  }
}