PUT/v1/cards-by-external-id/{external_id}
Opprett eller erstatt et kort etter ekstern ID
upsert_card_by_external_id
Oppretter eller erstatter et kort etter integratorens external_id. Send tekst som application/json (CardTextUpsert) eller en fil som multipart/form-data (CardFileUpsertForm, med de samme filkontrollene som POST /v1/cards). Hvis organisasjonen ikke har noe kort med denne external_id, opprettes kortet i samlingen og mappen fra brødteksten (201). Ellers erstattes innholdet med en ny versjon og indekseres på nytt på samme måte som en ny versjon av en fil, og kortets detaljer (tittel, tagger, ansvarlig, kategori, metadata) får de oversendte verdiene (200). Uendret innhold gir ingen ny versjon (status: skipped, reason: unchanged), så det er trygt å gjenta forespørselen selv uten Idempotency-Key. Når metadata sendes, erstatter det hele objektet. Tilgangen kontrolleres som for en opplasting når kortet opprettes, og som for en oppdatering av kortet når det erstattes. Innholdet i et kort som bare delvis er synlig for kalleren, erstattes ikke (403 cards.content_whole_access). Kort fra kilder overskrives ikke på denne måten: hvis external_id tilhører et dokument i en egendefinert kilde, eller kortet som blir funnet, vedlikeholdes av en kilde, returnerer forespørselen 409 cards.managed_by_source. Når innholdet endres, fjernes verifiseringen av kortet, slik det skjer med enhver ny versjon (begrunnelse update).
Autentisering
Send en API-nøkkel i headeren Authorization: Authorization: Bearer <nøkkel>.
Baneparametere
external_idstringobligatoriskexternal_idfor kortet: en streng på 1–512 tegn, unik i organisasjonen.length ≥ 1, length ≤ 512
Headerparametere
X-View-AsstringBare for API-nøkler med rollen
admin. Utfører forespørselen som dataprofilen<profile>[:viewer|verifier|editor], for eksempelemployee:viewer. Installasjonsnøkkelen kan ikke bruke denne headeren (403).
Parametere i informasjonskapsler
kb_view_asstringInformasjonskapsel for modusen «View as» (vis som) i en økt.
POST /auth/view-assetter den, ogDELETE /auth/view-asfjerner den.
Forespørselens brødtekst
application/json
titlestringlength ≥ 1, length ≤ 200
bodystringobligatoriskKortets tekst i formatet
content_type.length ≥ 1, length ≤ 500000
content_typeCardTextContentTypecollectionstringSamling etter navn, når kortet opprettes. Som standard installasjonens standardsamling.
collection_idinteger | nullSamling etter ID, når kortet opprettes. Sendes også
collection, harcollection_idforrang.folder_idstring | nullMappe i samlingen for det nye kortet, med de samme kontrollene som
folder_idved opplasting av en fil.length ≤ 64
tagsarray of string | nullitems ≤ 30
categorystring | nulllength ≤ 60
sensitiveboolean | nullowner_idinteger | nullverify_interval_daysinteger | null≥ 1, ≤ 3650
metadataMetadataPatchasyncbooleantruereturnerer med en gang og indekserer kortet i køen;falsereturnerer etter indekseringen.Standard: false
multipart/form-data
filestring (application/octet-stream)obligatorisktitlestring | nullKortets tittel. Sendes den ikke, får et nytt kort filnavnet, og et eksisterende kort beholder tittelen.
length ≤ 200
collectionstringcollection_idinteger | nullfolder_idstring | nulllength ≤ 64
tagsstringTagger adskilt med komma.
owner_idinteger | nullverify_interval_daysinteger | nullcategorystring | nullsensitiveboolean | nullmetadatastring | nullmetadata: et JSON-objekt som verdien av skjemafeltet. Reglene er de samme som forMetadataPatch.asyncbooleanStandard: false
Svar
200Kortet fantes allerede. Innholdet ble erstattet (`queued`, `ready`, `error`) eller ble ikke endret (`skipped`).
Headere i svaret
RateLimit-PolicyGjeldende grenser i formatet fra IETF-utkastet
draft-ietf-httpapi-ratelimit-headers: kommaseparerte elementer"<name>";q=<quota>;w=<window in seconds>.keyer forespørselsraten til API-nøkkelen (kvoten er burst, tidsvinduet er tiden det tar å fylle den helt opp igjen; for en økt er detuser, uten påloggingsinformasjonip);minute,dayogmonther organisasjonens kvoter for kalenderminuttet, kalenderdøgnet og kalendermåneden i UTC.RateLimitHva som gjenstår av hver grense i
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitGrensen for den strengeste oppføringen i
RateLimit-Policy(den med færrest gjenværende forespørsler).X-RateLimit-RemainingGjenværende forespørsler under den strengeste grensen.
X-RateLimit-ResetSekunder til den strengeste grensen nullstilles.
application/json
201Kortet ble opprettet (`queued` for en asynkron forespørsel, `ready` eller `error` for en synkron).
Headere i svaret
RateLimit-PolicyGjeldende grenser i formatet fra IETF-utkastet
draft-ietf-httpapi-ratelimit-headers: kommaseparerte elementer"<name>";q=<quota>;w=<window in seconds>.keyer forespørselsraten til API-nøkkelen (kvoten er burst, tidsvinduet er tiden det tar å fylle den helt opp igjen; for en økt er detuser, uten påloggingsinformasjonip);minute,dayogmonther organisasjonens kvoter for kalenderminuttet, kalenderdøgnet og kalendermåneden i UTC.RateLimitHva som gjenstår av hver grense i
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitGrensen for den strengeste oppføringen i
RateLimit-Policy(den med færrest gjenværende forespørsler).X-RateLimit-RemainingGjenværende forespørsler under den strengeste grensen.
X-RateLimit-ResetSekunder til den strengeste grensen nullstilles.
application/json
400Forespørselen er ugyldig: en parameterverdi eller objektets tilstand tillater ikke handlingen (`detail` er en melding).
Headere i svaret
RateLimit-PolicyGjeldende grenser i formatet fra IETF-utkastet
draft-ietf-httpapi-ratelimit-headers: kommaseparerte elementer"<name>";q=<quota>;w=<window in seconds>.keyer forespørselsraten til API-nøkkelen (kvoten er burst, tidsvinduet er tiden det tar å fylle den helt opp igjen; for en økt er detuser, uten påloggingsinformasjonip);minute,dayogmonther organisasjonens kvoter for kalenderminuttet, kalenderdøgnet og kalendermåneden i UTC.RateLimitHva som gjenstår av hver grense i
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitGrensen for den strengeste oppføringen i
RateLimit-Policy(den med færrest gjenværende forespørsler).X-RateLimit-RemainingGjenværende forespørsler under den strengeste grensen.
X-RateLimit-ResetSekunder til den strengeste grensen nullstilles.
application/json
401Ingen påloggingsinformasjon ble sendt (verken øktinformasjonskapsel eller API-nøkkel), eller nøkkelen ble ikke funnet.
Headere i svaret
RateLimit-PolicyGjeldende grenser i formatet fra IETF-utkastet
draft-ietf-httpapi-ratelimit-headers: kommaseparerte elementer"<name>";q=<quota>;w=<window in seconds>.keyer forespørselsraten til API-nøkkelen (kvoten er burst, tidsvinduet er tiden det tar å fylle den helt opp igjen; for en økt er detuser, uten påloggingsinformasjonip);minute,dayogmonther organisasjonens kvoter for kalenderminuttet, kalenderdøgnet og kalendermåneden i UTC.RateLimitHva som gjenstår av hver grense i
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitGrensen for den strengeste oppføringen i
RateLimit-Policy(den med færrest gjenværende forespørsler).X-RateLimit-RemainingGjenværende forespørsler under den strengeste grensen.
X-RateLimit-ResetSekunder til den strengeste grensen nullstilles.
application/json
402Organisasjonen har nådd en grense i prisplanen (kort, lagring eller brukere). `error.details` inneholder `kind`, `limit` og `used`.
Headere i svaret
RateLimit-PolicyGjeldende grenser i formatet fra IETF-utkastet
draft-ietf-httpapi-ratelimit-headers: kommaseparerte elementer"<name>";q=<quota>;w=<window in seconds>.keyer forespørselsraten til API-nøkkelen (kvoten er burst, tidsvinduet er tiden det tar å fylle den helt opp igjen; for en økt er detuser, uten påloggingsinformasjonip);minute,dayogmonther organisasjonens kvoter for kalenderminuttet, kalenderdøgnet og kalendermåneden i UTC.RateLimitHva som gjenstår av hver grense i
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitGrensen for den strengeste oppføringen i
RateLimit-Policy(den med færrest gjenværende forespørsler).X-RateLimit-RemainingGjenværende forespørsler under den strengeste grensen.
X-RateLimit-ResetSekunder til den strengeste grensen nullstilles.
application/json
403Handlingen er ikke tillatt: rollen er utilstrekkelig, det finnes ingen tilgang til samlingen eller kortet, forespørselen kjører i modusen «View as», eller organisasjonen er suspendert eller slettet (`detail` er et objekt med `code: org_suspended | org_deleted`).
Headere i svaret
RateLimit-PolicyGjeldende grenser i formatet fra IETF-utkastet
draft-ietf-httpapi-ratelimit-headers: kommaseparerte elementer"<name>";q=<quota>;w=<window in seconds>.keyer forespørselsraten til API-nøkkelen (kvoten er burst, tidsvinduet er tiden det tar å fylle den helt opp igjen; for en økt er detuser, uten påloggingsinformasjonip);minute,dayogmonther organisasjonens kvoter for kalenderminuttet, kalenderdøgnet og kalendermåneden i UTC.RateLimitHva som gjenstår av hver grense i
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitGrensen for den strengeste oppføringen i
RateLimit-Policy(den med færrest gjenværende forespørsler).X-RateLimit-RemainingGjenværende forespørsler under den strengeste grensen.
X-RateLimit-ResetSekunder til den strengeste grensen nullstilles.
application/json
404Objektet finnes ikke eller er ikke tilgjengelig for deg. API-et bekrefter ikke at et objekt med begrenset tilgang finnes.
Headere i svaret
RateLimit-PolicyGjeldende grenser i formatet fra IETF-utkastet
draft-ietf-httpapi-ratelimit-headers: kommaseparerte elementer"<name>";q=<quota>;w=<window in seconds>.keyer forespørselsraten til API-nøkkelen (kvoten er burst, tidsvinduet er tiden det tar å fylle den helt opp igjen; for en økt er detuser, uten påloggingsinformasjonip);minute,dayogmonther organisasjonens kvoter for kalenderminuttet, kalenderdøgnet og kalendermåneden i UTC.RateLimitHva som gjenstår av hver grense i
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitGrensen for den strengeste oppføringen i
RateLimit-Policy(den med færrest gjenværende forespørsler).X-RateLimit-RemainingGjenværende forespørsler under den strengeste grensen.
X-RateLimit-ResetSekunder til den strengeste grensen nullstilles.
application/json
409Objektets tilstand tillater ikke handlingen, for eksempel et duplikat, en indeksering som pågår, eller en jobb som allerede er behandlet.
Headere i svaret
RateLimit-PolicyGjeldende grenser i formatet fra IETF-utkastet
draft-ietf-httpapi-ratelimit-headers: kommaseparerte elementer"<name>";q=<quota>;w=<window in seconds>.keyer forespørselsraten til API-nøkkelen (kvoten er burst, tidsvinduet er tiden det tar å fylle den helt opp igjen; for en økt er detuser, uten påloggingsinformasjonip);minute,dayogmonther organisasjonens kvoter for kalenderminuttet, kalenderdøgnet og kalendermåneden i UTC.RateLimitHva som gjenstår av hver grense i
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitGrensen for den strengeste oppføringen i
RateLimit-Policy(den med færrest gjenværende forespørsler).X-RateLimit-RemainingGjenværende forespørsler under den strengeste grensen.
X-RateLimit-ResetSekunder til den strengeste grensen nullstilles.
application/json
413Forespørselens brødtekst overskrider tillatt størrelse.
Headere i svaret
RateLimit-PolicyGjeldende grenser i formatet fra IETF-utkastet
draft-ietf-httpapi-ratelimit-headers: kommaseparerte elementer"<name>";q=<quota>;w=<window in seconds>.keyer forespørselsraten til API-nøkkelen (kvoten er burst, tidsvinduet er tiden det tar å fylle den helt opp igjen; for en økt er detuser, uten påloggingsinformasjonip);minute,dayogmonther organisasjonens kvoter for kalenderminuttet, kalenderdøgnet og kalendermåneden i UTC.RateLimitHva som gjenstår av hver grense i
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitGrensen for den strengeste oppføringen i
RateLimit-Policy(den med færrest gjenværende forespørsler).X-RateLimit-RemainingGjenværende forespørsler under den strengeste grensen.
X-RateLimit-ResetSekunder til den strengeste grensen nullstilles.
application/json
415Filformatet støttes ikke.
Headere i svaret
RateLimit-PolicyGjeldende grenser i formatet fra IETF-utkastet
draft-ietf-httpapi-ratelimit-headers: kommaseparerte elementer"<name>";q=<quota>;w=<window in seconds>.keyer forespørselsraten til API-nøkkelen (kvoten er burst, tidsvinduet er tiden det tar å fylle den helt opp igjen; for en økt er detuser, uten påloggingsinformasjonip);minute,dayogmonther organisasjonens kvoter for kalenderminuttet, kalenderdøgnet og kalendermåneden i UTC.RateLimitHva som gjenstår av hver grense i
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitGrensen for den strengeste oppføringen i
RateLimit-Policy(den med færrest gjenværende forespørsler).X-RateLimit-RemainingGjenværende forespørsler under den strengeste grensen.
X-RateLimit-ResetSekunder til den strengeste grensen nullstilles.
application/json
422Valideringsfeil: brødteksten eller parameterne samsvarer ikke med skjemaet (`detail` er en liste over valideringsfeil), eller en parameterverdi er utenfor tillatt område (`detail` er en melding).
Headere i svaret
RateLimit-PolicyGjeldende grenser i formatet fra IETF-utkastet
draft-ietf-httpapi-ratelimit-headers: kommaseparerte elementer"<name>";q=<quota>;w=<window in seconds>.keyer forespørselsraten til API-nøkkelen (kvoten er burst, tidsvinduet er tiden det tar å fylle den helt opp igjen; for en økt er detuser, uten påloggingsinformasjonip);minute,dayogmonther organisasjonens kvoter for kalenderminuttet, kalenderdøgnet og kalendermåneden i UTC.RateLimitHva som gjenstår av hver grense i
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitGrensen for den strengeste oppføringen i
RateLimit-Policy(den med færrest gjenværende forespørsler).X-RateLimit-RemainingGjenværende forespørsler under den strengeste grensen.
X-RateLimit-ResetSekunder til den strengeste grensen nullstilles.
application/json
429For mange forespørsler (`api.rate_limited`), organisasjonens kvote for minuttet, døgnet eller måneden er brukt opp (`api.quota_exceeded`; `error.details` inneholder `quota`, `limit` og `reset_at`), organisasjonens grense er nådd, eller svartjenesten er opptatt (`answers.engine_busy`). Vent så lenge som headeren `Retry-After` angir.
Headere i svaret
Retry-AfterAntall sekunder du skal vente før du prøver forespørselen på nytt.
RateLimit-PolicyGjeldende grenser i formatet fra IETF-utkastet
draft-ietf-httpapi-ratelimit-headers: kommaseparerte elementer"<name>";q=<quota>;w=<window in seconds>.keyer forespørselsraten til API-nøkkelen (kvoten er burst, tidsvinduet er tiden det tar å fylle den helt opp igjen; for en økt er detuser, uten påloggingsinformasjonip);minute,dayogmonther organisasjonens kvoter for kalenderminuttet, kalenderdøgnet og kalendermåneden i UTC.RateLimitHva som gjenstår av hver grense i
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitGrensen for den strengeste oppføringen i
RateLimit-Policy(den med færrest gjenværende forespørsler).X-RateLimit-RemainingGjenværende forespørsler under den strengeste grensen.
X-RateLimit-ResetSekunder til den strengeste grensen nullstilles.
application/json
503En tjeneste som denne forespørselen er avhengig av, er midlertidig utilgjengelig. Prøv på nytt senere.
Headere i svaret
RateLimit-PolicyGjeldende grenser i formatet fra IETF-utkastet
draft-ietf-httpapi-ratelimit-headers: kommaseparerte elementer"<name>";q=<quota>;w=<window in seconds>.keyer forespørselsraten til API-nøkkelen (kvoten er burst, tidsvinduet er tiden det tar å fylle den helt opp igjen; for en økt er detuser, uten påloggingsinformasjonip);minute,dayogmonther organisasjonens kvoter for kalenderminuttet, kalenderdøgnet og kalendermåneden i UTC.RateLimitHva som gjenstår av hver grense i
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitGrensen for den strengeste oppføringen i
RateLimit-Policy(den med færrest gjenværende forespørsler).X-RateLimit-RemainingGjenværende forespørsler under den strengeste grensen.
X-RateLimit-ResetSekunder til den strengeste grensen nullstilles.
application/json
Feilkoder
Kodene denne operasjonen kan returnere i error.code, i tillegg til de generelle kodene for alle forespørsler.
- 400api.metadata_invalid
- 401auth.not_authenticated
- 403auth.system_scope
- 403authz.forbidden
- 403cards.content_whole_access
- 409cards.external_id_taken
- 409cards.indexing_in_progress
- 409cards.managed_by_source
- 403cards.no_access
- 404cards.not_found
- 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
- 402limits.cards
- 403org.deleted
- 403org.suspended
- 400users.not_in_org
- 403view_as.read_only
Hastighetsgrenser
Svarene har headerne RateLimit og RateLimit-Policy og de eldre X-RateLimit-Limit, X-RateLimit-Remaining og X-RateLimit-Reset. Et 429-svar har Retry-After i sekunder: Vent, og prøv på nytt.