List cards
/v1/cardsAuthorizationBearer token (OAuth access token or teakapi_ API key) · headerrequiredBearer token. Accepts either an OAuth 2.0 access token (obtained via browser sign-in; expires after 1 hour and is refreshable) or a teakapi_ API key.
qstringSearch text with optional qualifiers: tag:design or #design, type:link, is:fav, is:archived, site:github.com, folder:"Reading list", like:<cardId> (the cards closest in meaning to that card), mood:"moody brutalist" (images by mood), price:<100 (also >, <=, >= and =, on the amount in any currency; only links with a price match) and "quoted phrases". Qualifiers combine with the other parameters; several price: bounds make a range. Cards tagged secret or hidden (isHidden) are left out of every list unless the search names one of those tags: q=#secret, q=tag:hidden or tag=secret. The plain word secret does not show them.
similarTostringA card id: only the cards closest to it in meaning, of any type, never the card itself (the same as like:<id> in q). Other parameters narrow them and sort orders them. A malformed id returns 400 INVALID_INPUT; a card in Trash or not found returns no items with similarity: "unavailable".
modestringHow q finds cards: hybrid (default) matches words and meaning, so cozy reading nook also finds a photo of an armchair by a window; keyword matches words only; semantic matches meaning only. Filters, qualifiers and sort apply in every mode. The response's searchMode says which ran.
hybridkeywordsemanticlimitintegercursorstringsortstringOrder by the date each card was saved (createdAt, which keeps an imported card's original date): newest (default) or oldest. Or shuffle: a stable random order picked by shuffleSeed. A search, tag or folder shuffles its matches (a search its best 400, a tag or folder its newest 2,000). Or relevance (Best match), with q: the search's top 64 results by how well they match its words, then the rest in search order. Without q it is newest. The response's relevanceRanked says whether the top results were scored; the first page decides, and every later page keeps its order.
newestoldestrelevanceshuffleshuffleSeedintegerRequired with sort=shuffle: a whole number from 0 to 2147483647. The same seed gives the same order on every page and device; pick a new one to reshuffle. A cursor only works with the seed that issued it.
typestring[]Repeat to match any selected card type, for example type=image&type=link.
tagstringfavoritedbooleantrashedbooleanList only cards in Trash when true.
folderstringOnly cards in this folder; for a smart folder, the cards its search matches (combined with q). An unknown folder returns 404.
archivedstringArchived cards to list: exclude (the default) leaves them out, only lists just them, include lists them with the rest. Trash lists every trashed card whatever this says.
excludeonlyincludestylestring[]Repeat to match any selected value within this filter.
huestring[]Repeat to match any selected value within this filter.
hexstring[]Repeat to match any selected value within this filter.
createdAfternumbercreatedBeforenumberincludestringComma-separated values: content, metadata, processing
Paginated card list
itemsCardListItem[]requiredShow propertiesHide properties
CardListItemaiSummarystring | nullaiTagsstring[]requiredaiTranscriptstring | nullappUrlstring<uri>requiredcompactUrlstring | null256px rendition URL for small cards; present for image uploads.
contentstringcolorsobject[]Show propertiesHide properties
objecthexstringrequirednamestringcreatedAtnumberrequireddetailUrlstring | nullfileNamestring | nullfileSizenumber | nullmimeTypestring | nullfileExtensionstring | nullfileKindstring | nullfileLanguagestring | nullfilePreviewobject | nullfileHeightnumber | nullfileWidthnumber | nullaudioWaveformobject | nullAudio bar heights from 0 to 100: 45 for a grid card and 200 for a player. Null for other cards and audio saved before waveforms.
Show propertiesHide properties
detailnumber[]requiredgridnumber[]requiredvideoScrubobject | nullA horizontal JPEG strip of evenly spaced video frames for hover previews, frames * frameWidth wide. The URL is signed and expires. Null for other cards and videos saved before scrub strips.
Show propertiesHide properties
frameHeightnumberrequiredframeWidthnumberrequiredframesnumberrequiredurlstringrequiredfileUrlstring | nullidstringrequiredisDeletedbooleanisArchivedbooleanrequiredArchived cards are hidden from the library and listings unless you ask for them with archived.
folderIdsstring[]Ids of the folders the card is in (at most 50).
isFavoritedbooleanrequiredisHiddenbooleanTrue when one of the card's tags is secret or hidden (any case). Hidden cards are left out of every list and search unless the search names one of those tags, as q=#secret, q=tag:hidden or tag=secret. Getting the card by id, /v1/cards/changes and exports still include it. Read-only: change the tags to change it.
linkPreviewImageUrlstring | nulllinkPreviewDescriptionstring | nulllinkFactsobject[]Show propertiesHide properties
objectlabelstringrequiredvaluestringrequiredlinkFaviconUrlstring | nulllinkPreviewTitlestring | nulllinkPriceobject | nullA product link's price, read from the page: amount in the page's currency and currency as an ISO 4217 code, or null when the page didn't say which. Null for cards without a price. price: in q compares amount.
Show propertiesHide properties
amountnumberrequiredcurrencystring | nullrequiredlinkPreviewMediaobject[]Show propertiesHide properties
objecttypestringrequiredimagevideourlstringrequiredcontentTypestringwidthnumberheightnumberposterUrlstringposterContentTypestringposterWidthnumberposterHeightnumberlinkSiteNamestring | nulllinkAuthorstring | nulllinkPublisherstring | nulllinkPublishedAtstring | nullmetadataDescriptionstring | nullmetadataTitlestring | nullnotesstring | nullplaceholderUrlstring | null48px loading-placeholder rendition URL; present for image uploads.
metadataStatusstring | nullprocessingStatusobject | nullPer-stage processing state (classify, categorize, metadata, renderables, screenshot), or null once nothing is tracked.
screenshotUrlstring | nullsourceTitlestring | nullThe title of the page the card was saved from, beside sourceUrl.
sourceUrlstring | nullThe page the card was saved from, such as the page a quote was selected on. Set when the card is created; site: matches its host when the card has no url. Not the same as source, the free label sent at create.
tagsstring[]requiredthumbnailOverriddenbooleanTrue when linkPreviewImageUrl is an image chosen for this link (PUT /v1/cards/{cardId}/thumbnail) rather than the one Teak found.
thumbnailUrlstring | nulltypestringrequiredupdatedAtnumberrequiredurlstring | nullpageInfoCardPageInforequiredShow propertiesHide properties
hasMorebooleanrequirednextCursorstring | nullrequiredOpaque cursor for the next page, or null on the last page. Pages resume after the last item returned, so cards added or removed between requests never repeat or skip items. Pass it back unchanged with the same filters; an invalid cursor returns 400.
similaritystringWith similarTo, like: or mood:: pending while the card is still being read (try again in a moment), unavailable for a card in Trash or not found.
okpendingunavailablesearchModestringWith q: how the search found cards. keyword when meaning search was not used: mode=keyword, no words to search by meaning, or the meaning service was slow, down or rate-limited.
hybridkeywordsemanticrelevanceRankedbooleanWith q and sort=relevance: whether the search's top results are ordered by how well they match. false when scoring was slow, failed, rate-limited, or AI is turned off for the account; the results then keep the search order.
Invalid request
codestringrequirederrorstringrequiredretryAtnumber | null