Endpoints for browsing and searching comic book issues.
An issue is a single publication in a series (e.g., "Amazing Spider-Man #1").
Endpoints for browsing and searching comic book issues.
An issue is a single publication in a series (e.g., "Amazing Spider-Man #1").
/api/v1/issues/{issue_id}/variants/api/v1/issues/{issue_id}/api/v1/issues/api/v1/issues/{issue_id}/variants/{variant_id}/api/v1/issues/{issue_id}/key-reasons/api/v1/issues/{id}/creators/api/v1/issues/{id}/characters/api/v1/issues/{issue_id}/variantsReturns all variant covers for a specific issue.
issue_idintegerrequiredThe issue ID.
Example: 5432
languagesstringKeep only these languages in the _i18n maps (comma-separated BCP 47 tags). No other field changes.
Example: "ja,ko"
Success
Headers: X-RateLimit-Limit, X-RateLimit-Remaining
dataarray of objectsrequireddata[].idintegerrequiredExample: 901
data[].issue_idinteger or nullrequiredExample: 5432
data[].variant_namestring or nullrequiredExample: "Cover B"
data[].cover_urlstring or nullrequiredExample: "https://...-cover_lg.webp"
data[].imagesobject or nullrequireddata[].images.thumbstringExample: "https://...-thumb.webp"
data[].images.cover_smstringExample: "https://...-cover_sm.webp"
data[].images.cover_mdstringExample: "https://...-cover_md.webp"
data[].images.cover_lgstringExample: "https://...-cover_lg.webp"
data[].variant_typestring or nullrequiredExample: "standard"
data[].ratiostring or nullrequiredExample: "1:25"
data[].pricestring or nullrequiredExample: "4.99"
data[].currency_codestring or nullrequiredExample: "USD"
data[].formatted_pricestring or nullrequiredExample: "$4.99"
data[].eanstring or nullrequiredExample: "75960609999300111"
data[].release_datestring or nullrequiredThis edition's own on-sale date (YYYY-MM-DD), for a later printing or an exclusive that ships apart from its issue. Null when it ships with the issue: use the issue's release_date.
Example: "2025-04-09"
data[].is_nsfwbooleanrequireddata[].creatorsarray of objectsrequireddata[].creators[].idintegerrequiredExample: 81
data[].creators[].namestring or nullrequiredExample: "Fiona Staples"
data[].creators[].rolestringrequiredExample: "Cover Artist"
data[].variant_name_i18nobjectrequiredOne name per language, keyed by BCP 47 tag.
Unauthenticated. The bearer token is missing, invalid, or revoked.
messagestringrequiredExample: "Unauthenticated."
Example body, from the documented examples
{
"message": "Unauthenticated."
}The token lacks the read:public ability.
messagestringrequiredExample: "Insufficient token scope."
Example body, from the documented examples
{
"message": "Insufficient token scope."
}Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in the Retry-After header before retrying.
Headers: Retry-After, X-RateLimit-Limit, X-RateLimit-Remaining
messagestringrequiredExample: "Too Many Attempts."
Example body, from the documented examples
{
"message": "Too Many Attempts."
}curl --request GET \
'https://versedb.com/api/v1/issues/5432/variants' \
--header 'Authorization: Bearer {YOUR_AUTH_KEY}' \
--header 'Accept: application/json'Example response 200
{
"data": [
{
"id": 901,
"issue_id": 5432,
"variant_name": "Cover B",
"cover_url": "https://...-cover_lg.webp",
"images": {
"thumb": "https://...-thumb.webp",
"cover_sm": "https://...-cover_sm.webp",
"cover_md": "https://...-cover_md.webp",
"cover_lg": "https://...-cover_lg.webp"
},
"variant_type": "standard",
"ratio": "1:25",
"price": "4.99",
"currency_code": "USD",
"formatted_price": "$4.99",
"ean": "75960609999300111",
"release_date": "2025-04-09",
"creators": [
{
"id": 81,
"name": "Fiona Staples",
"role": "Cover Artist"
}
],
"variant_name_i18n": {
"ja": {
"value": "講談社",
"reading": "こうだんしゃ",
"source": "madb"
}
}
}
]
}/api/v1/issues/{issue_id}Returns a single issue with full details including series, title, publishers, creators, characters, teams, and story arcs.
issue_idintegerrequiredThe issue ID.
Example: 5432
languagesstringKeep only these languages in the _i18n maps (comma-separated BCP 47 tags). No other field changes.
Example: "ja,ko"
Success
Headers: X-RateLimit-Limit, X-RateLimit-Remaining
dataobjectrequireddata.idintegerrequiredExample: 5432
data.slugstring or nullrequiredExample: "amazing-spider-man-1"
data.series_idinteger or nullrequiredExample: 123
data.issue_numberstring or nullrequiredExample: "1"
data.namestring or nullrequiredExample: "The Chameleon Strikes!"
data.solicitationstring or nullrequiredExample: "The publisher's solicitation text."
data.release_datestring or nullrequiredExample: "2018-07-11"
data.foc_datestring or nullrequiredExample: "2018-06-18"
data.cover_datestring or nullrequiredExample: "2018-09-01"
data.is_unreleasedbooleanrequireddata.cover_urlstring or nullrequiredExample: "https://...-cover_lg.webp"
data.imagesobject or nullrequireddata.images.thumbstringExample: "https://...-thumb.webp"
data.images.cover_smstringExample: "https://...-cover_sm.webp"
data.images.cover_mdstringExample: "https://...-cover_md.webp"
data.images.cover_lgstringExample: "https://...-cover_lg.webp"
data.is_reprintboolean or nullrequireddata.content_rating_labelstring or nullrequiredExample: "Teen"
data.min_ageinteger or nullrequiredExample: 13
data.is_nsfwboolean or nullrequireddata.page_countinteger or nullrequiredExample: 32
data.pricestring or nullrequiredExample: "4.99"
data.currency_codestring or nullrequiredExample: "USD"
data.formatted_pricestring or nullrequiredExample: "USD $4.99"
data.isbnstring or nullrequiredExample: "9781302912345"
data.upcstring or nullrequiredExample: "75960608936700111"
data.lunar_codestring or nullrequiredExample: "0518MA0001"
data.universal_codestring or nullrequiredExample: "UC1"
data.diamond_codestring or nullrequiredExample: "MAY180001"
data.eanstring or nullrequiredExample: "9781302912345"
data.issnstring or nullrequiredExample: "1234-5678"
data.is_anthologyboolean or nullrequireddata.is_tie_inbooleanrequireddata.adapted_fromstring or nullrequiredExample: "anime"
data.print_runinteger or nullrequiredExample: 12000
data.locationsstring or nullrequiredExample: "Gotham"
data.skustring or nullrequiredExample: "SKU-1"
data.variant_countintegerrequiredExample: 4
data.reads_countintegerrequiredExample: 120
data.average_ratingnumberExample: 4.5
data.review_countintegerExample: 12
data.titleobjectdata.title.idintegerrequiredExample: 1
data.title.namestring or nullrequiredExample: "The Amazing Spider-Man"
data.title.slugstring or nullrequiredExample: "the-amazing-spider-man"
data.seriesobject or nullrequireddata.series.idintegerrequiredExample: 123
data.series.namestring or nullrequiredExample: "The Amazing Spider-Man"
data.series.slugstring or nullrequiredExample: "the-amazing-spider-man-2018"
data.series.start_yearinteger or nullrequiredExample: 2018
data.series.end_yearinteger or nullrequiredExample: 2022
data.series.volume_numberinteger or nullrequiredExample: 5
data.series.statusstring or nullrequiredExample: "Ongoing"
data.series.publication_typestring or nullrequiredExample: "regular_series"
data.series.cached_issues_countinteger or nullrequiredExample: 93
data.series.mediumstringrequiredExample: "comic"
data.series.formatstring or nullrequiredExample: "Standard"
data.series.content_rating_labelstring or nullrequiredExample: "Teen"
data.series.min_ageinteger or nullrequiredExample: 13
data.series.is_nsfwbooleanrequireddata.series.original_languagestring or nullrequiredExample: "en"
data.series.languagestring or nullrequiredExample: "en"
data.series.genresarray of objectsrequireddata.series.genres[].idintegerrequiredExample: 3
data.series.genres[].namestring or nullrequiredExample: "Superhero"
data.series.genres[].slugnull or nullrequireddata.series.aliasesarray of stringsrequireddata.series.imprintobject or nullrequireddata.series.imprint.idintegerrequiredExample: 7
data.series.imprint.namestring or nullrequiredExample: "Marvel Knights"
data.series.foreign_edition_ofarray of objectsrequireddata.series.foreign_edition_of[].idintegerrequiredExample: 1
data.series.foreign_edition_of[].namestringrequireddata.series.foreign_edition_of[].slugstring or nullrequiredExample: "slug"
data.series.foreign_edition_of[].languagestring or nullrequireddata.series.foreign_editionsarray of objectsrequireddata.series.foreign_editions[].idintegerrequiredExample: 1
data.series.foreign_editions[].namestringrequireddata.series.foreign_editions[].slugstring or nullrequiredExample: "slug"
data.series.foreign_editions[].languagestring or nullrequireddata.publisherobject or nulldata.publisher.idintegerrequiredExample: 1
data.publisher.namestring or nullrequiredExample: "Marvel"
data.publisher.slugstring or nullrequiredExample: "marvel"
data.imprintobjectdata.imprint.idintegerrequiredExample: 7
data.imprint.namestring or nullrequiredExample: "Marvel Knights"
data.awardsarray of objectsrequireddata.awards[].idintegerrequiredExample: 3
data.awards[].namestring or nullrequiredExample: "Eisner Award"
data.awards[].categorystring or nullrequiredExample: "Best Single Issue"
data.awards[].yearinteger or nullrequiredExample: 2019
data.creatorsarray of objectsrequireddata.creators[].idintegerrequiredExample: 81
data.creators[].namestring or nullrequiredExample: "Nick Spencer"
data.creators[].slugstring or nullrequiredExample: "nick-spencer"
data.creators[].photo_urlstring or nullrequiredExample: "https://...-profile_md.webp"
data.creators[].imagesobject or nullrequireddata.creators[].images.tile_smstringExample: "https://...-tile_sm.webp"
data.creators[].images.profile_mdstringExample: "https://...-profile_md.webp"
data.creators[].images.full_lgstringExample: "https://...-full_lg.webp"
data.creators[].rolestringrequiredExample: "Writer"
data.creators[].sort_orderinteger or nullrequiredExample: 1
data.charactersarray of objectsrequireddata.characters[].idintegerrequiredExample: 1
data.characters[].namestring or nullrequiredExample: "Spider-Man"
data.characters[].slugstring or nullrequiredExample: "spider-man"
data.characters[].real_namestring or nullrequiredExample: "Peter Parker"
data.characters[].image_urlstring or nullrequiredExample: "https://...-profile_md.webp"
data.characters[].imagesobject or nullrequireddata.characters[].images.tile_smstringExample: "https://...-tile_sm.webp"
data.characters[].images.profile_mdstringExample: "https://...-profile_md.webp"
data.characters[].images.full_lgstringExample: "https://...-full_lg.webp"
data.characters[].sort_orderinteger or nullrequiredExample: 1
data.teamsarray of objectsrequireddata.teams[].idintegerrequiredExample: 1
data.teams[].namestring or nullrequiredExample: "The Avengers"
data.teams[].slugstring or nullrequiredExample: "avengers"
data.teams[].headquartersstring or nullrequiredExample: "Avengers Tower"
data.teams[].image_urlstring or nullrequiredExample: "https://...-tile_sm.webp"
data.teams[].imagesobject or nullrequireddata.teams[].images.tile_smstringExample: "https://...-tile_sm.webp"
data.teams[].images.profile_mdstringExample: "https://...-profile_md.webp"
data.teams[].images.full_lgstringExample: "https://...-full_lg.webp"
data.teams[].sort_orderinteger or nullrequiredExample: 1
data.story_arcsarray of objectsrequireddata.story_arcs[].idintegerrequiredExample: 24
data.story_arcs[].namestring or nullrequiredExample: "Civil War"
data.story_arcs[].slugstring or nullrequiredExample: "civil-war"
data.story_arcs[].image_urlstring or nullrequiredExample: "https://...-cover_md.webp"
data.story_arcs[].imagesobject or nullrequireddata.story_arcs[].images.cover_smstringExample: "https://...-cover_sm.webp"
data.story_arcs[].images.cover_mdstringExample: "https://...-cover_md.webp"
data.story_arcs[].images.cover_lgstringExample: "https://...-cover_lg.webp"
data.story_arcs[].sort_orderinteger or nullrequiredExample: 1
data.universesarray of objectsrequireddata.universes[].idintegerrequiredExample: 1
data.universes[].namestring or nullrequiredExample: "Earth-616"
data.comic_eventsarray of objectsrequireddata.comic_events[].idintegerrequiredExample: 1
data.comic_events[].namestring or nullrequiredExample: "San Diego Comic-Con"
data.comic_events[].slugstring or nullrequiredExample: "sdcc"
data.comic_events[].typestring or nullrequiredExample: "exclusive"
data.comic_events[].notesstring or nullrequiredExample: "Signed"
data.comic_events[].display_orderinteger or nullrequiredExample: 1
data.key_issue_reasonsarray of objectsrequireddata.key_issue_reasons[].idintegerrequiredExample: 1
data.key_issue_reasons[].namestring or nullrequiredExample: "1st Appearance"
data.key_issue_reasons[].categorystringrequiredExample: "appearance"
data.key_issue_reasons[].notesstring or nullrequiredExample: "Cameo"
data.availabilitiesarray of objectsrequireddata.availabilities[].idinteger or nullrequiredExample: 10
data.availabilities[].providerstringrequiredExample: "midtown_comics"
data.availabilities[].provider_labelstringrequiredExample: "Midtown Comics"
data.availabilities[].kindstringrequiredbuy, read or watch.
Example: "buy"
data.availabilities[].store_namestring or nullrequiredExample: "Midtown Comics"
data.availabilities[].custom_namestring or nullrequiredExample: "Signed edition"
data.availabilities[].display_namestringrequiredExample: "Midtown Comics"
data.availabilities[].store_logostring or nullrequiredExample: "/images/brands/midtown.png"
data.availabilities[].urlstringrequiredExample: "https://www.midtowncomics.com/..."
data.availabilities[].external_idstring or nullrequiredExample: "12345"
data.availabilities[].pricenumber or nullrequiredExample: 19.99
data.availabilities[].formatted_pricestring or nullrequiredExample: "$19.99"
data.availabilities[].currencystring or nullrequiredExample: "USD"
data.availabilities[].is_digitalboolean or nullrequireddata.availabilities[].is_affiliatebooleanrequireddata.availabilities[].is_synthesizedbooleanrequireddata.availabilities[].verified_atstring or nullrequiredExample: "2026-01-01T00:00:00+00:00"
data.name_i18nobjectrequiredOne name per language, keyed by BCP 47 tag.
Unauthenticated. The bearer token is missing, invalid, or revoked.
messagestringrequiredExample: "Unauthenticated."
Example body, from the documented examples
{
"message": "Unauthenticated."
}The token lacks the read:public ability.
messagestringrequiredExample: "Insufficient token scope."
Example body, from the documented examples
{
"message": "Insufficient token scope."
}Not Found
messagestringrequiredExample: "No query results for model [App\\Models\\Issue] 5432"
Example body, from the documented examples
{
"message": "No query results for model [App\\Models\\Issue] 5432"
}Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in the Retry-After header before retrying.
Headers: Retry-After, X-RateLimit-Limit, X-RateLimit-Remaining
messagestringrequiredExample: "Too Many Attempts."
Example body, from the documented examples
{
"message": "Too Many Attempts."
}curl --request GET \
'https://versedb.com/api/v1/issues/5432' \
--header 'Authorization: Bearer {YOUR_AUTH_KEY}' \
--header 'Accept: application/json'Example response 200
{
"data": {
"id": 5432,
"slug": "amazing-spider-man-1",
"series_id": 123,
"issue_number": "1",
"name": "The Chameleon Strikes!",
"solicitation": "The publisher's solicitation text.",
"release_date": "2018-07-11",
"foc_date": "2018-06-18",
"cover_date": "2018-09-01",
"cover_url": "https://...-cover_lg.webp",
"images": {
"thumb": "https://...-thumb.webp",
"cover_sm": "https://...-cover_sm.webp",
"cover_md": "https://...-cover_md.webp",
"cover_lg": "https://...-cover_lg.webp"
},
"content_rating_label": "Teen",
"min_age": 13,
"page_count": 32,
"price": "4.99",
"currency_code": "USD",
"formatted_price": "USD $4.99",
"isbn": "9781302912345",
"upc": "75960608936700111",
"lunar_code": "0518MA0001",
"universal_code": "UC1",
"diamond_code": "MAY180001",
"ean": "9781302912345",
"issn": "1234-5678",
"adapted_from": "anime",
"print_run": 12000,
"locations": "Gotham",
"sku": "SKU-1",
"variant_count": 4,
"reads_count": 120,
"average_rating": 4.5,
"review_count": 12,
"title": {
"id": 1,
"name": "The Amazing Spider-Man",
"slug": "the-amazing-spider-man"
},
"series": {
"id": 123,
"name": "The Amazing Spider-Man",
"slug": "the-amazing-spider-man-2018",
"start_year": 2018,
"end_year": 2022,
"volume_number": 5,
"status": "Ongoing",
"publication_type": "regular_series",
"cached_issues_count": 93,
"medium": "comic",
"format": "Standard",
"content_rating_label": "Teen",
"min_age": 13,
"original_language": "en",
"language": "en",
"genres": [
{
"id": 3,
"name": "Superhero"
}
],
"imprint": {
"id": 7,
"name": "Marvel Knights"
},
"foreign_edition_of": [
{
"id": 1,
"slug": "slug"
}
],
"foreign_editions": [
{
"id": 1,
"slug": "slug"
}
]
},
"publisher": {
"id": 1,
"name": "Marvel",
"slug": "marvel"
},
"imprint": {
"id": 7,
"name": "Marvel Knights"
},
"awards": [
{
"id": 3,
"name": "Eisner Award",
"category": "Best Single Issue",
"year": 2019
}
],
"creators": [
{
"id": 81,
"name": "Nick Spencer",
"slug": "nick-spencer",
"photo_url": "https://...-profile_md.webp",
"images": {
"tile_sm": "https://...-tile_sm.webp",
"profile_md": "https://...-profile_md.webp",
"full_lg": "https://...-full_lg.webp"
},
"role": "Writer",
"sort_order": 1
}
],
"characters": [
{
"id": 1,
"name": "Spider-Man",
"slug": "spider-man",
"real_name": "Peter Parker",
"image_url": "https://...-profile_md.webp",
"images": {
"tile_sm": "https://...-tile_sm.webp",
"profile_md": "https://...-profile_md.webp",
"full_lg": "https://...-full_lg.webp"
},
"sort_order": 1
}
],
"teams": [
{
"id": 1,
"name": "The Avengers",
"slug": "avengers",
"headquarters": "Avengers Tower",
"image_url": "https://...-tile_sm.webp",
"images": {
"tile_sm": "https://...-tile_sm.webp",
"profile_md": "https://...-profile_md.webp",
"full_lg": "https://...-full_lg.webp"
},
"sort_order": 1
}
],
"story_arcs": [
{
"id": 24,
"name": "Civil War",
"slug": "civil-war",
"image_url": "https://...-cover_md.webp",
"images": {
"cover_sm": "https://...-cover_sm.webp",
"cover_md": "https://...-cover_md.webp",
"cover_lg": "https://...-cover_lg.webp"
},
"sort_order": 1
}
],
"universes": [
{
"id": 1,
"name": "Earth-616"
}
],
"comic_events": [
{
"id": 1,
"name": "San Diego Comic-Con",
"slug": "sdcc",
"type": "exclusive",
"notes": "Signed",
"display_order": 1
}
],
"key_issue_reasons": [
{
"id": 1,
"name": "1st Appearance",
"category": "appearance",
"notes": "Cameo"
}
],
"availabilities": [
{
"id": 10,
"provider": "midtown_comics",
"provider_label": "Midtown Comics",
"kind": "buy",
"store_name": "Midtown Comics",
"custom_name": "Signed edition",
"display_name": "Midtown Comics",
"store_logo": "/images/brands/midtown.png",
"url": "https://www.midtowncomics.com/...",
"external_id": "12345",
"price": 19.99,
"formatted_price": "$19.99",
"currency": "USD",
"verified_at": "2026-01-01T00:00:00+00:00"
}
],
"name_i18n": {
"ja": {
"value": "講談社",
"reading": "こうだんしゃ",
"source": "madb"
}
}
}
}/api/v1/issuesReturns paginated issues with optional search, filtering, and sorting.
qstringSearch by issue name.
Example: "spider"
series_idintegerFilter by series ID.
Example: 123
publisher_idintegerFilter by publisher ID (via series relationship).
Example: 1
release_date_fromstringFilter by release date (from).
Example: "2024-01-01"
release_date_tostringFilter by release date (to).
Example: "2024-12-31"
publisher_idsstringComma-separated publisher IDs; matches issues from any of them.
Example: "1,2"
series_idsstringComma-separated series IDs; matches issues in any of them.
Example: "123,456"
title_idsstringComma-separated title (franchise) IDs; matches issues whose series belongs to any of them.
Example: "45"
character_idsstringComma-separated character IDs, up to 10; an issue must feature every one.
Example: "1,2"
creator_idsstringComma-separated creator IDs, up to 10; an issue must credit every one.
Example: "81"
creator_role_idsstringComma-separated creator role IDs; with creator_ids, each creator must be credited in one of these roles.
Example: "1,2"
team_idsstringComma-separated team IDs, up to 10; an issue must feature every one.
Example: "5"
genre_idsstringComma-separated genre IDs; matches issues whose series carries any of them.
Example: "3"
languagesstringComma-separated series language codes (en, ja, fr, ...).
Example: "en,ja"
mediumstringSeries medium (comic, manga, manhwa, manhua, bande_dessinee, magazine).
Example: "manga"
key_issues_onlybooleanOnly return issues with at least one key issue reason.
Example: true
hide_unreleasedbooleanLeave out issues whose release date is in the future.
Example: true
includestringComma-separated relationships to include (series).
Example: "series"
sortstringSort field (issue_number, release_date, name).
Example: "release_date"
directionstringSort direction (asc, desc).
Example: "desc"
limitintegerResults per page (max 100).
Example: 20
pageintegerPage number; meta.last_page says where the list ends.
Example: 1
Success
Headers: X-RateLimit-Limit, X-RateLimit-Remaining
dataarray of objectsrequireddata[].idintegerrequiredExample: 5432
data[].slugstring or nullrequiredExample: "amazing-spider-man-1"
data[].series_idinteger or nullrequiredExample: 123
data[].issue_numberstring or nullrequiredExample: "1"
data[].namestring or nullrequiredExample: "The Chameleon Strikes!"
data[].cover_datestring or nullrequiredExample: "2018-09-01"
data[].release_datestring or nullrequiredExample: "2018-07-11"
data[].foc_datestring or nullrequiredExample: "2018-06-18"
data[].is_unreleasedbooleanrequireddata[].cover_urlstring or nullrequiredExample: "https://...-cover_lg.webp"
data[].imagesobject or nullrequireddata[].images.thumbstringExample: "https://...-thumb.webp"
data[].images.cover_smstringExample: "https://...-cover_sm.webp"
data[].images.cover_mdstringExample: "https://...-cover_md.webp"
data[].images.cover_lgstringExample: "https://...-cover_lg.webp"
data[].is_reprintbooleanrequireddata[].content_rating_labelstring or nullrequiredExample: "Teen"
data[].min_ageinteger or nullrequiredExample: 13
data[].is_nsfwbooleanrequireddata[].average_ratingnumber or nullrequiredExample: 4.5
data[].name_i18nobjectrequiredOne name per language, keyed by BCP 47 tag.
data[].seriesobject or nulldata[].series.idintegerrequiredExample: 123
data[].series.namestring or nullrequiredExample: "The Amazing Spider-Man"
data[].series.slugstring or nullrequiredExample: "the-amazing-spider-man-2018"
data[].series.start_yearinteger or nullrequiredExample: 2018
data[].series.end_yearinteger or nullrequiredExample: 2022
data[].series.volume_numberinteger or nullrequiredExample: 5
data[].series.publication_typestring or nullrequiredExample: "regular_series"
data[].series.formatstring or nullrequiredExample: "Standard"
data[].series.cached_issues_countinteger or nullrequiredExample: 93
data[].series.cover_urlstring or nullrequiredExample: "https://...-cover_lg.webp"
data[].series.imagesobject or nullrequireddata[].series.images.cover_smstringExample: "https://...-cover_sm.webp"
data[].series.images.cover_mdstringExample: "https://...-cover_md.webp"
data[].series.images.cover_lgstringExample: "https://...-cover_lg.webp"
data[].series.publisher_namestring or nullrequiredExample: "Marvel"
linksobjectrequiredlinks.firststringrequiredlinks.laststringrequiredlinks.prevstring or nullrequiredlinks.nextstring or nullrequiredmetaobjectrequiredmeta.current_pageintegerrequiredExample: 1
meta.frominteger or nullrequiredExample: 1
meta.last_pageintegerrequiredExample: 25
meta.linksarray of objectsrequiredmeta.links[].urlstring or nullrequiredmeta.links[].labelstringrequiredmeta.links[].pageinteger or nullmeta.links[].activebooleanrequiredmeta.pathstringrequiredmeta.per_pageintegerrequiredExample: 20
meta.tointeger or nullrequiredExample: 20
meta.totalintegerrequiredExample: 500
Unauthenticated. The bearer token is missing, invalid, or revoked.
messagestringrequiredExample: "Unauthenticated."
Example body, from the documented examples
{
"message": "Unauthenticated."
}The token lacks the read:public ability.
messagestringrequiredExample: "Insufficient token scope."
Example body, from the documented examples
{
"message": "Insufficient token scope."
}Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in the Retry-After header before retrying.
Headers: Retry-After, X-RateLimit-Limit, X-RateLimit-Remaining
messagestringrequiredExample: "Too Many Attempts."
Example body, from the documented examples
{
"message": "Too Many Attempts."
}curl --request GET \
'https://versedb.com/api/v1/issues' \
--header 'Authorization: Bearer {YOUR_AUTH_KEY}' \
--header 'Accept: application/json'Example response 200
{
"data": [
{
"id": 5432,
"slug": "amazing-spider-man-1",
"series_id": 123,
"issue_number": "1",
"name": "The Chameleon Strikes!",
"cover_date": "2018-09-01",
"release_date": "2018-07-11",
"foc_date": "2018-06-18",
"cover_url": "https://...-cover_lg.webp",
"images": {
"thumb": "https://...-thumb.webp",
"cover_sm": "https://...-cover_sm.webp",
"cover_md": "https://...-cover_md.webp",
"cover_lg": "https://...-cover_lg.webp"
},
"content_rating_label": "Teen",
"min_age": 13,
"average_rating": 4.5,
"name_i18n": {
"ja": {
"value": "講談社",
"reading": "こうだんしゃ",
"source": "madb"
}
},
"series": {
"id": 123,
"name": "The Amazing Spider-Man",
"slug": "the-amazing-spider-man-2018",
"start_year": 2018,
"end_year": 2022,
"volume_number": 5,
"publication_type": "regular_series",
"format": "Standard",
"cached_issues_count": 93,
"cover_url": "https://...-cover_lg.webp",
"images": {
"cover_sm": "https://...-cover_sm.webp",
"cover_md": "https://...-cover_md.webp",
"cover_lg": "https://...-cover_lg.webp"
},
"publisher_name": "Marvel"
}
}
],
"meta": {
"current_page": 1,
"from": 1,
"last_page": 25,
"per_page": 20,
"to": 20,
"total": 500
}
}/api/v1/issues/{issue_id}/variants/{variant_id}Returns a specific variant cover with full details.
issue_idintegerrequiredThe issue ID.
Example: 5432
variant_idintegerrequiredThe variant ID.
Example: 9001
languagesstringKeep only these languages in the _i18n maps (comma-separated BCP 47 tags). No other field changes.
Example: "ja,ko"
Success
Headers: X-RateLimit-Limit, X-RateLimit-Remaining
dataobjectrequireddata.idintegerrequiredExample: 901
data.issue_idinteger or nullrequiredExample: 5432
data.variant_namestring or nullrequiredExample: "Cover B"
data.cover_urlstring or nullrequiredExample: "https://...-cover_lg.webp"
data.imagesobject or nullrequireddata.images.thumbstringExample: "https://...-thumb.webp"
data.images.cover_smstringExample: "https://...-cover_sm.webp"
data.images.cover_mdstringExample: "https://...-cover_md.webp"
data.images.cover_lgstringExample: "https://...-cover_lg.webp"
data.variant_typestring or nullrequiredExample: "standard"
data.ratiostring or nullrequiredExample: "1:25"
data.pricestring or nullrequiredExample: "4.99"
data.currency_codestring or nullrequiredExample: "USD"
data.formatted_pricestring or nullrequiredExample: "$4.99"
data.eanstring or nullrequiredExample: "75960609999300111"
data.release_datestring or nullrequiredThis edition's own on-sale date (YYYY-MM-DD), for a later printing or an exclusive that ships apart from its issue. Null when it ships with the issue: use the issue's release_date.
Example: "2025-04-09"
data.creatorsarray of objectsrequireddata.creators[].idintegerrequiredExample: 101
data.creators[].namestring or nullrequiredExample: "J. Scott Campbell"
data.creators[].slugstring or nullrequiredExample: "j-scott-campbell"
data.creators[].photo_urlstring or nullrequiredExample: "https://...-profile_md.webp"
data.creators[].rolestringrequiredExample: "Cover Artist"
data.creators[].is_uncreditedbooleanrequireddata.variant_name_i18nobjectrequiredOne name per language, keyed by BCP 47 tag.
Unauthenticated. The bearer token is missing, invalid, or revoked.
messagestringrequiredExample: "Unauthenticated."
Example body, from the documented examples
{
"message": "Unauthenticated."
}The token lacks the read:public ability.
messagestringrequiredExample: "Insufficient token scope."
Example body, from the documented examples
{
"message": "Insufficient token scope."
}Not Found
errorstringrequiredExample: "Variant does not belong to this issue"
Example body, from the documented examples
{
"error": "Variant does not belong to this issue"
}Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in the Retry-After header before retrying.
Headers: Retry-After, X-RateLimit-Limit, X-RateLimit-Remaining
messagestringrequiredExample: "Too Many Attempts."
Example body, from the documented examples
{
"message": "Too Many Attempts."
}curl --request GET \
'https://versedb.com/api/v1/issues/5432/variants/9001' \
--header 'Authorization: Bearer {YOUR_AUTH_KEY}' \
--header 'Accept: application/json'Example response 200
{
"data": {
"id": 901,
"issue_id": 5432,
"variant_name": "Cover B",
"cover_url": "https://...-cover_lg.webp",
"images": {
"thumb": "https://...-thumb.webp",
"cover_sm": "https://...-cover_sm.webp",
"cover_md": "https://...-cover_md.webp",
"cover_lg": "https://...-cover_lg.webp"
},
"variant_type": "standard",
"ratio": "1:25",
"price": "4.99",
"currency_code": "USD",
"formatted_price": "$4.99",
"ean": "75960609999300111",
"release_date": "2025-04-09",
"creators": [
{
"id": 101,
"name": "J. Scott Campbell",
"slug": "j-scott-campbell",
"photo_url": "https://...-profile_md.webp",
"role": "Cover Artist"
}
],
"variant_name_i18n": {
"ja": {
"value": "講談社",
"reading": "こうだんしゃ",
"source": "madb"
}
}
}
}/api/v1/issues/{issue_id}/key-reasonsReturns key issue reasons for a specific issue (e.g., "1st Appearance", "Death").
issue_idintegerrequiredThe issue ID.
Example: 5432
Success
Headers: X-RateLimit-Limit, X-RateLimit-Remaining
dataarray of objectsrequireddata[].idintegerrequiredExample: 1
data[].namestring or nullrequiredExample: "1st Appearance"
data[].categorystring or nullrequiredappearance, story, creator, market or media.
Example: "appearance"
data[].descriptionstring or nullrequiredExample: "First appearance of a character."
data[].notesstring or nullrequiredExample: "1st full appearance of Miles Morales"
Unauthenticated. The bearer token is missing, invalid, or revoked.
messagestringrequiredExample: "Unauthenticated."
Example body, from the documented examples
{
"message": "Unauthenticated."
}The token lacks the read:public ability.
messagestringrequiredExample: "Insufficient token scope."
Example body, from the documented examples
{
"message": "Insufficient token scope."
}Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in the Retry-After header before retrying.
Headers: Retry-After, X-RateLimit-Limit, X-RateLimit-Remaining
messagestringrequiredExample: "Too Many Attempts."
Example body, from the documented examples
{
"message": "Too Many Attempts."
}curl --request GET \
'https://versedb.com/api/v1/issues/5432/key-reasons' \
--header 'Authorization: Bearer {YOUR_AUTH_KEY}' \
--header 'Accept: application/json'Example response 200
{
"data": [
{
"id": 1,
"name": "1st Appearance",
"category": "appearance",
"description": "First appearance of a character.",
"notes": "1st full appearance of Miles Morales"
}
]
}/api/v1/issues/{id}/creatorsReturns paginated creators for a specific issue with their roles.
idintegerrequiredThe issue ID.
Example: 5432
pageintegerPage number; meta.last_page says where the list ends.
Example: 1
languagesstringKeep only these languages in the _i18n maps (comma-separated BCP 47 tags). No other field changes.
Example: "ja,ko"
Success
Headers: X-RateLimit-Limit, X-RateLimit-Remaining
current_pageintegerrequiredExample: 1
dataarray of objectsrequireddata[].idintegerrequiredExample: 789
data[].namestringrequiredExample: "Nick Spencer"
data[].slugstringrequiredExample: "nick-spencer"
data[].role_idinteger or nullrequiredExample: 1
data[].profile_photo_pathstring or nullrequiredExample: "uploads/creators/2024/01/nick-spencer.jpg"
data[].biographystring or nullrequiredExample: "An American comic book writer."
data[].genderstring or nullrequiredExample: "male"
data[].birthstring or nullrequiredExample: "2024-01-15T10:30:00.000000Z"
data[].deathstring or nullrequiredExample: "2024-01-15T10:30:00.000000Z"
data[].birth_placestring or nullrequiredExample: "Cincinnati, Ohio"
data[].countrystring or nullrequiredExample: "US"
data[].linksobject or nullrequireddata[].created_atstring or nullrequiredExample: "2024-01-15T10:30:00.000000Z"
data[].updated_atstring or nullrequiredExample: "2024-01-15T10:30:00.000000Z"
data[].deleted_atstring or nullrequiredExample: "2024-01-15T10:30:00.000000Z"
data[].aliasesarray of strings or nullrequireddata[].cached_issues_countintegerrequiredExample: 250
data[].cached_series_countintegerrequiredExample: 30
data[].cached_titles_countintegerrequiredExample: 20
data[].last_edited_byinteger or nullrequiredExample: 12
data[].last_edited_atstring or nullrequiredExample: "2024-01-15T10:30:00.000000Z"
data[].public_lists_countintegerrequiredExample: 4
data[].original_localestring or nullrequiredExample: "en"
data[].name_i18nobjectrequiredOne name per language, keyed by BCP 47 tag.
data[].aliases_i18nobjectrequiredAlternative names per language.
data[].roleobject or nullrequireddata[].role.idintegerrequiredExample: 1
data[].role.namestringrequiredExample: "Writer"
data[].role.descriptionstring or nullrequiredExample: "Writes the script."
data[].role.created_atstring or nullrequiredExample: "2024-01-15T10:30:00.000000Z"
data[].role.updated_atstring or nullrequiredExample: "2024-01-15T10:30:00.000000Z"
data[].pivotobjectrequireddata[].pivot.issue_idintegerrequiredExample: 5432
data[].pivot.creator_idintegerrequiredExample: 789
data[].pivot.creator_role_idinteger or nullrequiredExample: 1
data[].pivot.is_uncreditedbooleanrequireddata[].pivot.sort_orderinteger or nullrequiredExample: 0
data[].pivot.created_atstring or nullrequiredExample: "2024-01-15T10:30:00.000000Z"
data[].pivot.updated_atstring or nullrequiredExample: "2024-01-15T10:30:00.000000Z"
first_page_urlstringrequiredfrominteger or nullrequiredExample: 1
last_pageintegerrequiredExample: 1
last_page_urlstringrequiredlinksarray of objectsrequiredlinks[].urlstring or nullrequiredlinks[].labelstringrequiredlinks[].pageinteger or nulllinks[].activebooleanrequirednext_page_urlstring or nullrequiredpathstringrequiredper_pageintegerrequiredExample: 50
prev_page_urlstring or nullrequiredtointeger or nullrequiredExample: 15
totalintegerrequiredExample: 15
Unauthenticated. The bearer token is missing, invalid, or revoked.
messagestringrequiredExample: "Unauthenticated."
Example body, from the documented examples
{
"message": "Unauthenticated."
}The token lacks the read:public ability.
messagestringrequiredExample: "Insufficient token scope."
Example body, from the documented examples
{
"message": "Insufficient token scope."
}Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in the Retry-After header before retrying.
Headers: Retry-After, X-RateLimit-Limit, X-RateLimit-Remaining
messagestringrequiredExample: "Too Many Attempts."
Example body, from the documented examples
{
"message": "Too Many Attempts."
}curl --request GET \
'https://versedb.com/api/v1/issues/5432/creators' \
--header 'Authorization: Bearer {YOUR_AUTH_KEY}' \
--header 'Accept: application/json'Example response 200
{
"current_page": 1,
"data": [
{
"id": 789,
"name": "Nick Spencer",
"slug": "nick-spencer",
"role_id": 1,
"profile_photo_path": "uploads/creators/2024/01/nick-spencer.jpg",
"biography": "An American comic book writer.",
"gender": "male",
"birth": "2024-01-15T10:30:00.000000Z",
"death": "2024-01-15T10:30:00.000000Z",
"birth_place": "Cincinnati, Ohio",
"country": "US",
"created_at": "2024-01-15T10:30:00.000000Z",
"updated_at": "2024-01-15T10:30:00.000000Z",
"deleted_at": "2024-01-15T10:30:00.000000Z",
"cached_issues_count": 250,
"cached_series_count": 30,
"cached_titles_count": 20,
"last_edited_by": 12,
"last_edited_at": "2024-01-15T10:30:00.000000Z",
"public_lists_count": 4,
"original_locale": "en",
"name_i18n": {
"ja": {
"value": "講談社",
"reading": "こうだんしゃ",
"source": "madb"
}
},
"aliases_i18n": {
"en": [
"Kodansha Comics"
]
},
"role": {
"id": 1,
"name": "Writer",
"description": "Writes the script.",
"created_at": "2024-01-15T10:30:00.000000Z",
"updated_at": "2024-01-15T10:30:00.000000Z"
},
"pivot": {
"issue_id": 5432,
"creator_id": 789,
"creator_role_id": 1,
"sort_order": 0,
"created_at": "2024-01-15T10:30:00.000000Z",
"updated_at": "2024-01-15T10:30:00.000000Z"
}
}
],
"from": 1,
"last_page": 1,
"per_page": 50,
"to": 15,
"total": 15
}/api/v1/issues/{id}/charactersReturns paginated characters appearing in a specific issue.
idintegerrequiredThe issue ID.
Example: 5432
pageintegerPage number; meta.last_page says where the list ends.
Example: 1
languagesstringKeep only these languages in the _i18n maps (comma-separated BCP 47 tags). No other field changes.
Example: "ja,ko"
Success
Headers: X-RateLimit-Limit, X-RateLimit-Remaining
current_pageintegerrequiredExample: 1
dataarray of objectsrequireddata[].idintegerrequiredExample: 456
data[].namestringrequiredExample: "Spider-Man"
data[].slugstringrequiredExample: "spider-man"
data[].real_namestring or nullrequiredExample: "Peter Parker"
data[].descriptionstring or nullrequiredExample: "Bitten by a radioactive spider."
data[].alter_egostring or number or boolean or array or object or nullrequiredOther identities, as stored: a list of strings in production.
Example: ["Spidey"]
data[].birthdaystring or nullrequiredExample: "2024-01-15T10:30:00.000000Z"
data[].birth_placestring or nullrequiredExample: "Queens, New York"
data[].occupationstring or nullrequiredExample: "Photographer"
data[].heightstring or nullrequiredExample: "5'10\""
data[].weightstring or nullrequiredExample: "167 lbs"
data[].citizenshipstring or nullrequiredExample: "American"
data[].educationstring or nullrequiredExample: "College"
data[].aliasesarray of strings or nullrequireddata[].profile_photo_pathstring or nullrequiredExample: "uploads/characters/2024/01/spider-man.jpg"
data[].genderstring or nullrequiredExample: "male"
data[].created_atstring or nullrequiredExample: "2024-01-15T10:30:00.000000Z"
data[].updated_atstring or nullrequiredExample: "2024-01-15T10:30:00.000000Z"
data[].deleted_atstring or nullrequiredExample: "2024-01-15T10:30:00.000000Z"
data[].last_edited_byinteger or nullrequiredExample: 12
data[].last_edited_atstring or nullrequiredExample: "2024-01-15 10:30:00"
data[].public_lists_countintegerrequiredExample: 4
data[].debut_datestring or nullrequiredExample: "2024-01-15T10:30:00.000000Z"
data[].debut_issue_idinteger or nullrequiredExample: 5432
data[].debut_editorialbooleanrequireddata[].original_localestring or nullrequiredExample: "en"
data[].name_i18nobjectrequiredOne name per language, keyed by BCP 47 tag.
data[].aliases_i18nobjectrequiredAlternative names per language.
data[].real_name_i18nobjectrequiredOne name per language, keyed by BCP 47 tag.
data[].racestring or nullrequiredExample: "Human"
data[].tagsarray of objectsrequireddata[].tags[].idintegerrequiredExample: 12
data[].tags[].nameobjectrequireddata[].tags[].slugobjectrequireddata[].tags[].typestring or nullrequiredExample: "ability"
data[].tags[].order_columninteger or nullrequiredExample: 1
data[].tags[].created_atstring or nullrequiredExample: "2024-01-15T10:30:00.000000Z"
data[].tags[].updated_atstring or nullrequiredExample: "2024-01-15T10:30:00.000000Z"
data[].tags[].pivotobjectrequireddata[].tags[].pivot.taggable_typestringrequireddata[].tags[].pivot.taggable_idintegerrequiredExample: 456
data[].tags[].pivot.tag_idintegerrequiredExample: 12
data[].pivotobjectrequireddata[].pivot.issue_idintegerrequiredExample: 5432
data[].pivot.character_idintegerrequiredExample: 456
data[].pivot.is_spoilerbooleanrequireddata[].pivot.sort_orderinteger or nullrequiredExample: 0
data[].pivot.created_atstring or nullrequiredExample: "2024-01-15T10:30:00.000000Z"
data[].pivot.updated_atstring or nullrequiredExample: "2024-01-15T10:30:00.000000Z"
first_page_urlstringrequiredfrominteger or nullrequiredExample: 1
last_pageintegerrequiredExample: 1
last_page_urlstringrequiredlinksarray of objectsrequiredlinks[].urlstring or nullrequiredlinks[].labelstringrequiredlinks[].pageinteger or nulllinks[].activebooleanrequirednext_page_urlstring or nullrequiredpathstringrequiredper_pageintegerrequiredExample: 50
prev_page_urlstring or nullrequiredtointeger or nullrequiredExample: 15
totalintegerrequiredExample: 15
Unauthenticated. The bearer token is missing, invalid, or revoked.
messagestringrequiredExample: "Unauthenticated."
Example body, from the documented examples
{
"message": "Unauthenticated."
}The token lacks the read:public ability.
messagestringrequiredExample: "Insufficient token scope."
Example body, from the documented examples
{
"message": "Insufficient token scope."
}Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in the Retry-After header before retrying.
Headers: Retry-After, X-RateLimit-Limit, X-RateLimit-Remaining
messagestringrequiredExample: "Too Many Attempts."
Example body, from the documented examples
{
"message": "Too Many Attempts."
}curl --request GET \
'https://versedb.com/api/v1/issues/5432/characters' \
--header 'Authorization: Bearer {YOUR_AUTH_KEY}' \
--header 'Accept: application/json'Example response 200
{
"current_page": 1,
"data": [
{
"id": 456,
"name": "Spider-Man",
"slug": "spider-man",
"real_name": "Peter Parker",
"description": "Bitten by a radioactive spider.",
"alter_ego": [
"Spidey"
],
"birthday": "2024-01-15T10:30:00.000000Z",
"birth_place": "Queens, New York",
"occupation": "Photographer",
"height": "5'10\"",
"weight": "167 lbs",
"citizenship": "American",
"education": "College",
"profile_photo_path": "uploads/characters/2024/01/spider-man.jpg",
"gender": "male",
"created_at": "2024-01-15T10:30:00.000000Z",
"updated_at": "2024-01-15T10:30:00.000000Z",
"deleted_at": "2024-01-15T10:30:00.000000Z",
"last_edited_by": 12,
"last_edited_at": "2024-01-15 10:30:00",
"public_lists_count": 4,
"debut_date": "2024-01-15T10:30:00.000000Z",
"debut_issue_id": 5432,
"original_locale": "en",
"name_i18n": {
"ja": {
"value": "講談社",
"reading": "こうだんしゃ",
"source": "madb"
}
},
"aliases_i18n": {
"en": [
"Kodansha Comics"
]
},
"real_name_i18n": {
"ja": {
"value": "講談社",
"reading": "こうだんしゃ",
"source": "madb"
}
},
"race": "Human",
"tags": [
{
"id": 12,
"name": {
"en": "Wall-crawling"
},
"slug": {
"en": "wall-crawling"
},
"type": "ability",
"order_column": 1,
"created_at": "2024-01-15T10:30:00.000000Z",
"updated_at": "2024-01-15T10:30:00.000000Z",
"pivot": {
"taggable_id": 456,
"tag_id": 12
}
}
],
"pivot": {
"issue_id": 5432,
"character_id": 456,
"sort_order": 0,
"created_at": "2024-01-15T10:30:00.000000Z",
"updated_at": "2024-01-15T10:30:00.000000Z"
}
}
],
"from": 1,
"last_page": 1,
"per_page": 50,
"to": 15,
"total": 15
}X-RateLimit-LimitintegerRequest quota per hour for your tier.
X-RateLimit-RemainingintegerRequests remaining in the current window.
Retry-AfterintegerSeconds to wait before retrying.