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 режима «Смотреть как» для сессии.
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Действие запрещено: недостаточно прав роли, нет доступа к коллекции или карточке, запрос выполняется в режиме «Смотреть как» либо организация приостановлена или удалена (`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 в секундах: подождите и повторите запрос.