Skip to content

Creators

Endpoints for browsing and searching comic book creators.

Creators include writers, artists, colorists, letterers, editors, and other roles.

List creators.

GET/api/v1/creators
Requires a token

Returns paginated creators by name, with optional search and a role filter.

Query parameters

qstring

Search by creator name.

Example: "alan moore"

role_idsstring

Comma-separated creator role IDs. Returns creators with any of them as a primary role or on a credit.

Example: "1,3"

sortstring

Pass any value to replace the relevance ordering applied to q results with the name.

Example: "name"

limitinteger

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: 789

data[].namestring or nullrequired

Example: "Alan Moore"

data[].slugstring or nullrequired

Example: "alan-moore"

data[].roleobject or nullrequired
data[].role.idintegerrequired

Example: 1

data[].role.namestring or nullrequired

Example: "Writer"

data[].rolesarray of objectsrequired
data[].roles[].idintegerrequired

Example: 1

data[].roles[].namestring or nullrequired

Example: "Writer"

data[].photo_urlstring or nullrequired

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

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

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

data[].images.profile_mdstring

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

data[].images.full_lgstring

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

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"

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/creators' \
  --header 'Authorization: Bearer {YOUR_AUTH_KEY}' \
  --header 'Accept: application/json'

Example response 200

{
  "data": [
    {
      "id": 789,
      "name": "Alan Moore",
      "slug": "alan-moore",
      "role": {
        "id": 1,
        "name": "Writer"
      },
      "roles": [
        {
          "id": 1,
          "name": "Writer"
        }
      ],
      "photo_url": "https://...-full_lg.webp",
      "images": {
        "tile_sm": "https://...-tile_sm.webp",
        "profile_md": "https://...-profile_md.webp",
        "full_lg": "https://...-full_lg.webp"
      },
      "name_i18n": {
        "ja": {
          "value": "講談社",
          "reading": "こうだんしゃ",
          "source": "madb"
        }
      },
      "aliases_i18n": {
        "en": [
          "Kodansha Comics"
        ]
      },
      "original_locale": "en"
    }
  ],
  "meta": {
    "current_page": 1,
    "from": 1,
    "last_page": 25,
    "per_page": 20,
    "to": 20,
    "total": 500
  }
}

Get creator details.

GET/api/v1/creators/{creator_id}
Requires a token

Returns a single creator with full details including role and awards.

Path parameters

creator_idintegerrequired

The creator ID.

Example: 789

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: 789

data.namestring or nullrequired

Example: "Alan Moore"

data.slugstring or nullrequired

Example: "alan-moore"

data.roleobject or nullrequired
data.role.idintegerrequired

Example: 1

data.role.namestring or nullrequired

Example: "Writer"

data.rolesarray of objectsrequired
data.roles[].idintegerrequired

Example: 1

data.roles[].namestring or nullrequired

Example: "Writer"

data.photo_urlstring or nullrequired

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

data.imagesobject or nullrequired
data.images.tile_smstring

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

data.images.profile_mdstring

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

data.images.full_lgstring

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

data.genderstring or nullrequired

Example: "male"

data.birthstring or nullrequired

Example: "1953-11-18"

data.deathstring or nullrequired

Example: "2026-01-01"

data.birth_placestring or nullrequired

Example: "Northampton, England"

data.countrystring or nullrequired

Example: "United Kingdom"

data.aliasesarray of strings or nullrequired

Example: ["Curt Vile"]

data.linksarray of objects or object or nullrequired

The creator's links: a list of {url, type or label}, a few older rows a map by name, or null.

data.links[].urlstringrequired
data.links[].typestring
data.links[].labelstring
data.awardsarray of objectsrequired
data.awards[].namestring or nullrequired

Example: "Eisner Award"

data.awards[].name_i18nobjectrequired

One name per language, keyed by BCP 47 tag.

data.awards[].aliases_i18nobjectrequired

Alternative names per language.

data.awards[].original_localestring or nullrequired

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

Example: "en"

data.awards[].yearinteger or nullrequired

Example: 1988

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"

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\\Creator] 789"

Example body, from the documented examples

{
  "message": "No query results for model [App\\Models\\Creator] 789"
}
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/creators/789' \
  --header 'Authorization: Bearer {YOUR_AUTH_KEY}' \
  --header 'Accept: application/json'

Example response 200

