GET/v1/cards/{card_id}
Get a card with its versions, comments, tables and events
get_card
Authentication
Send an API key in the Authorization header: Authorization: Bearer <key>.
Path parameters
card_idstringrequired
Query parameters
expand[]array of stringRelated objects to include in the response (since 1.62.0): a path from the
x-expandablelist of the operation. Repeat the parameter up to 10 times. A path has up to 2 segments separated by a dot (collection.default_owner). In a list, the path starts withdata.and applies to every item of the page (expand[]=data.owner). An expanded object goes into theexpandedobject of the item, and the ID field stays. An object that the caller may not see under the checks of its own read operation is expanded asnull. An unknown path, more than 10 paths or a path deeper than 2 segments returns400 api.expand_invalid.items ≤ 10
Header parameters
X-View-AsstringFor API keys with the
adminrole only. Makes the request as the data profile<profile>[:viewer|verifier|editor], for exampleemployee:viewer. The installation key cannot use this header (403).
Cookie parameters
kb_view_asstringCookie of the “View as” mode for a session.
POST /auth/view-assets it andDELETE /auth/view-asclears it.
Responses
200OK
Response headers
RateLimit-PolicyLimits in effect, in the format of the IETF draft
draft-ietf-httpapi-ratelimit-headers: comma-separated items"<name>";q=<quota>;w=<window in seconds>.keyis the request rate of the API key (the quota is the burst, the window is the time to refill it fully; for a session it isuser, without credentialsip);minute,dayandmonthare the organization's quotas for the calendar minute, day and month in UTC.RateLimitWhat is left of each limit in
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLimit of the strictest entry in
RateLimit-Policy(the one with the fewest requests left).X-RateLimit-RemainingRequests left under the strictest limit.
X-RateLimit-ResetSeconds until the strictest limit resets.
application/json
expandedCardExpandedpermissionsObjectPermissionListaccessstringAllowed values:
wholepartialaccess_contactstringWhom to contact for access (only when
access=partial).aclobjectFields
verifybooleanrequiredwritebooleanrequired
categorystringrequiredcategory_confidencenumber | nullrequiredcategory_lockedbooleanrequiredcategory_reviewbooleanrequiredcollectionstringrequiredcollection_idintegerrequiredcollection_titlestringcommentsarray of CardCommentcontent_jsonContentJSON | nullEditor content of the latest published version. The field can be absent; in that case, get the editor content from a draft (
POST /v1/draftswithcard_id).editing_lockEditingLock | nullActive editing lock. The field can be absent; in that case, the editor learns who holds the lock from
409 cards.lockedonPOST /v1/cards/{card_id}/lock.created_atstring (date-time)requireddays_since_verifiedintegerrequirederrorstring | nullrequiredeventsarray of CardEventfeedback_negintegerrequiredfeedback_posintegerrequiredfoldersarray of CardFolderRefCard list only: the folders that contain the card (those visible to the user), with their paths from the collection root. An empty list means the card is not in any folder.
has_tablesbooleanCard list only.
hidden_partsbooleanidstringrequiredjobJob | nullorg_idintegerrequiredowner_activeboolean | nullowner_idinteger | nullrequiredowner_namestring | nullrequiredpagesinteger | nullrequiredparserstring | nullrequiredDocument parser as a neutral code:
document(full structure: pages, headings, tables, scanned pages),pdf(the PDF text layer),docx,xlsx,csv,markdown,html,text. The list can grow.sensitivebooleanrequiredsha256string | nullrequiredsizeintegerrequiredsnoozed_atstring (date-time) | nullsnoozed_byinteger | nullsnoozed_untilstring | nullsource_changedbooleanrequiredsource_pathstring | nullrequiredsource_urlstring | nullrequiredstatusstringrequiredAllowed values:
processingreadyerrorarchivedtablesarray of CardTabletagsarray of stringrequiredtitlestringrequiredtrustnumberrequiredtrust_if_verifiednumberupdated_atstring (date-time)requiredverified_atstring (date-time) | nullrequiredverified_byinteger | nullrequiredverified_by_namestring | nullverifier_idsarray of integerrequiredverifiersarray of objectFields
activebooleanrequiredidintegerrequirednamestringrequired
verify_interval_daysintegerrequiredversionintegerrequiredversionsarray of CardVersionsource_archiveArchiveSourcecreated_byinteger | nullmanual_optionsobjectManual parsing settings (preview).
doc_kindDocKind | nullDocument type.
nullif the type is not determined (for example, for cards indexed before document types were introduced).doc_kind_confidencenumber | nullConfidence in the document type, from 0 to 1.
doc_kind_sourcestring | nullWhat determined the type: rules (
rules), a user (manual) or automatic classification. The list can grow: treat an unknown value as automatic classification.Allowed values:
rulesmanualnullinvoiceDocInvoiceExtraction | nullFields of an invoice, credit note or receipt (only for these types, and only in the card, not in the list).
nullif you do not have access to the whole document, because the fields are extracted from the whole document.warningsarray of ReviewWarningDocument parsing warnings (
ReviewWarning; only in the card, not in the list).enrichmentCardEnrichmentStatus | nullEnrichment status (only in the card, not in the list). The document type, invoice fields and financial records are added in the background after indexing and can be recalculated later; they appear in the card when they are ready.
nullmeans no status is available (the card was indexed without background enrichment).external_idstring | nullID of the card in the integrator's system. It is unique in the organization among cards that do not come from sources;
nullmeans it is not set./v1/cards-by-external-id/{external_id}reads and replaces the card by it.length ≤ 512
metadataMetadata
400The request is invalid: a parameter value or the state of the object does not allow the action (`detail` is a message).
Response headers
RateLimit-PolicyLimits in effect, in the format of the IETF draft
draft-ietf-httpapi-ratelimit-headers: comma-separated items"<name>";q=<quota>;w=<window in seconds>.keyis the request rate of the API key (the quota is the burst, the window is the time to refill it fully; for a session it isuser, without credentialsip);minute,dayandmonthare the organization's quotas for the calendar minute, day and month in UTC.RateLimitWhat is left of each limit in
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLimit of the strictest entry in
RateLimit-Policy(the one with the fewest requests left).X-RateLimit-RemainingRequests left under the strictest limit.
X-RateLimit-ResetSeconds until the strictest limit resets.
application/json
401No credentials were sent (neither a session cookie nor an API key), or the key was not found.
Response headers
RateLimit-PolicyLimits in effect, in the format of the IETF draft
draft-ietf-httpapi-ratelimit-headers: comma-separated items"<name>";q=<quota>;w=<window in seconds>.keyis the request rate of the API key (the quota is the burst, the window is the time to refill it fully; for a session it isuser, without credentialsip);minute,dayandmonthare the organization's quotas for the calendar minute, day and month in UTC.RateLimitWhat is left of each limit in
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLimit of the strictest entry in
RateLimit-Policy(the one with the fewest requests left).X-RateLimit-RemainingRequests left under the strictest limit.
X-RateLimit-ResetSeconds until the strictest limit resets.
application/json
403The action is not allowed: the role is insufficient, there is no access to the collection or card, the request runs in “View as” mode, or the organization is suspended or deleted (`detail` is an object with `code: org_suspended | org_deleted`).
Response headers
RateLimit-PolicyLimits in effect, in the format of the IETF draft
draft-ietf-httpapi-ratelimit-headers: comma-separated items"<name>";q=<quota>;w=<window in seconds>.keyis the request rate of the API key (the quota is the burst, the window is the time to refill it fully; for a session it isuser, without credentialsip);minute,dayandmonthare the organization's quotas for the calendar minute, day and month in UTC.RateLimitWhat is left of each limit in
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLimit of the strictest entry in
RateLimit-Policy(the one with the fewest requests left).X-RateLimit-RemainingRequests left under the strictest limit.
X-RateLimit-ResetSeconds until the strictest limit resets.
application/json
404The object does not exist or is not available to you. The API does not confirm that a restricted object exists.
Response headers
RateLimit-PolicyLimits in effect, in the format of the IETF draft
draft-ietf-httpapi-ratelimit-headers: comma-separated items"<name>";q=<quota>;w=<window in seconds>.keyis the request rate of the API key (the quota is the burst, the window is the time to refill it fully; for a session it isuser, without credentialsip);minute,dayandmonthare the organization's quotas for the calendar minute, day and month in UTC.RateLimitWhat is left of each limit in
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLimit of the strictest entry in
RateLimit-Policy(the one with the fewest requests left).X-RateLimit-RemainingRequests left under the strictest limit.
X-RateLimit-ResetSeconds until the strictest limit resets.
application/json
422Validation error: the body or parameters do not match the schema (`detail` is a list of validation errors), or a parameter value is out of range (`detail` is a message).
Response headers
RateLimit-PolicyLimits in effect, in the format of the IETF draft
draft-ietf-httpapi-ratelimit-headers: comma-separated items"<name>";q=<quota>;w=<window in seconds>.keyis the request rate of the API key (the quota is the burst, the window is the time to refill it fully; for a session it isuser, without credentialsip);minute,dayandmonthare the organization's quotas for the calendar minute, day and month in UTC.RateLimitWhat is left of each limit in
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLimit of the strictest entry in
RateLimit-Policy(the one with the fewest requests left).X-RateLimit-RemainingRequests left under the strictest limit.
X-RateLimit-ResetSeconds until the strictest limit resets.
application/json
429Too many requests (`api.rate_limited`), the organization's quota for the minute, day or month is used up (`api.quota_exceeded`; `error.details` holds `quota`, `limit` and `reset_at`), the organization's limit is reached, or the answer service is busy (`answers.engine_busy`). Wait for the time in the `Retry-After` header.
Response headers
Retry-AfterNumber of seconds to wait before you retry the request.
RateLimit-PolicyLimits in effect, in the format of the IETF draft
draft-ietf-httpapi-ratelimit-headers: comma-separated items"<name>";q=<quota>;w=<window in seconds>.keyis the request rate of the API key (the quota is the burst, the window is the time to refill it fully; for a session it isuser, without credentialsip);minute,dayandmonthare the organization's quotas for the calendar minute, day and month in UTC.RateLimitWhat is left of each limit in
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLimit of the strictest entry in
RateLimit-Policy(the one with the fewest requests left).X-RateLimit-RemainingRequests left under the strictest limit.
X-RateLimit-ResetSeconds until the strictest limit resets.
application/json
Error codes
Codes this endpoint can return in error.code, besides the general codes of every request.
Rate limits
Responses carry the RateLimit and RateLimit-Policy headers and the earlier X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset. A 429 response has Retry-After in seconds: wait and retry.