Endpoints for finding and browsing comic book shops.
Comic Shops
List comic shops.
/api/v1/shopsReturns paginated shops with optional location-based and text filtering.
Query parameters
countrystringFilter by country. Accepts an ISO alpha-2 code or canonical country name.
Example:
"US"statestringFilter by state or province.
Example:
"NY"citystringFilter by city. Accepts the city name or its URL slug, case-insensitive.
Example:
"New York"qstringSearch by shop name, city, street address, postal code or state, tolerating small typos. Results are ordered by relevance when set.
Example:
"manhattan"limitintegerNumber of results per page (max 50).
Example:
20pageintegerPage number; meta.last_page says where the list ends.
Example:
1languagesstringKeep only these languages in the
_i18nmaps (comma-separated BCP 47 tags). No other field changes.Example:
"ja,ko"
Responses
200Success
Success
Headers: X-RateLimit-Limit, X-RateLimit-Remaining
dataarray of objectsrequireddata[].idintegerrequiredExample:
42data[].namestring or nullrequiredExample:
"Midtown Comics"data[].name_i18nobjectrequiredOne name per language, keyed by BCP 47 tag.
data[].aliases_i18nobjectrequiredAlternative names per language.
data[].original_localestring or nullrequiredThe language the entity is from, a BCP 47 tag.
Example:
"en"data[].citystring or nullrequiredExample:
"New York"data[].state_provincestring or nullrequiredExample:
"NY"data[].countrystring or nullrequiredExample:
"United States"data[].country_codestring or nullrequiredExample:
"US"data[].logo_urlstring or nullrequiredExample:
"https://...-tile_sm.webp"data[].imagesobject or nullrequireddata[].images.tile_smstringExample:
"https://...-tile_sm.webp"data[].images.full_lgstringExample:
"https://...-full_lg.webp"linksobjectrequiredlinks.firststringrequiredlinks.laststringrequiredlinks.prevstring or nullrequiredlinks.nextstring or nullrequiredmetaobjectrequiredmeta.current_pageintegerrequiredExample:
1meta.frominteger or nullrequiredExample:
1meta.last_pageintegerrequiredExample:
25meta.linksarray of objectsrequiredmeta.links[].urlstring or nullrequiredmeta.links[].labelstringrequiredmeta.links[].pageinteger or nullmeta.links[].activebooleanrequiredmeta.pathstringrequiredmeta.per_pageintegerrequiredExample:
20meta.tointeger or nullrequiredExample:
20meta.totalintegerrequiredExample:
500
401Unauthenticated. The bearer token is missing, invalid, or revoked.
Unauthenticated. The bearer token is missing, invalid, or revoked.
messagestringrequiredExample:
"Unauthenticated."
Example body, from the documented examples
{
"message": "Unauthenticated."
}403The token lacks the read:public ability.
The token lacks the read:public ability.
messagestringrequiredExample:
"Insufficient token scope."
Example body, from the documented examples
{
"message": "Insufficient token scope."
}429Rate 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.
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."
}Example request
curl --request GET \
'https://versedb.com/api/v1/shops' \
--header 'Authorization: Bearer {YOUR_AUTH_KEY}' \
--header 'Accept: application/json'Example response 200
{
"data": [
{
"id": 42,
"name": "Midtown Comics",
"name_i18n": {
"ja": {
"value": "講談社",
"reading": "こうだんしゃ",
"source": "madb"
}
},
"aliases_i18n": {
"en": [
"Kodansha Comics"
]
},
"original_locale": "en",
"city": "New York",
"state_province": "NY",
"country": "United States",
"country_code": "US",
"logo_url": "https://...-tile_sm.webp",
"images": {
"tile_sm": "https://...-tile_sm.webp",
"full_lg": "https://...-full_lg.webp"
}
}
],
"meta": {
"current_page": 1,
"from": 1,
"last_page": 25,
"per_page": 20,
"to": 20,
"total": 500
}
}Get a comic shop.
/api/v1/shops/{shop_id}Returns full shop details including services offered.
operating_hours is keyed Monday-first by lowercase day name. Each value is
either closed or one or more 24-hour HH:MM-HH:MM ranges joined by commas
(a split shift reads 09:00-13:00,15:00-19:00). A day missing from the map
has unknown hours — that is not the same as the shop being closed that day.
special_hours lists dated exceptions to the weekly hours, ordered by start
date: holiday closures, stocktake days, late openings for a release. Each entry
has from and to (inclusive YYYY-MM-DD dates, equal for a single day),
hours in the same grammar as operating_hours, and an optional note. On the
dates it covers, an entry replaces the weekly hours. Entries that have already
ended are left out, so an empty list means no exceptions are coming up.
Path parameters
shop_idintegerrequiredThe shop ID.
Example:
1
Query parameters
languagesstringKeep only these languages in the
_i18nmaps (comma-separated BCP 47 tags). No other field changes.Example:
"ja,ko"
Responses
200Success
Success
Headers: X-RateLimit-Limit, X-RateLimit-Remaining
dataobjectrequireddata.idintegerrequiredExample:
42data.namestring or nullrequiredExample:
"Midtown Comics"data.name_i18nobjectrequiredOne name per language, keyed by BCP 47 tag.
data.aliases_i18nobjectrequiredAlternative names per language.
data.original_localestring or nullrequiredThe language the entity is from, a BCP 47 tag.
Example:
"en"data.addressstring or nullrequiredExample:
"200 W 40th St"data.citystring or nullrequiredExample:
"New York"data.state_provincestring or nullrequiredExample:
"NY"data.postal_codestring or nullrequiredExample:
"10018"data.countrystring or nullrequiredExample:
"United States"data.country_codestring or nullrequiredExample:
"US"data.websitestring or nullrequiredExample:
"https://www.midtowncomics.com"data.full_addressstringrequiredExample:
"200 W 40th St, New York, NY, 10018, United States"data.logo_urlstring or nullrequiredExample:
"https://...-tile_sm.webp"data.imagesobject or nullrequireddata.images.tile_smstringExample:
"https://...-tile_sm.webp"data.images.full_lgstringExample:
"https://...-full_lg.webp"data.operating_hoursobject or array or nullrequiredMonday first, by lowercase day name;
closedor 24-hour ranges joined by commas. A missing day has unknown hours.data.operating_hours.mondaystringdata.operating_hours.tuesdaystringdata.operating_hours.wednesdaystringdata.operating_hours.thursdaystringdata.operating_hours.fridaystringdata.operating_hours.saturdaystringdata.operating_hours.sundaystringdata.special_hoursarray of objectsrequiredDated exceptions that have not ended, by start date.
data.special_hours[].fromstringrequireddata.special_hours[].tostringrequireddata.special_hours[].hoursstringrequireddata.special_hours[].notestring or nullrequireddata.related_shopsarray of objectsrequireddata.related_shops[].idintegerrequiredExample:
43data.related_shops[].namestring or nullrequiredExample:
"Midtown Comics Downtown"data.related_shops[].slugstring or nullrequiredExample:
"midtown-comics-downtown"data.related_shops[].citystring or nullrequiredExample:
"New York"data.related_shops[].state_provincestring or nullrequiredExample:
"NY"data.related_shops[].countrystring or nullrequiredExample:
"United States"data.related_shops[].logo_urlstring or nullrequiredExample:
"https://...-tile_sm.webp"data.related_shops[].urlstringrequiredExample:
"https://versedb.com/comic-shop/43/midtown-comics-downtown"data.servicesarray of stringsrequiredExample:
["New Comics","Back Issues","Pull Lists","Grading"]data.eventsarray of objectsrequireddata.events[].idintegerrequiredExample:
42data.events[].slugstring or nullrequiredExample:
"midtown-signing-2026"data.events[].namestring or nullrequiredExample:
"Midtown Signing"data.events[].name_i18nobjectrequiredOne name per language, keyed by BCP 47 tag.
data.events[].aliases_i18nobjectrequiredAlternative names per language.
data.events[].original_localestring or nullrequiredThe language the entity is from, a BCP 47 tag.
Example:
"en"data.events[].typestring or nullrequiredconvention or store_event.
Example:
"store_event"data.events[].start_datestring or nullrequiredExample:
"2026-07-23"data.events[].end_datestring or nullrequiredExample:
"2026-07-23"data.events[].start_timestring or nullrequiredExample:
"10:00:00"data.events[].end_timestring or nullrequiredExample:
"14:00:00"data.events[].timezonestring or nullrequiredExample:
"America/New_York"data.events[].is_onlineboolean or nullrequireddata.events[].is_fcbdboolean or nullrequireddata.events[].statusstringrequiredscheduled, cancelled, postponed or moved_online.
Example:
"scheduled"data.events[].venue_namestring or nullrequiredExample:
"Midtown Comics"data.events[].citystring or nullrequiredExample:
"New York"data.events[].regionstring or nullrequiredExample:
"NY"data.events[].country_codestring or nullrequiredExample:
"US"data.events[].full_locationstringrequiredOnline Eventfor an online event,Location TBAwhen nothing is known.Example:
"Midtown Comics, New York, NY, United States"data.events[].logo_urlstring or nullrequiredExample:
"https://...-tile_sm.webp"data.events[].imagesobject or nullrequireddata.events[].images.tile_smstringExample:
"https://...-tile_sm.webp"data.events[].images.full_mdstringExample:
"https://...-full_md.webp"data.events[].images.full_lgstringExample:
"https://...-full_lg.webp"data.events[].ticket_pricestring or nullrequiredExample:
"Free"data.events[].follower_countintegerrequiredExample:
12
401Unauthenticated. The bearer token is missing, invalid, or revoked.
Unauthenticated. The bearer token is missing, invalid, or revoked.
messagestringrequiredExample:
"Unauthenticated."
Example body, from the documented examples
{
"message": "Unauthenticated."
}403The token lacks the read:public ability.
The token lacks the read:public ability.
messagestringrequiredExample:
"Insufficient token scope."
Example body, from the documented examples
{
"message": "Insufficient token scope."
}404Not Found
Not Found
messagestringrequiredExample:
"No query results for model [App\\Models\\ComicShop] 1"
Example body, from the documented examples
{
"message": "No query results for model [App\\Models\\ComicShop] 1"
}429Rate 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.
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."
}Example request
curl --request GET \
'https://versedb.com/api/v1/shops/1' \
--header 'Authorization: Bearer {YOUR_AUTH_KEY}' \
--header 'Accept: application/json'Example response 200
{
"data": {
"id": 42,
"name": "Midtown Comics",
"name_i18n": {
"ja": {
"value": "講談社",
"reading": "こうだんしゃ",
"source": "madb"
}
},
"aliases_i18n": {
"en": [
"Kodansha Comics"
]
},
"original_locale": "en",
"address": "200 W 40th St",
"city": "New York",
"state_province": "NY",
"postal_code": "10018",
"country": "United States",
"country_code": "US",
"website": "https://www.midtowncomics.com",
"full_address": "200 W 40th St, New York, NY, 10018, United States",
"logo_url": "https://...-tile_sm.webp",
"images": {
"tile_sm": "https://...-tile_sm.webp",
"full_lg": "https://...-full_lg.webp"
},
"operating_hours": {
"monday": "10:00-20:00",
"sunday": "closed"
},
"special_hours": [
{
"from": "2026-12-25",
"to": "2026-12-26",
"hours": "closed",
"note": "Closed for the holidays"
}
],
"related_shops": [
{
"id": 43,
"name": "Midtown Comics Downtown",
"slug": "midtown-comics-downtown",
"city": "New York",
"state_province": "NY",
"country": "United States",
"logo_url": "https://...-tile_sm.webp",
"url": "https://versedb.com/comic-shop/43/midtown-comics-downtown"
}
],
"services": [
"New Comics",
"Back Issues",
"Pull Lists",
"Grading"
],
"events": [
{
"id": 42,
"slug": "midtown-signing-2026",
"name": "Midtown Signing",
"name_i18n": {
"ja": {
"value": "講談社",
"reading": "こうだんしゃ",
"source": "madb"
}
},
"aliases_i18n": {
"en": [
"Kodansha Comics"
]
},
"original_locale": "en",
"type": "store_event",
"start_date": "2026-07-23",
"end_date": "2026-07-23",
"start_time": "10:00:00",
"end_time": "14:00:00",
"timezone": "America/New_York",
"status": "scheduled",
"venue_name": "Midtown Comics",
"city": "New York",
"region": "NY",
"country_code": "US",
"full_location": "Midtown Comics, New York, NY, United States",
"logo_url": "https://...-tile_sm.webp",
"images": {
"tile_sm": "https://...-tile_sm.webp",
"full_md": "https://...-full_md.webp",
"full_lg": "https://...-full_lg.webp"
},
"ticket_price": "Free",
"follower_count": 12
}
]
}
}Response headers
X-RateLimit-LimitintegerRequest quota per hour for your tier.
X-RateLimit-RemainingintegerRequests remaining in the current window.
Retry-AfterintegerSeconds to wait before retrying.