Exploring API Endpoints & Structure

Base URL

All API requests start with the base URL:

https://versedb.com/api
Note
**Authentication Required**

All endpoints require authentication via Bearer token. Include your token in every request.


URL Structure & Patterns

The API follows RESTful conventions with predictable URL patterns:

| Pattern Type | Example | Description | |--------------|---------|-------------| | **List** | `GET /api/publishers` | Get collection of resources | | **Single Item** | `GET /api/series/123` | Get specific resource by ID | | **Nested** | `GET /api/series/123/issues` | Get related resources (PRO) | | **Actions** | `POST /api/follow` | Perform action on resource | | **Search** | `GET /api/characters?q=batman` | Search with query params |

HTTP Methods

The API uses standard HTTP methods:

  • GET - Retrieve data (read-only)
  • POST - Create new resources
  • PUT/PATCH - Update existing resources
  • DELETE - Remove resources

Comic Content Endpoints (All Users)

Publishers

GET /api/publishers              # List all publishers
GET /api/publishers/{id}         # Get publisher details

Titles

GET /api/titles                  # List all titles
GET /api/titles/{id}             # Get title details

Series (Volumes)

GET /api/series                  # List all series
GET /api/series/{id}             # Get series details
Note
**Series vs Titles**

A "series" refers to a specific volume/run of a title. A "title" represents all volumes across reboots and relaunches. For example, "Amazing Spider-Man (2018)" is a series under the "Amazing Spider-Man" title.

Issues

GET /api/issues                  # List issues (paginated)
GET /api/issues/{id}             # Get issue details
GET /api/issues/featured         # Get featured issues

Story Arcs

GET /api/story-arcs              # List all story arcs
GET /api/story-arcs/{id}         # Get story arc details

Characters

GET /api/characters              # List characters
GET /api/characters/{id}         # Get character details
GET /api/characters/featured     # Get featured characters

Creators

GET /api/creators                # List creators
GET /api/creators/{id}           # Get creator details
GET /api/creators/featured       # Get featured creators

Teams

GET /api/teams                   # List teams
GET /api/teams/{id}              # Get team details

Universes

GET /api/universes               # List universes
GET /api/universes/{id}          # Get universe details

Comic Shops

GET /api/shops                   # List shops
GET /api/shops/{id}              # Get shop details

Podcasts

GET /api/podcasts                # List podcasts
GET /api/podcasts/{id}           # Get podcast details
GET /api/podcasts/{id}/episodes  # Get podcast episodes

Relationship Endpoints (PRO Only)

Tip
**PRO Feature**

These endpoints require a PRO subscription. Non-PRO users receive HTTP 402 Payment Required.

Series Relationships

GET /api/series/{id}/issues      # Get all issues in series
GET /api/series/{id}/creators    # Get creators for series
GET /api/series/{id}/characters  # Get characters in series

Issue Relationships

GET /api/issues/{id}/creators    # Get creators for issue
GET /api/issues/{id}/characters  # Get characters in issue
GET /api/issues/{id}/variants    # Get issue variants

Team Relationships

GET /api/teams/{id}/characters   # Get team members
GET /api/teams/{id}/series       # Get team's series
GET /api/teams/{id}/issues       # Get team's issues

Market Data (PRO Only)

GET /api/issues/{id}/market/listings   # Live marketplace listings
GET /api/issues/{id}/market/snapshots  # Price history
GET /api/issues/{id}/market/overview   # Estimated values

Personal User Data (Authenticated)

These endpoints return data for the authenticated user.

User Profile

GET /api/user                    # Get your profile
GET /api/user/collections        # Get your collections
GET /api/user/lists              # Get your user lists
GET /api/user/pull-list          # Get your pull list
GET /api/user/follows            # Get titles you follow
GET /api/user/read-status        # Get your read issues

Collections (Authenticated)

Manage your comic collection:

GET /api/user/collections        # Get your collections

POST /api/collections            # Create new collection
PUT /api/collections/{id}        # Update collection
DELETE /api/collections/{id}     # Delete collection

POST /api/collections/{id}/items           # Add item to collection
DELETE /api/collections/{id}/items/{item}  # Remove item from collection

User Lists (Authenticated)

Manage your lists including your default wishlist and custom lists:

GET /api/user/lists              # Get your lists

POST /api/lists                  # Create list
PUT /api/lists/{id}              # Update list
DELETE /api/lists/{id}           # Delete list (not wishlist)

POST /api/lists/{id}/items           # Add to list
DELETE /api/lists/{id}/items/{item}  # Remove from list

Pull Lists (Authenticated)

Track series you want to follow:

GET /api/user/pull-list          # Get your pull list
POST /api/pull-list/items        # Add series to pull list
DELETE /api/pull-list/items/{id} # Remove from pull list

Read Status (Authenticated)

Track your reading progress:

GET /api/user/read-status            # Get all read issues
POST /api/issues/{id}/read-status    # Mark issue as read
DELETE /api/issues/{id}/read-status  # Mark as unread

Following (Authenticated)

Follow titles, characters, podcasts:

POST /api/follow                     # Follow something
DELETE /api/follow/{type}/{id}       # Unfollow
GET /api/follow/{type}/{id}/check    # Check if following

Query Parameters

Most list endpoints support filtering and pagination:

| Parameter | Description | Default | |-----------|-------------|--------| | `page` | Page number | 1 | | `limit` | Items per page (max: 50) | 20 | | `q` | Search query | - |

Filtering Examples

GET /api/series?q=spider-man
GET /api/issues?limit=50&page=2
GET /api/characters?q=wolverine

Response Format

All responses use JSON format:

Success Response

{
  "data": {
    "id": 123,
    "name": "Amazing Spider-Man",
    "start_year": 2018
  }
}

List Response (Paginated)

{
  "data": [...],
  "meta": {
    "current_page": 1,
    "per_page": 20,
    "total": 500,
    "last_page": 25
  },
  "links": {
    "first": "/api/series?page=1",
    "last": "/api/series?page=25",
    "prev": null,
    "next": "/api/series?page=2"
  }
}

PRO Required Response (402)

{
  "message": "PRO subscription required",
  "error": "pro_required",
  "upgrade_url": "https://versedb.com/subscription"
}

Web URLs vs API Endpoints

Note
**URL Format Difference**

The website uses SEO-friendly slugs, but the API uses numeric IDs.

| Context | Format | Example | |---------|--------|---------| | **Web** | Slug-based | `/series/123-amazing-spider-man-2018` | | **API** | ID-based | `/api/series/123` |

Use the API's search endpoints to find IDs from names.


Quick Summary
  • Base URL: `https://versedb.com/api`
  • All endpoints require Bearer token authentication
  • Free tier: Access to comic data and personal user data
  • PRO tier: Additional relationship endpoints and market data
  • Use numeric IDs in API calls, not slugs
  • Interactive docs available at `/api/docs`