POST/v1/cards
Ladda upp en fil som ett kort
upload_card
Skicka dokumentet i fältet file i ett formulär av typen multipart/form-data. Innan filen sparas kontrollerar Sursa att filnamnstillägget, delens deklarerade Content-Type och innehållets signatur stämmer överens:
- PDF;
- DOCX, XLSX, XLSM, PPTX: ett ZIP-arkiv med den deklarerade typen av huvuddokument;
- ODS: ett ZIP-arkiv med posten mimetype;
- XLS: ett OLE2-dokument med en arbetsboksström;
- TXT, MD, CSV, TSV, HTML, AsciiDoc, EML: text utan nollbyte i UTF-8 eller en enkelbytekodning, och för e-post huvuden i början;
- PNG, JPEG, TIFF, WebP, BMP: efter signatur.
En avvikelse returnerar 415 files.type_mismatch; ett filnamnstillägg utanför listan över format returnerar 415 cards.unsupported_format. En fil som är större än installationens gräns för uppladdning eller organisationens totala lagring enligt prisplanen returnerar 413 files.too_large. När virussökning är aktiverad returnerar en infekterad fil 422 files.infected, och om virusskannern inte är tillgänglig med policyn ”reject” returnerar anropet 503 files.scan_unavailable. Varje avvisning skrivs till granskningsloggen som file.rejected.
I stället för formuläret kan du skicka en brödtext av typen application/json (CardUploadFromUpload, från och med 1.62.0): filen är en färdig uppladdning i delar upload_id (POST /v1/uploads med syftet card_file), fälten är desamma som i formuläret, och tags är en lista med strängar. Uppladdningens fil kontrollerades redan vid complete (format, virussökning), och storleksgränsen är gränsen för uppladdning i delar i stället för gränsen för uppladdning i ett enda anrop. Uppladdningen används en gång, i samma transaktion som skapar kortet: en uppladdning som redan har använts returnerar 409 uploads.already_used, en som inte är klar än returnerar 409 uploads.not_ready, en avvisad returnerar 422 uploads.rejected, en med ett annat syfte returnerar 422 uploads.purpose_mismatch, en som har gått ut returnerar 410 uploads.expired, och en annan anropares eller en okänd uppladdning returnerar 404 uploads.not_found. Om kontrollerna av kortet misslyckas (samling, kategori, gränser) förbrukas inte uppladdningen.
Autentisering
Skicka en API-nyckel i huvudet Authorization: Authorization: Bearer <nyckel>.
Parametrar i huvuden
Idempotency-KeystringNyckel för ett säkert nytt försök med en skrivning: 1–255 utskrivbara ASCII-tecken; ett UUID v4 per logisk åtgärd rekommenderas. Ett nytt försök med samma nyckel inom 24 timmar kör inte åtgärden igen, utan returnerar det sparade svaret (status, huvuden och brödtext) med huvudet
Idempotency-Replayed: true. Samma nyckel med en annan metod, sökväg,Content-Typeeller brödtext returnerar409 api.idempotency_mismatch; medan det första anropet fortfarande pågår returneras409 api.idempotency_in_progressmedRetry-After: 1. Efter ett 5xx- eller 429-svar frigörs nyckeln, och ett nytt försök kör åtgärden igen. Nyckeln gäller inom organisationen och för anroparen (API-nyckel, användare eller källnyckel för en egen källa).length ≥ 1, length ≤ 255
X-View-AsstringBara för API-nycklar med rollen
admin. Gör anropet som dataprofilen<profile>[:viewer|verifier|editor], till exempelemployee:viewer. Installationsnyckeln kan inte använda det här huvudet (403).
Cookie-parametrar
kb_view_asstringCookie för läget ”View as” (visa som en annan användare) i en session.
POST /auth/view-assätter den ochDELETE /auth/view-astar bort den.
Anropets brödtext
multipart/form-data
filestring (application/octet-stream)obligatoriskcollectionstringStandard: "default"
tagsstringStandard: ""
forcebooleanStandard: false
owner_idinteger | nullverify_interval_daysinteger | nullcategorystring | nullsensitiveboolean | nullasyncbooleanStandard: false
reviewbooleanStandard: false
folder_idstring | nullMapp i
collectionsom det nya kortet ska läggas i. En mapp i en annan samling returnerar400 folders.card_collection_mismatch, en mapp som saknas returnerar404 folders.not_found, och utan behörighetenCOLLECTION_EDIT_CARDSpå mappen returneras403 authz.forbidden. Kontrollen görs innan filen sparas. En dubblett av en fil som redan har laddats upp (skipped) flyttas inte till mappen.length ≤ 64
collection_idinteger | nullSamling efter id. När även
collectionskickas harcollection_idföreträde. En samling som inte finns i organisationen eller inte är synlig returnerar404 collections.not_found.external_idstring | nullexternal_idför det nya kortet. Med det skapas kortet även om samlingen redan har samma fil. Om ett annat kort i organisationen använder det returnerar anropet409 cards.external_id_taken. AnvändPUT /v1/cards-by-external-id/{external_id}för att skapa eller ersätta ett kort efterexternal_id.length ≤ 512
metadatastring | nullmetadataför det nya kortet: ett JSON-objekt som värde i formulärfältet. Reglerna är desamma som förMetadataPatch.
application/json
upload_idstringobligatoriskEn klar uppladdning (
ready) med syftetcard_file; den används en gång.collectionstringStandard: "default"
collection_idinteger | nullSamling efter id. Om
collectionockså skickas harcollection_idföreträde. En samling som inte finns i organisationen, inte är synlig eller ligger utanför nyckelns samlingar returnerar404 collections.not_found.tagsarray of stringitems ≤ 30
forcebooleanStandard: false
owner_idinteger | nullverify_interval_daysinteger | nullcategorystring | nullsensitiveboolean | nullasyncbooleanStandard: false
reviewbooleanStandard: false
folder_idstring | nulllength ≤ 64
external_idstring | nullexternal_idför det nya kortet, som i formulärfältet. Med det skapas kortet även om samlingen redan har samma fil. Om ett annat kort i organisationen använder det returnerar anropet409 cards.external_id_taken.length ≤ 512
metadataMetadataPatch
Svar
200`queued` (asynkront), `skipped` (dubblett), `ready` eller `error` (synkront).
Svarshuvuden
RateLimit-PolicyGällande gränser i formatet från IETF-utkastet
draft-ietf-httpapi-ratelimit-headers: kommaseparerade poster"<name>";q=<quota>;w=<window in seconds>.keyär API-nyckelns anropsfrekvens (kvoten är toppen (burst), fönstret är tiden tills den har fyllts på helt; för en session är detuser, utan autentiseringsuppgifterip);minute,dayochmonthär organisationens kvoter för kalenderminuten, kalenderdygnet och kalendermånaden i UTC.RateLimitVad som återstår av varje gräns i
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitGränsen för den striktaste posten i
RateLimit-Policy(den med minst antal återstående anrop).X-RateLimit-RemainingÅterstående anrop inom den striktaste gränsen.
X-RateLimit-ResetSekunder tills den striktaste gränsen nollställs.
Idempotency-Replayedtruebetyder att svaret spelades upp från det sparade svaret för dennaIdempotency-Key: åtgärden kördes inte igen.
application/json
400Anropet är ogiltigt: ett parametervärde eller objektets tillstånd tillåter inte åtgärden (`detail` är ett meddelande).
Svarshuvuden
RateLimit-PolicyGällande gränser i formatet från IETF-utkastet
draft-ietf-httpapi-ratelimit-headers: kommaseparerade poster"<name>";q=<quota>;w=<window in seconds>.keyär API-nyckelns anropsfrekvens (kvoten är toppen (burst), fönstret är tiden tills den har fyllts på helt; för en session är detuser, utan autentiseringsuppgifterip);minute,dayochmonthär organisationens kvoter för kalenderminuten, kalenderdygnet och kalendermånaden i UTC.RateLimitVad som återstår av varje gräns i
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitGränsen för den striktaste posten i
RateLimit-Policy(den med minst antal återstående anrop).X-RateLimit-RemainingÅterstående anrop inom den striktaste gränsen.
X-RateLimit-ResetSekunder tills den striktaste gränsen nollställs.
application/json
401Inga autentiseringsuppgifter skickades (varken en sessionscookie eller en API-nyckel), eller så hittades inte nyckeln.
Svarshuvuden
RateLimit-PolicyGällande gränser i formatet från IETF-utkastet
draft-ietf-httpapi-ratelimit-headers: kommaseparerade poster"<name>";q=<quota>;w=<window in seconds>.keyär API-nyckelns anropsfrekvens (kvoten är toppen (burst), fönstret är tiden tills den har fyllts på helt; för en session är detuser, utan autentiseringsuppgifterip);minute,dayochmonthär organisationens kvoter för kalenderminuten, kalenderdygnet och kalendermånaden i UTC.RateLimitVad som återstår av varje gräns i
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitGränsen för den striktaste posten i
RateLimit-Policy(den med minst antal återstående anrop).X-RateLimit-RemainingÅterstående anrop inom den striktaste gränsen.
X-RateLimit-ResetSekunder tills den striktaste gränsen nollställs.
application/json
402Organisationen har nått en gräns i sin prisplan (kort, lagring eller användare). `error.details` innehåller `kind`, `limit` och `used`.
Svarshuvuden
RateLimit-PolicyGällande gränser i formatet från IETF-utkastet
draft-ietf-httpapi-ratelimit-headers: kommaseparerade poster"<name>";q=<quota>;w=<window in seconds>.keyär API-nyckelns anropsfrekvens (kvoten är toppen (burst), fönstret är tiden tills den har fyllts på helt; för en session är detuser, utan autentiseringsuppgifterip);minute,dayochmonthär organisationens kvoter för kalenderminuten, kalenderdygnet och kalendermånaden i UTC.RateLimitVad som återstår av varje gräns i
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitGränsen för den striktaste posten i
RateLimit-Policy(den med minst antal återstående anrop).X-RateLimit-RemainingÅterstående anrop inom den striktaste gränsen.
X-RateLimit-ResetSekunder tills den striktaste gränsen nollställs.
application/json
403Åtgärden är inte tillåten: rollen räcker inte, det saknas åtkomst till samlingen eller kortet, anropet körs i läget ”View as” (visa som en annan användare), eller organisationen är avstängd eller borttagen (`detail` är ett objekt med `code: org_suspended | org_deleted`).
Svarshuvuden
RateLimit-PolicyGällande gränser i formatet från IETF-utkastet
draft-ietf-httpapi-ratelimit-headers: kommaseparerade poster"<name>";q=<quota>;w=<window in seconds>.keyär API-nyckelns anropsfrekvens (kvoten är toppen (burst), fönstret är tiden tills den har fyllts på helt; för en session är detuser, utan autentiseringsuppgifterip);minute,dayochmonthär organisationens kvoter för kalenderminuten, kalenderdygnet och kalendermånaden i UTC.RateLimitVad som återstår av varje gräns i
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitGränsen för den striktaste posten i
RateLimit-Policy(den med minst antal återstående anrop).X-RateLimit-RemainingÅterstående anrop inom den striktaste gränsen.
X-RateLimit-ResetSekunder tills den striktaste gränsen nollställs.
application/json
404Objektet finns inte eller är inte tillgängligt för dig. API:et bekräftar inte att ett begränsat objekt finns.
Svarshuvuden
RateLimit-PolicyGällande gränser i formatet från IETF-utkastet
draft-ietf-httpapi-ratelimit-headers: kommaseparerade poster"<name>";q=<quota>;w=<window in seconds>.keyär API-nyckelns anropsfrekvens (kvoten är toppen (burst), fönstret är tiden tills den har fyllts på helt; för en session är detuser, utan autentiseringsuppgifterip);minute,dayochmonthär organisationens kvoter för kalenderminuten, kalenderdygnet och kalendermånaden i UTC.RateLimitVad som återstår av varje gräns i
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitGränsen för den striktaste posten i
RateLimit-Policy(den med minst antal återstående anrop).X-RateLimit-RemainingÅterstående anrop inom den striktaste gränsen.
X-RateLimit-ResetSekunder tills den striktaste gränsen nollställs.
application/json
409Objektets tillstånd tillåter inte åtgärden, till exempel en dubblett, en pågående indexering eller ett jobb som redan har bearbetats.
Svarshuvuden
RateLimit-PolicyGällande gränser i formatet från IETF-utkastet
draft-ietf-httpapi-ratelimit-headers: kommaseparerade poster"<name>";q=<quota>;w=<window in seconds>.keyär API-nyckelns anropsfrekvens (kvoten är toppen (burst), fönstret är tiden tills den har fyllts på helt; för en session är detuser, utan autentiseringsuppgifterip);minute,dayochmonthär organisationens kvoter för kalenderminuten, kalenderdygnet och kalendermånaden i UTC.RateLimitVad som återstår av varje gräns i
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitGränsen för den striktaste posten i
RateLimit-Policy(den med minst antal återstående anrop).X-RateLimit-RemainingÅterstående anrop inom den striktaste gränsen.
X-RateLimit-ResetSekunder tills den striktaste gränsen nollställs.
application/json
410Objektet fanns men är inte längre tillgängligt: länken har använts eller har gått ut, eller filen togs bort när lagringstiden löpte ut.
Svarshuvuden
RateLimit-PolicyGällande gränser i formatet från IETF-utkastet
draft-ietf-httpapi-ratelimit-headers: kommaseparerade poster"<name>";q=<quota>;w=<window in seconds>.keyär API-nyckelns anropsfrekvens (kvoten är toppen (burst), fönstret är tiden tills den har fyllts på helt; för en session är detuser, utan autentiseringsuppgifterip);minute,dayochmonthär organisationens kvoter för kalenderminuten, kalenderdygnet och kalendermånaden i UTC.RateLimitVad som återstår av varje gräns i
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitGränsen för den striktaste posten i
RateLimit-Policy(den med minst antal återstående anrop).X-RateLimit-RemainingÅterstående anrop inom den striktaste gränsen.
X-RateLimit-ResetSekunder tills den striktaste gränsen nollställs.
application/json
413Anropets brödtext överskrider den tillåtna storleken.
Svarshuvuden
RateLimit-PolicyGällande gränser i formatet från IETF-utkastet
draft-ietf-httpapi-ratelimit-headers: kommaseparerade poster"<name>";q=<quota>;w=<window in seconds>.keyär API-nyckelns anropsfrekvens (kvoten är toppen (burst), fönstret är tiden tills den har fyllts på helt; för en session är detuser, utan autentiseringsuppgifterip);minute,dayochmonthär organisationens kvoter för kalenderminuten, kalenderdygnet och kalendermånaden i UTC.RateLimitVad som återstår av varje gräns i
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitGränsen för den striktaste posten i
RateLimit-Policy(den med minst antal återstående anrop).X-RateLimit-RemainingÅterstående anrop inom den striktaste gränsen.
X-RateLimit-ResetSekunder tills den striktaste gränsen nollställs.
application/json
415Filformatet stöds inte.
Svarshuvuden
RateLimit-PolicyGällande gränser i formatet från IETF-utkastet
draft-ietf-httpapi-ratelimit-headers: kommaseparerade poster"<name>";q=<quota>;w=<window in seconds>.keyär API-nyckelns anropsfrekvens (kvoten är toppen (burst), fönstret är tiden tills den har fyllts på helt; för en session är detuser, utan autentiseringsuppgifterip);minute,dayochmonthär organisationens kvoter för kalenderminuten, kalenderdygnet och kalendermånaden i UTC.RateLimitVad som återstår av varje gräns i
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitGränsen för den striktaste posten i
RateLimit-Policy(den med minst antal återstående anrop).X-RateLimit-RemainingÅterstående anrop inom den striktaste gränsen.
X-RateLimit-ResetSekunder tills den striktaste gränsen nollställs.
application/json
422Valideringsfel: brödtexten eller parametrarna stämmer inte med schemat (`detail` är en lista med valideringsfel), eller så ligger ett parametervärde utanför det tillåtna intervallet (`detail` är ett meddelande).
Svarshuvuden
RateLimit-PolicyGällande gränser i formatet från IETF-utkastet
draft-ietf-httpapi-ratelimit-headers: kommaseparerade poster"<name>";q=<quota>;w=<window in seconds>.keyär API-nyckelns anropsfrekvens (kvoten är toppen (burst), fönstret är tiden tills den har fyllts på helt; för en session är detuser, utan autentiseringsuppgifterip);minute,dayochmonthär organisationens kvoter för kalenderminuten, kalenderdygnet och kalendermånaden i UTC.RateLimitVad som återstår av varje gräns i
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitGränsen för den striktaste posten i
RateLimit-Policy(den med minst antal återstående anrop).X-RateLimit-RemainingÅterstående anrop inom den striktaste gränsen.
X-RateLimit-ResetSekunder tills den striktaste gränsen nollställs.
application/json
429För många anrop (`api.rate_limited`), organisationens kvot för minuten, dygnet eller månaden är förbrukad (`api.quota_exceeded`; `error.details` innehåller `quota`, `limit` och `reset_at`), organisationens gräns är nådd eller svarstjänsten är upptagen (`answers.engine_busy`). Vänta den tid som anges i huvudet `Retry-After`.
Svarshuvuden
Retry-AfterAntal sekunder att vänta innan du skickar anropet igen.
RateLimit-PolicyGällande gränser i formatet från IETF-utkastet
draft-ietf-httpapi-ratelimit-headers: kommaseparerade poster"<name>";q=<quota>;w=<window in seconds>.keyär API-nyckelns anropsfrekvens (kvoten är toppen (burst), fönstret är tiden tills den har fyllts på helt; för en session är detuser, utan autentiseringsuppgifterip);minute,dayochmonthär organisationens kvoter för kalenderminuten, kalenderdygnet och kalendermånaden i UTC.RateLimitVad som återstår av varje gräns i
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitGränsen för den striktaste posten i
RateLimit-Policy(den med minst antal återstående anrop).X-RateLimit-RemainingÅterstående anrop inom den striktaste gränsen.
X-RateLimit-ResetSekunder tills den striktaste gränsen nollställs.
application/json
503En tjänst som det här anropet är beroende av är tillfälligt otillgänglig. Försök igen senare.
Svarshuvuden
RateLimit-PolicyGällande gränser i formatet från IETF-utkastet
draft-ietf-httpapi-ratelimit-headers: kommaseparerade poster"<name>";q=<quota>;w=<window in seconds>.keyär API-nyckelns anropsfrekvens (kvoten är toppen (burst), fönstret är tiden tills den har fyllts på helt; för en session är detuser, utan autentiseringsuppgifterip);minute,dayochmonthär organisationens kvoter för kalenderminuten, kalenderdygnet och kalendermånaden i UTC.RateLimitVad som återstår av varje gräns i
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitGränsen för den striktaste posten i
RateLimit-Policy(den med minst antal återstående anrop).X-RateLimit-RemainingÅterstående anrop inom den striktaste gränsen.
X-RateLimit-ResetSekunder tills den striktaste gränsen nollställs.
application/json
Felkoder
Koder som den här slutpunkten kan returnera i error.code, utöver de allmänna koderna för alla anrop.
- 400api.metadata_invalid
- 409api.idempotency_in_progress
- 400api.idempotency_key_invalid
- 409api.idempotency_mismatch
- 401auth.not_authenticated
- 403auth.system_scope
- 403authz.forbidden
- 403cards.duplicate_restricted
- 409cards.external_id_taken
- 403cards.no_access
- 404cards.not_found
- 400cards.review_requires_async
- 403cards.sensitivity_admin_only
- 415cards.unsupported_format
- 400categories.unknown
- 409collections.index_outdated
- 400collections.invalid_name
- 403collections.no_write_access
- 404collections.not_found
- 422files.infected
- 503files.scan_unavailable
- 413files.too_large
- 415files.type_mismatch
- 400folders.card_collection_mismatch
- 404folders.not_found
- 404jobs.not_found
- 402limits.cards
- 403org.deleted
- 403org.suspended
- 409uploads.already_used
- 410uploads.expired
- 404uploads.not_found
- 409uploads.not_ready
- 422uploads.purpose_mismatch
- 422uploads.rejected
- 400users.not_in_org
- 422validation.failed
- 403view_as.read_only
Säkra nya försök
Skicka huvudet Idempotency-Key (till exempel ett UUID) med varje POST och PATCH. Ett nytt försök med samma nyckel inom 24 timmar returnerar det sparade svaret i stället för att köra anropet igen.
Hastighetsbegränsningar
Svaren innehåller huvudena RateLimit och RateLimit-Policy samt de tidigare X-RateLimit-Limit, X-RateLimit-Remaining och X-RateLimit-Reset. Ett 429-svar har Retry-After i sekunder: vänta och försök igen.