GET/v1/cards
Отримати список карток
list_cards
Повертає картки з фільтрами, сортуванням і пагінацією. З preview=1 (для вигляду плиток) кожна картка має також preview (перші 200 символів тексту) і preview_tables (аркуші з кількістю рядків) — у межах вашого профілю доступу.
Автентифікація
Передайте ключ API в заголовку Authorization: Authorization: Bearer <ключ>.
Параметри запиту
collectionstring | nullfolderstring | null<folder ID>повертає картки папки та всіх її вкладених папок.noneповертає картки колекції, що не лежать у жодній папці, і потребуєcollection(інакше400 cards.invalid_folder_filter). Якщо папки не існує або вона вам не видима, запит повертає404 folders.not_found.length ≤ 64
statusstring | nullДопустимі значення:
processingreadyerrorarchivedallownerstring | nullme,noneабо ID користувача.owner_idinteger | nullverificationstring | nullДопустимі значення:
verifiedneeds_verificationstalekindCardKindtypestring | nulltableповертає картки з таблицями фактів,text— картки без них.Допустимі значення:
tabletexttagsstring | nullТеги через кому (картка має мати їх усі).
idsstring | nullID карток через кому.
searchstring | nullcategorystring | nullsensitiveboolean | nullsortCardSortТипове значення: "created_at"
orderstringДопустимі значення:
ascdescТипове значення: "desc"
limitintegerТипове значення: 200
offsetintegerТипове значення: 0
previewbooleantrueдодаєpreview(перші 200 символів) іpreview_tablesдля вигляду плиток.Типове значення: false
updated_sincestring (date-time)Лише картки з
updated_atу цей момент або пізніше (RFC 3339 зі зсувом), для синхронізації. Без явнихsortіorderсписок сортується заupdated_atза зростанням, потім заid. Видалених карток у списку немає: про видалення повідомляють події.metadatamap of stringФільтр за
metadata:metadata[<key>]=<value>— точний збіг. До 3 умов, і всі вони мають виконуватися (?metadata[team]=support&metadata[crm_id]=A-1042). Понад 3 умови або неправильний ключ повертають400 api.metadata_invalid.collection_idintegerКолекція за ID. Якщо передано також
collection, перевагу маєcollection_id. Для колекції, якої немає в організації або яку не видно, повертається404 collections.not_found.external_idstringЛише картка з цим
external_id.cursorstringКурсор наступної сторінки з
X-Next-Cursorабоnext_cursorпопередньої відповіді з тими самими фільтрами; він містить розмір сторінки. Разом зoffset—422 validation.failed; курсор іншого списку, з іншими фільтрами або пошкоджений —400 api.cursor_invalid.length ≤ 512
expand[]array of stringПов’язані об’єкти, які слід додати до відповіді (з версії 1.62.0): шлях зі списку
x-expandableоперації. Параметр можна повторити до 10 разів. Шлях має до 2 сегментів, розділених крапкою (collection.default_owner). У списку шлях починається зdata.і застосовується до кожного елемента сторінки (expand[]=data.owner). Розгорнутий об’єкт потрапляє в об’єктexpandedелемента, а поле з ID лишається. Об’єкт, якого той, хто викликає, не може бачити за перевірками його власної операції читання, розгортається якnull. Невідомий шлях, понад 10 шляхів або шлях, глибший за 2 сегменти, повертає400 api.expand_invalid.items ≤ 10
Параметри заголовка
X-View-AsstringЛише для ключів API з роллю
admin. Виконує запит від імені профілю доступу<profile>[:viewer|verifier|editor], наприкладemployee:viewer. Ключ інсталяції не може використовувати цей заголовок (403).
Параметри cookie
kb_view_asstringCookie режиму «View as» для сесії. Встановлюється через
POST /auth/view-as, очищається черезDELETE /auth/view-as.
Відповіді
200Успішна відповідь
Заголовки відповіді
LinkАдреса наступної сторінки,
<…>; rel="next". Якщо заголовка немає, це остання сторінка.X-Next-CursorКурсор наступної сторінки для параметра
cursor. Якщо заголовка немає, це остання сторінка.RateLimit-PolicyЧинні ліміти у форматі чернетки IETF
draft-ietf-httpapi-ratelimit-headers: елементи через кому"<name>";q=<quota>;w=<window in seconds>.key— частота запитів ключа API (квота — це сплеск, вікно — час, за який квота повністю відновлюється; для сесії цей елемент називаєтьсяuser, без облікових даних —ip);minute,dayіmonth— квоти організації на календарну хвилину, день і місяць за UTC.RateLimitСкільки лишилося за кожним лімітом із
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitЛіміт найсуворішого елемента в
RateLimit-Policy(того, за яким лишилося найменше запитів).X-RateLimit-RemainingСкільки запитів лишилося за найсуворішим лімітом.
X-RateLimit-ResetКількість секунд до скидання найсуворішого ліміту.
application/json
expandedCardExpandedpermissionsObjectPermissionListaccessstringДопустимі значення:
wholepartialaccess_contactstringДо кого звертатися по доступ (лише коли
access=partial).aclobjectПоля
verifybooleanобов’язковоwritebooleanобов’язково
categorystringобов’язковоcategory_confidencenumber | nullобов’язковоcategory_lockedbooleanобов’язковоcategory_reviewbooleanобов’язковоcollectionstringобов’язковоcollection_idintegerобов’язковоcollection_titlestringcommentsarray of CardCommentcontent_jsonContentJSON | nullВміст редактора останньої опублікованої версії. Поля може не бути; тоді отримайте вміст редактора з чернетки (
POST /v1/draftsзcard_id).editing_lockEditingLock | nullАктивне блокування редагування. Поля може не бути; тоді редактор дізнається, хто тримає блокування, з
409 cards.lockedнаPOST /v1/cards/{card_id}/lock.created_atstring (date-time)обов’язковоdays_since_verifiedintegerобов’язковоerrorstring | nullобов’язковоeventsarray of CardEventfeedback_negintegerобов’язковоfeedback_posintegerобов’язковоfoldersarray of CardFolderRefЛише в списку карток: папки, що містять картку (ті, які бачить користувач), зі шляхами від кореня колекції. Порожній список означає, що картка не лежить у жодній папці.
has_tablesbooleanЛише в списку карток.
hidden_partsbooleanidstringобов’язковоjobJob | nullorg_idintegerобов’язковоowner_activeboolean | nullowner_idinteger | nullобов’язковоowner_namestring | nullобов’язковоpagesinteger | nullобов’язковоparserstring | nullобов’язковоСпосіб розбору документа як нейтральний код:
document(повна структура: сторінки, заголовки, таблиці, скановані сторінки),pdf(текстовий шар PDF),docx,xlsx,csv,markdown,html,text. Список може розширюватися.sensitivebooleanобов’язковоsha256string | nullобов’язковоsizeintegerобов’язковоsnoozed_atstring (date-time) | nullsnoozed_byinteger | nullsnoozed_untilstring | nullsource_changedbooleanобов’язковоsource_pathstring | nullобов’язковоsource_urlstring | nullобов’язковоstatusstringобов’язковоДопустимі значення:
processingreadyerrorarchivedtablesarray of CardTabletagsarray of stringобов’язковоtitlestringобов’язковоtrustnumberобов’язковоtrust_if_verifiednumberupdated_atstring (date-time)обов’язковоverified_atstring (date-time) | nullобов’язковоverified_byinteger | nullобов’язковоverified_by_namestring | nullverifier_idsarray of integerобов’язковоverifiersarray of objectПоля
activebooleanобов’язковоidintegerобов’язковоnamestringобов’язково
verify_interval_daysintegerобов’язковоversionintegerобов’язковоversionsarray of CardVersionsource_archiveArchiveSourcecreated_byinteger | nullmanual_optionsobjectРучні налаштування розбору (попередній перегляд).
doc_kindDocKind | nullТип документа.
null, якщо тип не визначено (наприклад, для карток, проіндексованих до появи типів документів).doc_kind_confidencenumber | nullРівень упевненості в типі документа, від 0 до 1.
doc_kind_sourcestring | nullЩо визначило тип: правила (
rules), користувач (manual) або автоматична класифікація. Список може розширюватися: невідоме значення вважайте автоматичною класифікацією.Допустимі значення:
rulesmanualnullinvoiceDocInvoiceExtraction | nullПоля рахунку, кредит-ноти або квитанції (лише для цих типів і лише в картці, не в списку).
null, якщо у вас немає доступу до всього документа, бо поля вилучаються з усього документа.warningsarray of ReviewWarningПопередження розбору документа (
ReviewWarning; лише в картці, не в списку).enrichmentCardEnrichmentStatus | nullСтан збагачення (лише в картці, не в списку). Тип документа, поля рахунку та фінансові записи додаються у фоновому режимі після індексації й можуть бути перераховані пізніше; вони з’являються в картці, коли готові.
nullозначає, що стан недоступний (картку проіндексовано без фонового збагачення).external_idstring | nullID картки в системі інтегратора. Унікальний в організації серед карток, що не надходять із джерел;
null— не задано./v1/cards-by-external-id/{external_id}читає й замінює картку за ним.length ≤ 512
metadataMetadata
400Неправильний запит: значення параметра або стан об’єкта не дозволяє виконати дію (`detail` — повідомлення).
Заголовки відповіді
RateLimit-PolicyЧинні ліміти у форматі чернетки IETF
draft-ietf-httpapi-ratelimit-headers: елементи через кому"<name>";q=<quota>;w=<window in seconds>.key— частота запитів ключа API (квота — це сплеск, вікно — час, за який квота повністю відновлюється; для сесії цей елемент називаєтьсяuser, без облікових даних —ip);minute,dayіmonth— квоти організації на календарну хвилину, день і місяць за UTC.RateLimitСкільки лишилося за кожним лімітом із
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitЛіміт найсуворішого елемента в
RateLimit-Policy(того, за яким лишилося найменше запитів).X-RateLimit-RemainingСкільки запитів лишилося за найсуворішим лімітом.
X-RateLimit-ResetКількість секунд до скидання найсуворішого ліміту.
application/json
401Облікові дані не надіслано (ні cookie сесії, ні ключа API) або ключ не знайдено.
Заголовки відповіді
RateLimit-PolicyЧинні ліміти у форматі чернетки IETF
draft-ietf-httpapi-ratelimit-headers: елементи через кому"<name>";q=<quota>;w=<window in seconds>.key— частота запитів ключа API (квота — це сплеск, вікно — час, за який квота повністю відновлюється; для сесії цей елемент називаєтьсяuser, без облікових даних —ip);minute,dayіmonth— квоти організації на календарну хвилину, день і місяць за UTC.RateLimitСкільки лишилося за кожним лімітом із
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitЛіміт найсуворішого елемента в
RateLimit-Policy(того, за яким лишилося найменше запитів).X-RateLimit-RemainingСкільки запитів лишилося за найсуворішим лімітом.
X-RateLimit-ResetКількість секунд до скидання найсуворішого ліміту.
application/json
403Дію не дозволено: роль не має достатніх прав, немає доступу до колекції чи картки, запит виконується в режимі «View as» або організацію призупинено чи видалено (`detail` — об’єкт із `code: org_suspended | org_deleted`).
Заголовки відповіді
RateLimit-PolicyЧинні ліміти у форматі чернетки IETF
draft-ietf-httpapi-ratelimit-headers: елементи через кому"<name>";q=<quota>;w=<window in seconds>.key— частота запитів ключа API (квота — це сплеск, вікно — час, за який квота повністю відновлюється; для сесії цей елемент називаєтьсяuser, без облікових даних —ip);minute,dayіmonth— квоти організації на календарну хвилину, день і місяць за UTC.RateLimitСкільки лишилося за кожним лімітом із
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitЛіміт найсуворішого елемента в
RateLimit-Policy(того, за яким лишилося найменше запитів).X-RateLimit-RemainingСкільки запитів лишилося за найсуворішим лімітом.
X-RateLimit-ResetКількість секунд до скидання найсуворішого ліміту.
application/json
404Об’єкт не існує або недоступний вам. API не підтверджує існування об’єкта з обмеженим доступом.
Заголовки відповіді
RateLimit-PolicyЧинні ліміти у форматі чернетки IETF
draft-ietf-httpapi-ratelimit-headers: елементи через кому"<name>";q=<quota>;w=<window in seconds>.key— частота запитів ключа API (квота — це сплеск, вікно — час, за який квота повністю відновлюється; для сесії цей елемент називаєтьсяuser, без облікових даних —ip);minute,dayіmonth— квоти організації на календарну хвилину, день і місяць за UTC.RateLimitСкільки лишилося за кожним лімітом із
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitЛіміт найсуворішого елемента в
RateLimit-Policy(того, за яким лишилося найменше запитів).X-RateLimit-RemainingСкільки запитів лишилося за найсуворішим лімітом.
X-RateLimit-ResetКількість секунд до скидання найсуворішого ліміту.
application/json
422Помилка валідації: тіло або параметри не відповідають схемі (`detail` — список помилок валідації) або значення параметра виходить за допустимі межі (`detail` — повідомлення).
Заголовки відповіді
RateLimit-PolicyЧинні ліміти у форматі чернетки IETF
draft-ietf-httpapi-ratelimit-headers: елементи через кому"<name>";q=<quota>;w=<window in seconds>.key— частота запитів ключа API (квота — це сплеск, вікно — час, за який квота повністю відновлюється; для сесії цей елемент називаєтьсяuser, без облікових даних —ip);minute,dayіmonth— квоти організації на календарну хвилину, день і місяць за UTC.RateLimitСкільки лишилося за кожним лімітом із
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitЛіміт найсуворішого елемента в
RateLimit-Policy(того, за яким лишилося найменше запитів).X-RateLimit-RemainingСкільки запитів лишилося за найсуворішим лімітом.
X-RateLimit-ResetКількість секунд до скидання найсуворішого ліміту.
application/json
429Забагато запитів (`api.rate_limited`), квоту організації на хвилину, день або місяць вичерпано (`api.quota_exceeded`; `error.details` містить `quota`, `limit` і `reset_at`), досягнуто ліміту організації або сервіс відповідей зайнятий (`answers.engine_busy`). Зачекайте стільки, скільки вказано в заголовку `Retry-After`.
Заголовки відповіді
Retry-AfterКількість секунд, які слід зачекати перед повторним запитом.
RateLimit-PolicyЧинні ліміти у форматі чернетки IETF
draft-ietf-httpapi-ratelimit-headers: елементи через кому"<name>";q=<quota>;w=<window in seconds>.key— частота запитів ключа API (квота — це сплеск, вікно — час, за який квота повністю відновлюється; для сесії цей елемент називаєтьсяuser, без облікових даних —ip);minute,dayіmonth— квоти організації на календарну хвилину, день і місяць за UTC.RateLimitСкільки лишилося за кожним лімітом із
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitЛіміт найсуворішого елемента в
RateLimit-Policy(того, за яким лишилося найменше запитів).X-RateLimit-RemainingСкільки запитів лишилося за найсуворішим лімітом.
X-RateLimit-ResetКількість секунд до скидання найсуворішого ліміту.
application/json
Коди помилок
Коди, які ця операція може повернути в error.code, крім загальних кодів будь-якого запиту.
- 400api.expand_invalid
- 400api.metadata_invalid
- 401auth.not_authenticated
- 403auth.system_scope
- 400cards.invalid_folder_filter
- 400cards.invalid_kind_filter
- 400cards.invalid_order
- 400cards.invalid_owner_filter
- 400cards.invalid_sort
- 400cards.invalid_status_filter
- 400cards.invalid_type_filter
- 400cards.invalid_verification_filter
- 400categories.unknown
- 403collections.no_access
- 404collections.not_found
- 404folders.not_found
- 403org.deleted
- 403org.suspended
- 403view_as.read_only
Ліміти частоти
Відповіді містять заголовки RateLimit і RateLimit-Policy, а також давніші X-RateLimit-Limit, X-RateLimit-Remaining і X-RateLimit-Reset. Відповідь 429 містить Retry-After у секундах: зачекайте й повторіть запит.