Skip to content

Comic Shops

Endpoints for finding and browsing comic book shops.

List comic shops.

GET/api/v1/shops
Requires a token

Returns paginated shops with optional location-based and text filtering.

Query parameters

countrystring

Filter by country. Accepts an ISO alpha-2 code or canonical country name.

Example: "US"

statestring

Filter by state or province.

Example: "NY"

citystring

Filter by city. Accepts the city name or its URL slug, case-insensitive.

Example: "New York"

qstring

Search by shop name, city, street address, postal code or state, tolerating small typos. Results are ordered by relevance when set.

Example: "manhattan"

limitinteger

Number of results per page (max 50).

Example: 20

pageinteger

Page number; meta.last_page says where the list ends.

Example: 1

languagesstring

Keep only these languages in the _i18n maps (comma-separated BCP 47 tags). No other field changes.

Example: "ja,ko"

Responses

200

Success

Headers: X-RateLimit-Limit, X-RateLimit-Remaining

dataarray of objectsrequired
data[].idintegerrequired

Example: 42

data[].namestring or nullrequired

Example: "Midtown Comics"

data[].name_i18nobjectrequired

One name per language, keyed by BCP 47 tag.

data[].aliases_i18nobjectrequired

Alternative names per language.

data[].original_localestring or nullrequired

The language the entity is from, a BCP 47 tag.

Example: "en"

data[].citystring or nullrequired

Example: "New York"

data[].state_provincestring or nullrequired

Example: "NY"

data[].countrystring or nullrequired

Example: "United States"

data[].country_codestring or nullrequired

Example: "US"

data[].logo_urlstring or nullrequired

Example: "https://...-tile_sm.webp"

data[].imagesobject or nullrequired
data[].images.tile_smstring

Example: "https://...-tile_sm.webp"

data[].images.full_lgstring

Example: "https://...-full_lg.webp"

linksobjectrequired
links.firststringrequired
links.laststringrequired
links.prevstring or nullrequired
links.nextstring or nullrequired
metaobjectrequired
meta.current_pageintegerrequired

Example: 1

meta.frominteger or nullrequired

Example: 1

meta.last_pageintegerrequired

Example: 25

meta.linksarray of objectsrequired
meta.links[].urlstring or nullrequired
meta.links[].labelstringrequired
meta.links[].pageinteger or null
meta.links[].activebooleanrequired
meta.pathstringrequired
meta.per_pageintegerrequired

Example: 20

meta.tointeger or nullrequired

Example: 20

meta.totalintegerrequired

Example: 500

401

Unauthenticated. The bearer token is missing, invalid, or revoked.

messagestringrequired

Example: "Unauthenticated."

Example body, from the documented examples

{
  "message": "Unauthenticated."
}
403

The token lacks the read:public ability.

messagestringrequired

Example: "Insufficient token scope."

Example body, from the documented examples

{
  "message": "Insufficient token scope."
}
429

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

messagestringrequired

Example: "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.

GET/api/v1/shops/{shop_id}
Requires a token

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_idintegerrequired

The shop ID.

Example: 1

Query parameters

languagesstring

Keep only these languages in the _i18n maps (comma-separated BCP 47 tags). No other field changes.

Example: "ja,ko"

Responses

200

Success

Headers: X-RateLimit-Limit, X-RateLimit-Remaining

dataobjectrequired
data.idintegerrequired

Example: 42

data.namestring or nullrequired

Example: "Midtown Comics"

data.name_i18nobjectrequired

One name per language, keyed by BCP 47 tag.

data.aliases_i18nobjectrequired

Alternative names per language.

data.original_localestring or nullrequired

The language the entity is from, a BCP 47 tag.

Example: "en"

data.addressstring or nullrequired

Example: "200 W 40th St"

data.citystring or nullrequired

Example: "New York"

data.state_provincestring or nullrequired

Example: "NY"

data.postal_codestring or nullrequired

Example: "10018"

data.countrystring or nullrequired

Example: "United States"

data.country_codestring or nullrequired

Example: "US"

data.websitestring or nullrequired

Example: "https://www.midtowncomics.com"

data.full_addressstringrequired

Example: "200 W 40th St, New York, NY, 10018, United States"

data.logo_urlstring or nullrequired

Example: "https://...-tile_sm.webp"

data.imagesobject or nullrequired
data.images.tile_smstring