{
  "data": {
    "id": 789,
    "name": "Alan Moore",
    "slug": "alan-moore",
    "role": {
      "id": 1,
      "name": "Writer"
    },
    "roles": [
      {
        "id": 1,
        "name": "Writer"
      }
    ],
    "photo_url": "https://...-full_lg.webp",
    "images": {
      "tile_sm": "https://...-tile_sm.webp",
      "profile_md": "https://...-profile_md.webp",
      "full_lg": "https://...-full_lg.webp"
    },
    "gender": "male",
    "birth": "1953-11-18",
    "death": "2026-01-01",
    "birth_place": "Northampton, England",
    "country": "United Kingdom",
    "aliases": [
      "Curt Vile"
    ],
    "links": [
      {
        "type": "website",
        "url": "https://example.com"
      }
    ],
    "awards": [
      {
        "name": "Eisner Award",
        "name_i18n": {
          "ja": {
            "value": "講談社",
            "reading": "こうだんしゃ",
            "source": "madb"
          }
        },
        "aliases_i18n": {
          "en": [
            "Kodansha Comics"
          ]
        },
        "original_locale": "en",
        "year": 1988
      }
    ],
    "name_i18n": {
      "ja": {
        "value": "講談社",
        "reading": "こうだんしゃ",
        "source": "madb"
      }
    },
    "aliases_i18n": {
      "en": [
        "Kodansha Comics"
      ]
    },
    "original_locale": "en"
  }
}

Get creator's issues.

GET/api/v1/creators/{creator_id}/issues
Requires a token

Returns paginated issues where the creator has a credit.

Path parameters

creator_idintegerrequired

The creator ID.

Example: 789

Query parameters

limitinteger

Results per page (max 50).

Example: 20

qstring

Optional case-insensitive search within these results.

Example: "batman"

mediumstring

Comma-separated series mediums to filter by (comic, manga, manhwa, manhua, bande_dessinee, magazine).

Example: "comic,manga"

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: 5432

data[].slugstring or nullrequired

Example: "amazing-spider-man-1"

data[].series_idinteger or nullrequired

Example: 123

data[].issue_numberstring or nullrequired

Example: "1"

data[].namestring or nullrequired

Example: "The Chameleon Strikes!"

data[].cover_datestring or nullrequired

Example: "2018-09-01"

data[].release_datestring or nullrequired

Example: "2018-07-11"

data[].foc_datestring or nullrequired

Example: "2018-06-18"

data[].is_unreleasedbooleanrequired
data[].cover_urlstring or nullrequired

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

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

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

data[].images.cover_smstring

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

data[].images.cover_mdstring

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

data[].images.cover_lgstring

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

data[].is_reprintbooleanrequired
data[].content_rating_labelstring or nullrequired

Example: "Teen"

data[].min_ageinteger or nullrequired

Example: 13

data[].is_nsfwbooleanrequired
data[].average_ratingnumber or nullrequired

Example: 4.5

data[].name_i18nobjectrequired

One name per language, keyed by BCP 47 tag.

data[].seriesobject or null
data[].series.idintegerrequired

Example: 123

data[].series.namestring or nullrequired

Example: "The Amazing Spider-Man"

data[].series.slugstring or nullrequired

Example: "the-amazing-spider-man-2018"

data[].series.start_yearinteger or nullrequired

Example: 2018

data[].series.end_yearinteger or nullrequired

Example: 2022

data[].series.volume_numberinteger or nullrequired

Example: 5

data[].series.publication_typestring or nullrequired

Example: "regular_series"

data[].series.formatstring or nullrequired

Example: "Standard"

data[].series.cached_issues_countinteger or nullrequired

Example: 93

data[].series.cover_urlstring or nullrequired

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

data[].series.imagesobject or nullrequired
data[].series.images.cover_smstring

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

data[].series.images.cover_mdstring

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

data[].series.images.cover_lgstring

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

data[].series.publisher_namestring or nullrequired

Example: "Marvel"

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/creators/789/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
  }
}

Get creator's series.

GET/api/v1/creators/{creator_id}/series
Requires a token

Returns paginated series where the creator has worked. creator_issues_count is how many of the series' issues credit this creator; cached_issues_count is the whole series. A series credited to the creator without any issue credits reports 0.

Path parameters

creator_idintegerrequired

The creator ID.

Example: 789

Query parameters

limitinteger

Results per page (max 50).

Example: 20

qstring

Optional case-insensitive search within these results.

Example: "batman"

mediumstring

Comma-separated series mediums to filter by (comic, manga, manhwa, manhua, bande_dessinee, magazine).

Example: "comic,manga"

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: 123

data[].title_idinteger or nullrequired

Example: 1

data[].namestring or nullrequired

Example: "The Amazing Spider-Man"

data[].display_namestringrequired

Example: "The Amazing Spider-Man (2018)"

data[].slugstring or nullrequired

Example: "amazing-spider-man-2018"

data[].numberinteger or nullrequired

Example: 6

data[].start_yearinteger or nullrequired

Example: 2018

data[].end_yearinteger or nullrequired

Example: 2022

data[].cover_urlstring or nullrequired

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

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

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

data[].images.cover_mdstring

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

data[].images.cover_lgstring

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

