A registry is any server or static file host that serves the Open Web Comics API. All six endpoints below are required — implementors can rely on them all being present.

Required endpoints

1. Registry identity — GET /openwebcomics/api/v1/version

Returns the registry name, description, and API version. Clients use this to confirm they're talking to a valid registry before adding it.

{
  "version": "1",
  "name": "My Comic Archive",
  "description": "A personal webcomic registry."
}

See the RegistryVersion schema for field details.

2. Comic list — GET /openwebcomics/api/v1/comics

Returns an array of all comics in the registry.

[
  {
    "id": "my-comic",
    "name": "My Webcomic",
    "url": "https://example.com/my-comic",
    "description": "An ongoing adventure series.",
    "thumbnail_url": "https://example.com/my-comic/thumb.jpg",
    "total_pages": 120
  }
]

Each item follows the Comic schema.

3. Single comic — GET /openwebcomics/api/v1/comics/:id

Returns the full Comic object for a single comic by its ID. Returns 404 if the comic does not exist.

4. All pages — GET /openwebcomics/api/v1/comics/:id/pages

Returns all pages for a comic in a single response. The entire archive is returned at once — there is no pagination.

{
  "pages": [
    {
      "id": 1,
      "comic_id": "my-comic",
      "page_number": 1,
      "title": "Page 1",
      "url": "https://example.com/my-comic/page/1",
      "image_url": "https://example.com/my-comic/img/001.jpg"
    }
  ],
  "total": 120
}

See the PagesResponse and ComicPage schemas.

5. Groups — GET /openwebcomics/api/v1/comics/:id/groups

Returns all groups (chapters, acts, arcs, etc.) for a comic as an array of ComicGroup objects. Returns an empty array if the comic has no groups.

6. Single page — GET /openwebcomics/api/v1/comics/:id/pages/:pageNumber

Returns a single ComicPage by page number, including prev_page and next_page navigation hints. Returns 404 if the page does not exist.

Error responses

On error, return a JSON object with an error string and the appropriate HTTP status code:

{ "error": "Comic not found" }

See the Error schema.

Static file deployment

The API is designed to work as static JSON files. Mirror the URL structure as files on disk, then use server rewrite rules to strip the .json extension. This means no live server is required for read-only access — any static file host can serve a compliant registry.

Explore the full API reference →