Example: "https://...-tile_sm.webp"

data.images.full_lgstring

Example: "https://...-full_lg.webp"

data.operating_hoursobject or array or nullrequired

Monday first, by lowercase day name; closed or 24-hour ranges joined by commas. A missing day has unknown hours.

data.operating_hours.mondaystring
data.operating_hours.tuesdaystring
data.operating_hours.wednesdaystring
data.operating_hours.thursdaystring
data.operating_hours.fridaystring
data.operating_hours.saturdaystring
data.operating_hours.sundaystring
data.special_hoursarray of objectsrequired

Dated exceptions that have not ended, by start date.

data.special_hours[].fromstringrequired
data.special_hours[].tostringrequired
data.special_hours[].hoursstringrequired
data.special_hours[].notestring or nullrequired
data.related_shopsarray of objectsrequired
data.related_shops[].idintegerrequired

Example: 43

data.related_shops[].namestring or nullrequired

Example: "Midtown Comics Downtown"

data.related_shops[].slugstring or nullrequired

Example: "midtown-comics-downtown"

data.related_shops[].citystring or nullrequired

Example: "New York"

data.related_shops[].state_provincestring or nullrequired

Example: "NY"

data.related_shops[].countrystring or nullrequired

Example: "United States"

data.related_shops[].logo_urlstring or nullrequired

Example: "https://...-tile_sm.webp"

data.related_shops[].urlstringrequired

Example: "https://versedb.com/comic-shop/43/midtown-comics-downtown"

data.servicesarray of stringsrequired

Example: ["New Comics","Back Issues","Pull Lists","Grading"]

data.eventsarray of objectsrequired
data.events[].idintegerrequired

Example: 42

data.events[].slugstring or nullrequired

Example: "midtown-signing-2026"

data.events[].namestring or nullrequired

Example: "Midtown Signing"

data.events[].name_i18nobjectrequired

One name per language, keyed by BCP 47 tag.

data.events[].aliases_i18nobjectrequired

Alternative names per language.

data.events[].original_localestring or nullrequired

The language the entity is from, a BCP 47 tag.

Example: "en"

data.events[].typestring or nullrequired

convention or store_event.

Example: "store_event"

data.events[].start_datestring or nullrequired

Example: "2026-07-23"

data.events[].end_datestring or nullrequired

Example: "2026-07-23"

data.events[].start_timestring or nullrequired

Example: "10:00:00"

data.events[].end_timestring or nullrequired

Example: "14:00:00"

data.events[].timezonestring or nullrequired

Example: "America/New_York"

data.events[].is_onlineboolean or nullrequired
data.events[].is_fcbdboolean or nullrequired
data.events[].statusstringrequired

scheduled, cancelled, postponed or moved_online.

Example: "scheduled"

data.events[].venue_namestring or nullrequired

Example: "Midtown Comics"

data.events[].citystring or nullrequired

Example: "New York"

data.events[].regionstring or nullrequired

Example: "NY"

data.events[].country_codestring or nullrequired

Example: "US"

data.events[].full_locationstringrequired

Online Event for an online event, Location TBA when nothing is known.

Example: "Midtown Comics, New York, NY, United States"

data.events[].logo_urlstring or nullrequired

Example: "https://...-tile_sm.webp"

data.events[].imagesobject or nullrequired
data.events[].images.tile_smstring

Example: "https://...-tile_sm.webp"

data.events[].images.full_mdstring

Example: "https://...-full_md.webp"

data.events[].images.full_lgstring

Example: "https://...-full_lg.webp"

data.events[].ticket_pricestring or nullrequired

Example: "Free"

data.events[].follower_countintegerrequired

Example: 12

401

Unauthenticated. The bearer token is missing, invalid, or revoked.

messagestringrequired

Example: "Unauthenticated."

Example body, from the documented examples

{
  "message": "Unauthenticated."
}
403

The token lacks the read:public ability.

messagestringrequired

Example: "Insufficient token scope."

Example body, from the documented examples

{
  "message": "Insufficient token scope."
}
404

Not Found

messagestringrequired

Example: "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"
}
429

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

messagestringrequired

Example: "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-Limitinteger

Request quota per hour for your tier.

X-RateLimit-Remaininginteger

Requests remaining in the current window.

Retry-Afterinteger

Seconds to wait before retrying.