data[].mediumstring or nullrequired

Example: "comic"

data[].publication_typestring or nullrequired

Example: "regular_series"

data[].formatstring or nullrequired

Example: "Standard"

data[].statusstring or nullrequired

Example: "Ongoing"

data[].original_namestring or nullrequired

Example: "The Amazing Spider-Man"

data[].original_languagestring or nullrequired

Example: "en"

data[].languagestring or nullrequired

Example: "en"

data[].cached_issues_countinteger or nullrequired

Example: 94

data[].average_ratingstring or nullrequired

Example: "4.25"

data[].total_reviewsinteger or nullrequired

Example: 12

data[].issues_average_ratingstring or nullrequired

Example: "4.10"

data[].issues_rated_countinteger or nullrequired

Example: 40

data[].content_rating_labelstring or nullrequired

Example: "Teen"

data[].min_ageinteger or nullrequired

Example: 13

data[].is_nsfwboolean or nullrequired
data[].publisher_namestring or nullrequired

Example: "Marvel"

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 series is from, a BCP 47 tag.

Example: "ja"

data[].creator_issues_countintegerrequired

How many of the series' live issues credit this creator; 0 for a series credited without issue credits.

Example: 12

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/creators/789/series' \
  --header 'Authorization: Bearer {YOUR_AUTH_KEY}' \
  --header 'Accept: application/json'

Example response 200

{
  "data": [
    {
      "id": 123,
      "title_id": 1,
      "name": "The Amazing Spider-Man",
      "display_name": "The Amazing Spider-Man (2018)",
      "slug": "amazing-spider-man-2018",
      "number": 6,
      "start_year": 2018,
      "end_year": 2022,
      "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"
      },
      "medium": "comic",
      "publication_type": "regular_series",
      "format": "Standard",
      "status": "Ongoing",
      "original_name": "The Amazing Spider-Man",
      "original_language": "en",
      "language": "en",
      "cached_issues_count": 94,
      "average_rating": "4.25",
      "total_reviews": 12,
      "issues_average_rating": "4.10",
      "issues_rated_count": 40,
      "content_rating_label": "Teen",
      "min_age": 13,
      "publisher_name": "Marvel",
      "name_i18n": {
        "ja": {
          "value": "講談社",
          "reading": "こうだんしゃ",
          "source": "madb"
        }
      },
      "aliases_i18n": {
        "en": [
          "Kodansha Comics"
        ]
      },
      "original_locale": "ja",
      "creator_issues_count": 12
    }
  ],
  "meta": {
    "current_page": 1,
    "from": 1,
    "last_page": 25,
    "per_page": 20,
    "to": 20,
    "total": 500
  }
}

Get creator's blog posts.

GET/api/v1/creators/{creator_id}/blog-posts
Requires a token

Returns paginated published blog posts where this creator is featured.

Path parameters

creator_idintegerrequired

The creator ID.

Example: 789

Query parameters

limitinteger

Results per page (max 50).

Example: 20

pageinteger

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

Example: 1

Responses

200

Success

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

dataarray of objectsrequired
data[].idintegerrequired

Example: 12

data[].slugstring or nullrequired

Example: "spotlight-alan-moore"

data[].titlestring or nullrequired

Example: "Creator Spotlight: Alan Moore"

data[].featured_image_urlstring or nullrequired

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

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

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

data[].images.cover_lgstring

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

data[].categoryobject
data[].category.idintegerrequired

Example: 2

data[].category.namestring or nullrequired

Example: "Spotlights"

data[].category.slugstring or nullrequired

Example: "spotlights"

data[].authorobject
data[].author.idintegerrequired

Example: 1

data[].author.namestring or nullrequired

Example: "versedb"

data[].published_atstring or nullrequired

Example: "2026-04-15T12:00:00+00:00"

data[].reading_timeintegerrequired

Example: 6

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/creators/789/blog-posts' \
  --header 'Authorization: Bearer {YOUR_AUTH_KEY}' \
  --header 'Accept: application/json'

Example response 200

{
  "data": [
    {
      "id": 12,
      "slug": "spotlight-alan-moore",
      "title": "Creator Spotlight: Alan Moore",
      "featured_image_url": "https://...-cover_sm.webp",
      "images": {
        "cover_sm": "https://...-cover_sm.webp",
        "cover_lg": "https://...-cover_lg.webp"
      },
      "category": {
        "id": 2,
        "name": "Spotlights",
        "slug": "spotlights"
      },
      "author": {
        "id": 1,
        "name": "versedb"
      },
      "published_at": "2026-04-15T12:00:00+00:00",
      "reading_time": 6
    }
  ],
  "meta": {
    "current_page": 1,
    "from": 1,
    "last_page": 25,
    "per_page": 20,
    "to": 20,
    "total": 500
  }
}

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.