The official TypeScript/JavaScript SDK for the VerseDB public API — search and browse a database of 1M+ comics (series, issues, creators, characters, publishers, story arcs), look up barcodes, and manage your collection and lists.
Published on npm as
@versedbcom/sdk. The code is generated from the VerseDB OpenAPI spec via Speakeasy and republished automatically whenever the API changes.
npm install @versedbcom/sdkGet a personal API token at versedb.com/my/apps/custom.
import { VerseDB } from "@versedbcom/sdk";
const vdb = new VerseDB({ token: process.env.VERSEDB_TOKEN });
const { result } = await vdb.series.listSeries({ q: "batman", limit: 20 });
console.log(result.data);That's it — no base URL, bearer headers, or JSON parsing. The client targets https://versedb.com/api/v1.
- Typed models and autocomplete.
Series,Issue,Creator, and the rest are generated types — mediums, publication types, and issue formats are enums, not magic strings. - Pagination handled. List endpoints accept
page/limitand return typedmetapaging info (currentPage,lastPage,total) — no untypednext_page_urlstrings. - Rate limits won't surprise you. Every response exposes the
X-RateLimit-*headers as typed values,429s surface as typed errors carryingRetry-After, and automatic backoff is oneretryConfigoption away (see Retries below). Limits: reads 300/hr free, 1,000/hr PRO; writes 150/hr free, 500/hr PRO. - Typed errors.
401,403(missing scope),409, and422surface as catchable, typed errors instead of raw responses. - Auth set once on the client, not per request.
- Stays in sync. Regenerated from the spec on every API change; v1 evolves additively, so new fields and endpoints arrive as non-breaking minor bumps.
Runnable versions live in examples/.
Requires the lookup:barcode and write:collection scopes.
const { result } = await vdb.barcodeLookup.lookupByUPC({ upc: "75960608936800111" });
await vdb.userCollections.addIssueToCollection({
issueId: result.data!.id!,
body: { condition: "NM", pricePaid: 4.99 },
});Pre-1995 barcodes are not unique — a 409 response carries a matches array for the user to pick from.
Requires the write:list scope.
const { result } = await vdb.lists.createList({
title: "Essential X-Men",
entityType: "issues",
});
await vdb.lists.addItemToList({
listId: result.data!.id!,
body: { entityId: 5432 },
});| Scope | Grants |
|---|---|
read:public |
Catalog reads (default) |
lookup:barcode |
UPC/ISBN lookup |
write:collection |
Manage your collection |
write:list |
Manage your lists |
Scopes are chosen when creating a token at /my/apps/custom; a missing scope surfaces as a typed 403 error.
- Interactive docs: versedb.com/api/docs
- OpenAPI 3.1 spec: versedb.com/api/docs.openapi
ComicTagger's VerseDB talker uses the v1 API end to end — barcode lookup and catalog reads while tagging comic archives.
The SDK source is generated — see CONTRIBUTING.md before opening a PR.
VerseDB API Documentation: REST API for accessing comic book data, managing collections, and building integrations with VerseDB.
- VerseDB TypeScript SDK
- Installation
- Quickstart
- Why use the SDK instead of raw HTTP?
- Recipes
- Token scopes
- API reference
- Showcase
- Contributing
- License
- SDK Installation
- Requirements
- SDK Example Usage
- Authentication
- Available Resources and Operations
- Standalone functions
- Retries
- Error Handling
- Server Selection
- Custom HTTP Client
- Debugging
The SDK can be installed with either npm, pnpm, bun or yarn package managers.
npm add @versedbcom/sdkpnpm add @versedbcom/sdkbun add @versedbcom/sdkyarn add @versedbcom/sdkNote
This package is published as an ES Module (ESM) only. For applications using
CommonJS, use await import("@versedbcom/sdk") to import and use this package.
For supported JavaScript runtimes, please consult RUNTIMES.md.
import { VerseDB } from "@versedbcom/sdk";
const verseDB = new VerseDB({
token: "<YOUR_BEARER_TOKEN_HERE>",
});
async function run() {
const result = await verseDB.activity.getActivityFeed({
perPage: 20,
});
console.log(result);
}
run();This SDK supports the following security scheme globally:
| Name | Type | Scheme |
|---|---|---|
token |
http | HTTP Bearer |
To authenticate with the API the token parameter must be set when initializing the SDK client instance. For example:
import { VerseDB } from "@versedbcom/sdk";
const verseDB = new VerseDB({
token: "<YOUR_BEARER_TOKEN_HERE>",
});
async function run() {
const result = await verseDB.activity.getActivityFeed({
perPage: 20,
});
console.log(result);
}
run();Available methods
- getActivityFeed - Get activity feed.
- lookupByUPC - Lookup by UPC.
- lookupByISBN - Lookup by ISBN.
- listCharacters - List characters.
- getCharacterDetails - Get character details.
- getCharacterSeries - Get character series.
- getCharacterIssues - Get character issues.
- getCharacterTeams - Get character teams.
- listComicShops - List comic shops.
- getAComicShop - Get a comic shop.
- listCreators - List creators.
- getCreatorDetails - Get creator details.
- getCreatorsBlogPosts - Get creator's blog posts.
- getCreatorsIssues - Get creator's issues.
- getCreatorsSeries - Get creator's series.
- listEvents - List events.
- getAnEvent - Get an event.
- followContent - Follow content.
- unfollowContent - Unfollow content.
- checkFollowStatus - Check follow status.
- updateFollowPreferences - Update follow preferences.
- getAchievementsForTheAuthenticatedUser - Get achievements for the authenticated user.
- listImprints - List imprints
- getImprintDetails - Get imprint details
- listIssues - List issues.
- getIssueDetails - Get issue details.
- getIssueVariants - Get issue variants.
- getVariantDetails - Get variant details.
- getIssueCreators - Get issue creators.
- getIssueCharacters - Get issue characters.
- getKeyIssueReasons - Get key issue reasons.
- listKeyIssueReasons - List key issue reasons.
- browseLists - Browse lists.
- createList - Create list.
- browseSystemLists - Browse system lists.
- getList - Get list.
- updateList - Update list.
- deleteList - Delete list.
- getUsersLists - Get user's lists.
- addItemToList - Add item to list.
- removeItemFromList - Remove item from list.
- reorderItems - Reorder items.
- saveList - Save list.
- unsaveList - Unsave list.
- likeList - Like list.
- unlikeList - Unlike list.
- liveListings - Live listings.
- getAllPriceSnapshotsForAllGradesOfAnIssueforPricingOverview - Get all price snapshots for all grades of an issue (for pricing overview).
- submitAMarketSale - Submit a market sale.
- getTheAuthenticatedUsersNewsletterSubscriptionStatus - Get the authenticated user's newsletter subscription status.
- subscribeTheAuthenticatedUserToTheNewsletter - Subscribe the authenticated user to the newsletter.
- unsubscribeTheAuthenticatedUserFromTheNewsletter - Unsubscribe the authenticated user from the newsletter.
- listAllPodcastsWithOptionalSearch - List all podcasts with optional search
- getASpecificPodcast - Get a specific podcast.
- listEpisodesForASpecificPodcast - List episodes for a specific podcast
- getASpecificPodcastEpisode - Get a specific podcast episode.
- getUserProfile - Get user profile.
- listAllPublishersWithOptionalSearch - List all publishers with optional search
- getPublisherDetails - Get publisher details
- listSeries - List series.
- getSeriesDetails - Get series details.
- getSeriesIssues - Get series issues.
- getSeriesCreators - Get series creators.
- getSeriesCharacters - Get series characters.
- listAllStoryArcsWithOptionalSearch - List all story arcs with optional search
- getStoryArcDetail - Get story arc detail.
- getStoryArcsForASpecificIssue - Get story arcs for a specific issue
- getStoryArcsForASpecificCharacter - Get story arcs for a specific character
- getStoryArcsForASpecificUniverse - Get story arcs for a specific universe
- listAllTeamsWithOptionalSearch - List all teams with optional search
- getASpecificTeam - Get a specific team
- getCharactersForASpecificTeammembers - Get characters for a specific team (members)
- getSeriesForASpecificTeam - Get series for a specific team
- getIssuesForASpecificTeam - Get issues for a specific team
- listTitles - List titles
- getASpecificTitle - Get a specific title
- listUniverses - List universes
- getASpecificUniverse - Get a specific universe
- getTheAuthenticatedUser - Get the authenticated user.
- listPullList - List pull list.
- listWishlist - List wishlist.
- listFollows - List follows.
- listReadStatus - List read status.
- addToPullList - Add to pull list.
- removeFromPullList - Remove from pull list.
- markAsRead - Mark as read.
- editReadingDate - Edit reading date.
- markAsUnread - Mark as unread.
- addToWishlist - Add to wishlist.
- removeFromWishlist - Remove from wishlist.
- listCollection - List collection.
- addIssueToCollection - Add issue to collection.
- updateCollectionItem - Update collection item.
- removeIssueFromCollection - Remove issue from collection.
All the methods listed above are available as standalone functions. These functions are ideal for use in applications running in the browser, serverless runtimes or other environments where application bundle size is a primary concern. When using a bundler to build your application, all unused functionality will be either excluded from the final bundle or tree-shaken away.
To read more about standalone functions, check FUNCTIONS.md.
Available standalone functions
activityGetActivityFeed- Get activity feed.barcodeLookupLookupByISBN- Lookup by ISBN.barcodeLookupLookupByUPC- Lookup by UPC.charactersGetCharacterDetails- Get character details.charactersGetCharacterIssues- Get character issues.charactersGetCharacterSeries- Get character series.charactersGetCharacterTeams- Get character teams.charactersListCharacters- List characters.comicShopsGetAComicShop- Get a comic shop.comicShopsListComicShops- List comic shops.creatorsGetCreatorDetails- Get creator details.creatorsGetCreatorsBlogPosts- Get creator's blog posts.creatorsGetCreatorsIssues- Get creator's issues.creatorsGetCreatorsSeries- Get creator's series.creatorsListCreators- List creators.eventsGetAnEvent- Get an event.eventsListEvents- List events.followsCheckFollowStatus- Check follow status.followsFollowContent- Follow content.followsUnfollowContent- Unfollow content.followsUpdateFollowPreferences- Update follow preferences.gamificationGetAchievementsForTheAuthenticatedUser- Get achievements for the authenticated user.imprintsGetImprintDetails- Get imprint detailsimprintsListImprints- List imprintsissuesGetIssueCharacters- Get issue characters.issuesGetIssueCreators- Get issue creators.issuesGetIssueDetails- Get issue details.issuesGetIssueVariants- Get issue variants.issuesGetKeyIssueReasons- Get key issue reasons.issuesGetVariantDetails- Get variant details.issuesListIssues- List issues.keyIssueReasonsListKeyIssueReasons- List key issue reasons.listsAddItemToList- Add item to list.listsBrowseLists- Browse lists.listsBrowseSystemLists- Browse system lists.listsCreateList- Create list.listsDeleteList- Delete list.listsGetList- Get list.listsGetUsersLists- Get user's lists.listsLikeList- Like list.listsRemoveItemFromList- Remove item from list.listsReorderItems- Reorder items.listsSaveList- Save list.listsUnlikeList- Unlike list.listsUnsaveList- Unsave list.listsUpdateList- Update list.marketGetAllPriceSnapshotsForAllGradesOfAnIssueforPricingOverview- Get all price snapshots for all grades of an issue (for pricing overview).marketLiveListings- Live listings.marketSubmitAMarketSale- Submit a market sale.newsletterGetTheAuthenticatedUsersNewsletterSubscriptionStatus- Get the authenticated user's newsletter subscription status.newsletterSubscribeTheAuthenticatedUserToTheNewsletter- Subscribe the authenticated user to the newsletter.newsletterUnsubscribeTheAuthenticatedUserFromTheNewsletter- Unsubscribe the authenticated user from the newsletter.podcastsGetASpecificPodcast- Get a specific podcast.podcastsGetASpecificPodcastEpisode- Get a specific podcast episode.podcastsListAllPodcastsWithOptionalSearch- List all podcasts with optional searchpodcastsListEpisodesForASpecificPodcast- List episodes for a specific podcastpublicProfilesGetUserProfile- Get user profile.publishersGetPublisherDetails- Get publisher detailspublishersListAllPublishersWithOptionalSearch- List all publishers with optional searchseriesGetSeriesCharacters- Get series characters.seriesGetSeriesCreators- Get series creators.seriesGetSeriesDetails- Get series details.seriesGetSeriesIssues- Get series issues.seriesListSeries- List series.storyArcsGetStoryArcDetail- Get story arc detail.storyArcsGetStoryArcsForASpecificCharacter- Get story arcs for a specific characterstoryArcsGetStoryArcsForASpecificIssue- Get story arcs for a specific issuestoryArcsGetStoryArcsForASpecificUniverse- Get story arcs for a specific universestoryArcsListAllStoryArcsWithOptionalSearch- List all story arcs with optional searchteamsGetASpecificTeam- Get a specific teamteamsGetCharactersForASpecificTeammembers- Get characters for a specific team (members)teamsGetIssuesForASpecificTeam- Get issues for a specific teamteamsGetSeriesForASpecificTeam- Get series for a specific teamteamsListAllTeamsWithOptionalSearch- List all teams with optional searchtitlesGetASpecificTitle- Get a specific titletitlesListTitles- List titlesuniversesGetASpecificUniverse- Get a specific universeuniversesListUniverses- List universesuserAddToPullList- Add to pull list.userAddToWishlist- Add to wishlist.userCollectionsAddIssueToCollection- Add issue to collection.userCollectionsListCollection- List collection.userCollectionsRemoveIssueFromCollection- Remove issue from collection.userCollectionsUpdateCollectionItem- Update collection item.userEditReadingDate- Edit reading date.userGetTheAuthenticatedUser- Get the authenticated user.userListFollows- List follows.userListPullList- List pull list.userListReadStatus- List read status.userListWishlist- List wishlist.userMarkAsRead- Mark as read.userMarkAsUnread- Mark as unread.userRemoveFromPullList- Remove from pull list.userRemoveFromWishlist- Remove from wishlist.
Some of the endpoints in this SDK support retries. If you use the SDK without any configuration, it will fall back to the default retry strategy provided by the API. However, the default retry strategy can be overridden on a per-operation basis, or across the entire SDK.
To change the default retry strategy for a single API call, simply provide a retryConfig object to the call:
import { VerseDB } from "@versedbcom/sdk";
const verseDB = new VerseDB({
token: "<YOUR_BEARER_TOKEN_HERE>",
});
async function run() {
const result = await verseDB.activity.getActivityFeed({
perPage: 20,
}, {
retries: {
strategy: "backoff",
backoff: {
initialInterval: 1,
maxInterval: 50,
exponent: 1.1,
maxElapsedTime: 100,
},
retryConnectionErrors: false,
},
});
console.log(result);
}
run();If you'd like to override the default retry strategy for all operations that support retries, you can provide a retryConfig at SDK initialization:
import { VerseDB } from "@versedbcom/sdk";
const verseDB = new VerseDB({
retryConfig: {
strategy: "backoff",
backoff: {
initialInterval: 1,
maxInterval: 50,
exponent: 1.1,
maxElapsedTime: 100,
},
retryConnectionErrors: false,
},
token: "<YOUR_BEARER_TOKEN_HERE>",
});
async function run() {
const result = await verseDB.activity.getActivityFeed({
perPage: 20,
});
console.log(result);
}
run();VerseDbError is the base class for all HTTP error responses. It has the following properties:
| Property | Type | Description |
|---|---|---|
error.message |
string |
Error message |
error.statusCode |
number |
HTTP response status code eg 404 |
error.headers |
Headers |
HTTP response headers |
error.body |
string |
HTTP body. Can be empty string if no body is returned. |
error.rawResponse |
Response |
Raw HTTP response |
error.data$ |
Optional. Some errors may contain structured data. See Error Classes. |
import { VerseDB } from "@versedbcom/sdk";
import * as errors from "@versedbcom/sdk/models/errors";
const verseDB = new VerseDB({
token: "<YOUR_BEARER_TOKEN_HERE>",
});
async function run() {
try {
const result = await verseDB.activity.getActivityFeed({
perPage: 20,
});
console.log(result);
} catch (error) {
// The base class for HTTP error responses
if (error instanceof errors.VerseDbError) {
console.log(error.message);
console.log(error.statusCode);
console.log(error.body);
console.log(error.headers);
// Depending on the method different errors may be thrown
if (error instanceof errors.GetActivityFeedUnauthorizedError) {
console.log(error.data$.message); // string
}
}
}
}
run();Primary error:
VerseDbError: The base class for HTTP error responses.
Less common errors (245)
Network errors:
ConnectionError: HTTP client was unable to make a request to a server.RequestTimeoutError: HTTP request timed out due to an AbortSignal signal.RequestAbortedError: HTTP request was aborted by the client.InvalidRequestError: Any input used to create a request is invalid.UnexpectedClientError: Unrecognised or unexpected error.
Inherit from VerseDbError:
GetActivityFeedUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*LookupByUPCUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*LookupByISBNUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*ListCharactersUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*GetCharacterDetailsUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*GetCharacterSeriesUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*GetCharacterIssuesUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*GetCharacterTeamsUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*ListComicShopsUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*GetAComicShopUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*ListCreatorsUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*GetCreatorDetailsUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*GetCreatorsBlogPostsUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*GetCreatorsIssuesUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*GetCreatorsSeriesUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*ListEventsUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*GetAnEventUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*FollowContentUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*UnfollowContentUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*CheckFollowStatusUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*UpdateFollowPreferencesUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*GetAchievementsForTheAuthenticatedUserUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*ListImprintsUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*GetImprintDetailsUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*ListIssuesUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*GetIssueDetailsUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*GetIssueVariantsUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*GetVariantDetailsUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*GetIssueCreatorsUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*GetIssueCharactersUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*GetKeyIssueReasonsUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*ListKeyIssueReasonsUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*BrowseListsUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*CreateListUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*BrowseSystemListsUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*GetListUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*UpdateListUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*DeleteListUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*GetUsersListsUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*AddItemToListUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*RemoveItemFromListUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*ReorderItemsUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*SaveListUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*UnsaveListUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*LikeListUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*UnlikeListUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*LiveListingsUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*GetAllPriceSnapshotsForAllGradesOfAnIssueforPricingOverviewUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*SubmitAMarketSaleUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*GetTheAuthenticatedUsersNewsletterSubscriptionStatusUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*SubscribeTheAuthenticatedUserToTheNewsletterUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*UnsubscribeTheAuthenticatedUserFromTheNewsletterUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*ListAllPodcastsWithOptionalSearchUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*GetASpecificPodcastUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*ListEpisodesForASpecificPodcastUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*GetASpecificPodcastEpisodeUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*GetUserProfileUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*ListAllPublishersWithOptionalSearchUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*GetPublisherDetailsUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*ListSeriesUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*GetSeriesDetailsUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*GetSeriesIssuesUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*GetSeriesCreatorsUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*GetSeriesCharactersUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*ListAllStoryArcsWithOptionalSearchUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*GetStoryArcDetailUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*GetStoryArcsForASpecificIssueUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*GetStoryArcsForASpecificCharacterUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*GetStoryArcsForASpecificUniverseUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*ListAllTeamsWithOptionalSearchUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*GetASpecificTeamUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*GetCharactersForASpecificTeammembersUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*GetSeriesForASpecificTeamUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*GetIssuesForASpecificTeamUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*ListTitlesUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*GetASpecificTitleUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*ListUniversesUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*GetASpecificUniverseUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*GetTheAuthenticatedUserUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*ListPullListUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*ListWishlistUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*ListFollowsUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*ListReadStatusUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*AddToPullListUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*RemoveFromPullListUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*MarkAsReadUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*EditReadingDateUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*MarkAsUnreadUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*AddToWishlistUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*RemoveFromWishlistUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*ListCollectionUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*AddIssueToCollectionUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*UpdateCollectionItemUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*RemoveIssueFromCollectionUnauthorizedError: Unauthenticated. The bearer token is missing, invalid, or revoked. Status code401. Applicable to 1 of 94 methods.*GetCharacterSeriesPaymentRequiredError: PRO subscription required (User API only). Status code402. Applicable to 1 of 94 methods.*GetCharacterIssuesPaymentRequiredError: PRO subscription required (User API only). Status code402. Applicable to 1 of 94 methods.*GetCharacterTeamsPaymentRequiredError: PRO subscription required (User API only). Status code402. Applicable to 1 of 94 methods.*GetIssueVariantsPaymentRequiredError: PRO Required. Status code402. Applicable to 1 of 94 methods.*GetVariantDetailsPaymentRequiredError: PRO Required. Status code402. Applicable to 1 of 94 methods.*GetIssueCreatorsPaymentRequiredError: PRO Required. Status code402. Applicable to 1 of 94 methods.*GetIssueCharactersPaymentRequiredError: PRO Required. Status code402. Applicable to 1 of 94 methods.*GetKeyIssueReasonsPaymentRequiredError: PRO Required. Status code402. Applicable to 1 of 94 methods.*GetSeriesIssuesPaymentRequiredError: PRO Required. Status code402. Applicable to 1 of 94 methods.*GetSeriesCreatorsPaymentRequiredError: PRO Required. Status code402. Applicable to 1 of 94 methods.*GetSeriesCharactersPaymentRequiredError: PRO Required. Status code402. Applicable to 1 of 94 methods.*GetStoryArcsForASpecificIssuePaymentRequiredError: PRO subscription required (User API only). Status code402. Applicable to 1 of 94 methods.*GetStoryArcsForASpecificCharacterPaymentRequiredError: PRO subscription required (User API only). Status code402. Applicable to 1 of 94 methods.*GetStoryArcsForASpecificUniversePaymentRequiredError: PRO subscription required (User API only). Status code402. Applicable to 1 of 94 methods.*LookupByUPCForbiddenError: Missing Ability. Status code403. Applicable to 1 of 94 methods.*LookupByISBNForbiddenError: Missing Ability. Status code403. Applicable to 1 of 94 methods.*CreateListForbiddenError: Limit Reached. Status code403. Applicable to 1 of 94 methods.*GetListForbiddenError: Private List. Status code403. Applicable to 1 of 94 methods.*UpdateListForbiddenError: Unauthorized. Status code403. Applicable to 1 of 94 methods.*ResponseBodyError1: Wishlist. Status code403. Applicable to 1 of 94 methods.*ResponseBodyError2: Unauthorized. Status code403. Applicable to 1 of 94 methods.*AddItemToListForbiddenError: Item Limit. Status code403. Applicable to 1 of 94 methods.*RemoveItemFromListForbiddenError: Unauthorized. Status code403. Applicable to 1 of 94 methods.*SaveListForbiddenError: Own List. Status code403. Applicable to 1 of 94 methods.*LikeListForbiddenError: Own List. Status code403. Applicable to 1 of 94 methods.*AddIssueToCollectionForbiddenError: Account Pending Deletion. Status code403. Applicable to 1 of 94 methods.*LookupByUPCNotFoundError: Not Found. Status code404. Applicable to 1 of 94 methods.*LookupByISBNNotFoundError: Not Found. Status code404. Applicable to 1 of 94 methods.*GetCharacterDetailsNotFoundError: Not Found. Status code404. Applicable to 1 of 94 methods.*GetCreatorDetailsNotFoundError: Not Found. Status code404. Applicable to 1 of 94 methods.*FollowContentNotFoundError: Not Found. Status code404. Applicable to 1 of 94 methods.*UnfollowContentNotFoundError: Not Found. Status code404. Applicable to 1 of 94 methods.*GetIssueDetailsNotFoundError: Not Found. Status code404. Applicable to 1 of 94 methods.*GetVariantDetailsNotFoundError: Not Found. Status code404. Applicable to 1 of 94 methods.*GetListNotFoundError: Not Found. Status code404. Applicable to 1 of 94 methods.*RemoveItemFromListNotFoundError: Not Found. Status code404. Applicable to 1 of 94 methods.*LiveListingsNotFoundError: Market Disabled. Status code404. Applicable to 1 of 94 methods.*UnsubscribeTheAuthenticatedUserFromTheNewsletterNotFoundError: . Status code404. Applicable to 1 of 94 methods.*GetUserProfileNotFoundError: Not Found. Status code404. Applicable to 1 of 94 methods.*GetSeriesDetailsNotFoundError: Not Found. Status code404. Applicable to 1 of 94 methods.*UpdateCollectionItemNotFoundError: Not Found. Status code404. Applicable to 1 of 94 methods.*RemoveIssueFromCollectionNotFoundError: Not Found. Status code404. Applicable to 1 of 94 methods.*LookupByUPCConflictError: Multiple Matches. Status code409. Applicable to 1 of 94 methods.*AddItemToListConflictError: Already Exists. Status code409. Applicable to 1 of 94 methods.*SubmitAMarketSaleConflictError: Duplicate. Status code409. Applicable to 1 of 94 methods.*SubscribeTheAuthenticatedUserToTheNewsletterConflictError: . Status code409. Applicable to 1 of 94 methods.*UpdateFollowPreferencesUnprocessableEntityError: Not Following. Status code422. Applicable to 1 of 94 methods.*AddToPullListUnprocessableEntityError: Series Not Found. Status code422. Applicable to 1 of 94 methods.*MarkAsReadUnprocessableEntityError: Invalid Variant. Status code422. Applicable to 1 of 94 methods.*AddToWishlistUnprocessableEntityError: Wishlist Full. Status code422. Applicable to 1 of 94 methods.*AddIssueToCollectionUnprocessableEntityError: Invalid Variant. Status code422. Applicable to 1 of 94 methods.*GetActivityFeedTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*LookupByUPCTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*LookupByISBNTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*ListCharactersTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*GetCharacterDetailsTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*GetCharacterSeriesTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*GetCharacterIssuesTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*GetCharacterTeamsTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*ListComicShopsTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*GetAComicShopTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*ListCreatorsTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*GetCreatorDetailsTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*GetCreatorsBlogPostsTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*GetCreatorsIssuesTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*GetCreatorsSeriesTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*ListEventsTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*GetAnEventTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*FollowContentTooManyRequestsError: Rate limit exceeded. This endpoint allows 150/hour (free) or 500/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*UnfollowContentTooManyRequestsError: Rate limit exceeded. This endpoint allows 150/hour (free) or 500/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*CheckFollowStatusTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*UpdateFollowPreferencesTooManyRequestsError: Rate limit exceeded. This endpoint allows 150/hour (free) or 500/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*GetAchievementsForTheAuthenticatedUserTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*ListImprintsTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*GetImprintDetailsTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*ListIssuesTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*GetIssueDetailsTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*GetIssueVariantsTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*GetVariantDetailsTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*GetIssueCreatorsTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*GetIssueCharactersTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*GetKeyIssueReasonsTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*ListKeyIssueReasonsTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*BrowseListsTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*CreateListTooManyRequestsError: Rate limit exceeded. This endpoint allows 150/hour (free) or 500/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*BrowseSystemListsTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*GetListTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*UpdateListTooManyRequestsError: Rate limit exceeded. This endpoint allows 150/hour (free) or 500/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*DeleteListTooManyRequestsError: Rate limit exceeded. This endpoint allows 150/hour (free) or 500/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*GetUsersListsTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*AddItemToListTooManyRequestsError: Rate limit exceeded. This endpoint allows 150/hour (free) or 500/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*RemoveItemFromListTooManyRequestsError: Rate limit exceeded. This endpoint allows 150/hour (free) or 500/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*ReorderItemsTooManyRequestsError: Rate limit exceeded. This endpoint allows 150/hour (free) or 500/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*SaveListTooManyRequestsError: Rate limit exceeded. This endpoint allows 150/hour (free) or 500/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*UnsaveListTooManyRequestsError: Rate limit exceeded. This endpoint allows 150/hour (free) or 500/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*LikeListTooManyRequestsError: Rate limit exceeded. This endpoint allows 150/hour (free) or 500/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*UnlikeListTooManyRequestsError: Rate limit exceeded. This endpoint allows 150/hour (free) or 500/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*LiveListingsTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*GetAllPriceSnapshotsForAllGradesOfAnIssueforPricingOverviewTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*SubmitAMarketSaleTooManyRequestsError: Rate limit exceeded. This endpoint allows 150/hour (free) or 500/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*GetTheAuthenticatedUsersNewsletterSubscriptionStatusTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*SubscribeTheAuthenticatedUserToTheNewsletterTooManyRequestsError: Rate limit exceeded. This endpoint allows 150/hour (free) or 500/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*UnsubscribeTheAuthenticatedUserFromTheNewsletterTooManyRequestsError: Rate limit exceeded. This endpoint allows 150/hour (free) or 500/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*ListAllPodcastsWithOptionalSearchTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*GetASpecificPodcastTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*ListEpisodesForASpecificPodcastTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*GetASpecificPodcastEpisodeTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*GetUserProfileTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*ListAllPublishersWithOptionalSearchTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*GetPublisherDetailsTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*ListSeriesTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*GetSeriesDetailsTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*GetSeriesIssuesTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*GetSeriesCreatorsTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*GetSeriesCharactersTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*ListAllStoryArcsWithOptionalSearchTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*GetStoryArcDetailTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*GetStoryArcsForASpecificIssueTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*GetStoryArcsForASpecificCharacterTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*GetStoryArcsForASpecificUniverseTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*ListAllTeamsWithOptionalSearchTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*GetASpecificTeamTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*GetCharactersForASpecificTeammembersTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*GetSeriesForASpecificTeamTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*GetIssuesForASpecificTeamTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*ListTitlesTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*GetASpecificTitleTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*ListUniversesTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*GetASpecificUniverseTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*GetTheAuthenticatedUserTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*ListPullListTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*ListWishlistTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*ListFollowsTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*ListReadStatusTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*AddToPullListTooManyRequestsError: Rate limit exceeded. This endpoint allows 150/hour (free) or 500/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*RemoveFromPullListTooManyRequestsError: Rate limit exceeded. This endpoint allows 150/hour (free) or 500/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*MarkAsReadTooManyRequestsError: Rate limit exceeded. This endpoint allows 150/hour (free) or 500/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*EditReadingDateTooManyRequestsError: Rate limit exceeded. This endpoint allows 150/hour (free) or 500/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*MarkAsUnreadTooManyRequestsError: Rate limit exceeded. This endpoint allows 150/hour (free) or 500/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*AddToWishlistTooManyRequestsError: Rate limit exceeded. This endpoint allows 150/hour (free) or 500/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*RemoveFromWishlistTooManyRequestsError: Rate limit exceeded. This endpoint allows 150/hour (free) or 500/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*ListCollectionTooManyRequestsError: Rate limit exceeded. This endpoint allows 300/hour (free) or 1,000/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*AddIssueToCollectionTooManyRequestsError: Rate limit exceeded. This endpoint allows 150/hour (free) or 500/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*UpdateCollectionItemTooManyRequestsError: Rate limit exceeded. This endpoint allows 150/hour (free) or 500/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*RemoveIssueFromCollectionTooManyRequestsError: Rate limit exceeded. This endpoint allows 150/hour (free) or 500/hour (PRO). Wait for the number of seconds in theRetry-Afterheader before retrying. Status code429. Applicable to 1 of 94 methods.*ResponseValidationError: Type mismatch between the data returned from the server and the structure expected by the SDK. Seeerror.rawValuefor the raw value anderror.pretty()for a nicely formatted multi-line string.
* Check the method documentation to see if the error is applicable.
The default server can be overridden globally by passing a URL to the serverURL: string optional parameter when initializing the SDK client instance. For example:
import { VerseDB } from "@versedbcom/sdk";
const verseDB = new VerseDB({
serverURL: "https://versedb.com",
token: "<YOUR_BEARER_TOKEN_HERE>",
});
async function run() {
const result = await verseDB.activity.getActivityFeed({
perPage: 20,
});
console.log(result);
}
run();The TypeScript SDK makes API calls using an HTTPClient that wraps the native
Fetch API. This
client is a thin wrapper around fetch and provides the ability to attach hooks
around the request lifecycle that can be used to modify the request or handle
errors and response.
The HTTPClient constructor takes an optional fetcher argument that can be
used to integrate a third-party HTTP client or when writing tests to mock out
the HTTP client and feed in fixtures.
The following example shows how to:
- route requests through a proxy server using undici's ProxyAgent
- use the
"beforeRequest"hook to add a custom header and a timeout to requests - use the
"requestError"hook to log errors
import { VerseDB } from "@versedbcom/sdk";
import { ProxyAgent } from "undici";
import { HTTPClient } from "@versedbcom/sdk/lib/http";
const dispatcher = new ProxyAgent("http://proxy.example.com:8080");
const httpClient = new HTTPClient({
// 'fetcher' takes a function that has the same signature as native 'fetch'.
fetcher: (input, init) =>
// 'dispatcher' is specific to undici and not part of the standard Fetch API.
fetch(input, { ...init, dispatcher } as RequestInit),
});
httpClient.addHook("beforeRequest", (request) => {
const nextRequest = new Request(request, {
signal: request.signal || AbortSignal.timeout(5000)
});
nextRequest.headers.set("x-custom-header", "custom value");
return nextRequest;
});
httpClient.addHook("requestError", (error, request) => {
console.group("Request Error");
console.log("Reason:", `${error}`);
console.log("Endpoint:", `${request.method} ${request.url}`);
console.groupEnd();
});
const sdk = new VerseDB({ httpClient: httpClient });You can setup your SDK to emit debug logs for SDK requests and responses.
You can pass a logger that matches console's interface as an SDK option.
Warning
Beware that debug logging will reveal secrets, like API tokens in headers, in log messages printed to a console or files. It's recommended to use this feature only during local development and not in production.
import { VerseDB } from "@versedbcom/sdk";
const sdk = new VerseDB({ debugLogger: console });