Skip to content

Podcasts

Endpoints for browsing comic book podcasts and episodes.

List all podcasts with optional search

GET/api/v1/podcasts
Requires a token

Returns a paginated list of comic book podcasts and YouTube channels, plus the languages and categories present in the catalog. Filter with q, type, language, or category, and order with sort.

Query parameters

qstring

Search by podcast name.

Example: "comic"

typestring

Filter by type (podcast or youtube).

Example: "youtube"

languagestring

Filter by language code (e.g., en, ja, fr).

Example: "en"

categoryarray of strings

Filter by category name; a podcast matching any of them is returned.

Example: ["Reviews"]

sortstring

Order: name (default), latest_episodes, newest, popular (most followers) or updated (recently synced).

Example: "latest_episodes"

limitinteger

Number of 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: 56

data[].namestring or nullrequired

Example: "War Rocket Ajax"

data[].slugstring or nullrequired

Example: "war-rocket-ajax"

data[].typestringrequired

Example: "podcast"

data[].languagestring or nullrequired

Example: "en"

data[].logo_urlstring or nullrequired

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

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

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

data[].images.full_lgstring

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

data[].follower_countintegerrequired

Example: 1240

data[].subscriber_countinteger or nullrequired

Example: 8800

data[].categoriesarray of stringsrequired

The category names.

Example: ["Comics","Pop Culture"]

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

languagesarray of stringsrequired

Example: ["en","es","fr","ja"]

categoriesarray of stringsrequired

Example: ["Comics","Pop Culture","Reviews"]

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

Example response 200

{
  "data": [
    {
      "id": 56,
      "name": "War Rocket Ajax",
      "slug": "war-rocket-ajax",
      "type": "podcast",
      "language": "en",
      "logo_url": "https://...-full_lg.webp",
      "images": {
        "tile_sm": "https://...-tile_sm.webp",
        "full_lg": "https://...-full_lg.webp"
      },
      "follower_count": 1240,
      "subscriber_count": 8800,
      "categories": [
        "Comics",
        "Pop Culture"
      ]
    }
  ],
  "meta": {
    "current_page": 1,
    "from": 1,
    "last_page": 25,
    "per_page": 20,
    "to": 20,
    "total": 500
  },
  "languages": [
    "en",
    "es",
    "fr",
    "ja"
  ],
  "categories": [
    "Comics",
    "Pop Culture",
    "Reviews"
  ]
}

Get a specific podcast.

GET/api/v1/podcasts/{podcast_id}
Requires a token

Returns full detail for one podcast, including its feed, platform links, and categories.

Path parameters

podcast_idintegerrequired

The ID of the podcast.

Example: 56

Responses

200

Success

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

dataobjectrequired
data.idintegerrequired

Example: 56

data.namestring or nullrequired

Example: "War Rocket Ajax"

data.slugstring or nullrequired

Example: "war-rocket-ajax"

data.typestringrequired

Example: "podcast"

data.languagestring or nullrequired

Example: "en"

data.logo_urlstring or nullrequired

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

data.imagesobject or nullrequired
data.images.tile_smstring

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

data.images.full_lgstring

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

data.website_urlstring or number or boolean or array or object or nullrequired

social_links.website as stored (a URL in production), or null; always printed.

Example: "https://warrocketajax.com"

data.rss_feed_urlstring or nullrequired

Example: "https://feeds.example.com/war-rocket-ajax"

data.youtube_channel_idstring or nullrequired

Example: "UC1234567890"

data.social_linksobject or array or nullrequired

Links by name, or null; an empty map prints as [].

data.social_links.websiteany
data.social_links.twitterany
data.platform_linksobject or string or number or boolean or array or nullrequired

Links by name, or null; an empty map prints as [].

data.platform_links.spotifyany
data.follower_countintegerrequired

Example: 1240

data.subscriber_countinteger or nullrequired

Example: 8800

data.categoriesarray of stringsrequired

The category names.

Example: ["Comics","Pop Culture"]

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\\Podcast] 1"

Example body, from the documented examples

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

Example response 200

{
  "data": {
    "id": 56,
    "name": "War Rocket Ajax",
    "slug": "war-rocket-ajax",
    "type": "podcast",
    "language": "en",
    "logo_url": "https://...-full_lg.webp",
    "images": {
      "tile_sm": "https://...-tile_sm.webp",
      "full_lg": "https://...-full_lg.webp"
    },
    "website_url": "https://warrocketajax.com",
    "rss_feed_url": "https://feeds.example.com/war-rocket-ajax",
    "youtube_channel_id": "UC1234567890",
    "social_links": {
      "website": "https://warrocketajax.com"
    },
    "platform_links": {
      "spotify": "https://open.spotify.com/show/abc123"
    },
    "follower_count": 1240,
    "subscriber_count": 8800,
    "categories": [
      "Comics",
      "Pop Culture"
    ]
  }
}

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.