POST/v1/sources
Crear una font
create_source
Amb una clau d’API de l’organització (des de la 1.62.0), només hi ha disponible una font personalitzada (kind: custom): la clau necessita el rol admin i l’àmbit admin. Qualsevol altre tipus retorna 400 sources.kind_not_allowed_for_key; els connectors que inicien la sessió amb el proveïdor es configuren al navegador. Els camps dels connectors no es mostren a l’especificació pública. Una font personalitzada accepta name, la col·lecció (collection_id o collection), el mode de permisos permissions_mode, la carpeta de la col·lecció per a les entrades (folder_id i folder_mode) i les carpetes de documents seleccionades (roots). Els documents s’envien amb les operacions /v1/push/sources/{source_id}/*.
Autenticació
Envieu una clau d’API a la capçalera Authorization: Authorization: Bearer <clau>.
Paràmetres de capçalera
X-View-AsstringNomés per a claus d’API amb el rol
admin. Fa la sol·licitud com el perfil de dades<profile>[:viewer|verifier|editor], per exempleemployee:viewer. La clau d’instal·lació no pot fer servir aquesta capçalera (403).Idempotency-KeystringClau per reintentar una escriptura de manera segura: d’1 a 255 caràcters ASCII imprimibles; es recomana un UUID v4 per operació lògica. Un reintent amb la mateixa clau en un termini de 24 hores no torna a executar l’operació: retorna la resposta desada (estat, capçaleres i cos) amb la capçalera
Idempotency-Replayed: true. La mateixa clau amb un mètode, un camí, unContent-Typeo un cos diferents retorna409 api.idempotency_mismatch; mentre la primera sol·licitud encara s’executa,409 api.idempotency_in_progressambRetry-After: 1. Després d’una resposta 5xx o 429 la clau s’allibera, i un reintent torna a executar l’operació. L’abast de la clau és l’organització i qui fa la crida (clau d’API, usuari o clau de font personalitzada).length ≥ 1, length ≤ 255
Paràmetres de galeta
kb_view_asstringGaleta del mode «View as» per a una sessió.
POST /auth/view-asl’estableix iDELETE /auth/view-asl’esborra.
Cos de la sol·licitud
application/json
kindstringTipus de font (vegeu SourceKind); amb una clau d’API de l’organització, només
custom.Per defecte: "gdrive"
namestringobligatorilength ≥ 1, length ≤ 120
collectionstringNom de la col·lecció de la font; en lloc seu podeu passar
collection_id(des de la versió 1.62.0).length ≥ 1, length ≤ 64
collection_idintegerCol·lecció de la font per ID (des de la versió 1.62.0); si es passen tots dos, preval
collection_id.permissions_modestringMode de permisos de les entrades de la font (des de la versió 1.62.0, com a
update_source_settings):ownfa servir els permisos de la col·lecció,mirrorels pren del document (permissions). Triarmirrorrequereix el dret de gestionar els permisos de la col·lecció.Valors permesos:
ownmirrordefault_owner_idinteger | nullverify_interval_daysintegerPer defecte: 90≥ 1, ≤ 3650
tagsarray of stringPer defecte: []
default_categorystring | nullrootsarray of string | nullCarpetes seleccionades de la font: només els elements que contenen es converteixen en entrades. En una font personalitzada, els camins de carpeta dels documents (
Guides/Billing); en els connectors, nodes de l’arbre del proveïdor.folder_idstring | nullCarpeta de la col·lecció de la font on es col·loquen les entrades (null vol dir l’arrel de la col·lecció).
folder_modestringflatho posa tot a la carpeta seleccionada;mirrorcrea carpetes que repeteixen el camí de l’element a la font, sense superar el límit d’imbricació de carpetes (3 nivells; els elements més profunds van a la carpeta més propera).Valors permesos:
flatmirrorPer defecte: "flat"
Respostes
200Resposta correcta
Capçaleres de la resposta
RateLimit-PolicyLímits vigents, en el format de l’esborrany de l’IETF
draft-ietf-httpapi-ratelimit-headers: elements separats per comes"<name>";q=<quota>;w=<window in seconds>.keyés la freqüència de sol·licituds de la clau d’API (la quota és la ràfega, la finestra és el temps que triga a reomplir-se del tot; per a una sessió ésuser, sense credencialsip);minute,dayimonthsón les quotes de l’organització per al minut, el dia i el mes naturals en UTC.RateLimitEl que queda de cada límit de
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLímit de l’element més restrictiu de
RateLimit-Policy(el que té menys sol·licituds restants).X-RateLimit-RemainingSol·licituds restants dins del límit més restrictiu.
X-RateLimit-ResetSegons que falten perquè es restableixi el límit més restrictiu.
Idempotency-Replayedtrueindica que la resposta s’ha reproduït a partir de la desada per a aquestaIdempotency-Key: l’operació no s’ha tornat a executar.
400La sol·licitud no és vàlida: el valor d’un paràmetre o l’estat de l’objecte no permeten l’acció (`detail` és un missatge).
Capçaleres de la resposta
RateLimit-PolicyLímits vigents, en el format de l’esborrany de l’IETF
draft-ietf-httpapi-ratelimit-headers: elements separats per comes"<name>";q=<quota>;w=<window in seconds>.keyés la freqüència de sol·licituds de la clau d’API (la quota és la ràfega, la finestra és el temps que triga a reomplir-se del tot; per a una sessió ésuser, sense credencialsip);minute,dayimonthsón les quotes de l’organització per al minut, el dia i el mes naturals en UTC.RateLimitEl que queda de cada límit de
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLímit de l’element més restrictiu de
RateLimit-Policy(el que té menys sol·licituds restants).X-RateLimit-RemainingSol·licituds restants dins del límit més restrictiu.
X-RateLimit-ResetSegons que falten perquè es restableixi el límit més restrictiu.
application/json
401No s’han enviat credencials (ni una galeta de sessió ni una clau d’API), o no s’ha trobat la clau.
Capçaleres de la resposta
RateLimit-PolicyLímits vigents, en el format de l’esborrany de l’IETF
draft-ietf-httpapi-ratelimit-headers: elements separats per comes"<name>";q=<quota>;w=<window in seconds>.keyés la freqüència de sol·licituds de la clau d’API (la quota és la ràfega, la finestra és el temps que triga a reomplir-se del tot; per a una sessió ésuser, sense credencialsip);minute,dayimonthsón les quotes de l’organització per al minut, el dia i el mes naturals en UTC.RateLimitEl que queda de cada límit de
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLímit de l’element més restrictiu de
RateLimit-Policy(el que té menys sol·licituds restants).X-RateLimit-RemainingSol·licituds restants dins del límit més restrictiu.
X-RateLimit-ResetSegons que falten perquè es restableixi el límit més restrictiu.
application/json
403L’acció no està permesa: el rol és insuficient, no hi ha accés a la col·lecció o a l’entrada, la sol·licitud s’executa en mode «View as», o l’organització està suspesa o eliminada (`detail` és un objecte amb `code: org_suspended | org_deleted`).
Capçaleres de la resposta
RateLimit-PolicyLímits vigents, en el format de l’esborrany de l’IETF
draft-ietf-httpapi-ratelimit-headers: elements separats per comes"<name>";q=<quota>;w=<window in seconds>.keyés la freqüència de sol·licituds de la clau d’API (la quota és la ràfega, la finestra és el temps que triga a reomplir-se del tot; per a una sessió ésuser, sense credencialsip);minute,dayimonthsón les quotes de l’organització per al minut, el dia i el mes naturals en UTC.RateLimitEl que queda de cada límit de
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLímit de l’element més restrictiu de
RateLimit-Policy(el que té menys sol·licituds restants).X-RateLimit-RemainingSol·licituds restants dins del límit més restrictiu.
X-RateLimit-ResetSegons que falten perquè es restableixi el límit més restrictiu.
application/json
404L’objecte no existeix o no està disponible per a vós. L’API no confirma que existeixi un objecte restringit.
Capçaleres de la resposta
RateLimit-PolicyLímits vigents, en el format de l’esborrany de l’IETF
draft-ietf-httpapi-ratelimit-headers: elements separats per comes"<name>";q=<quota>;w=<window in seconds>.keyés la freqüència de sol·licituds de la clau d’API (la quota és la ràfega, la finestra és el temps que triga a reomplir-se del tot; per a una sessió ésuser, sense credencialsip);minute,dayimonthsón les quotes de l’organització per al minut, el dia i el mes naturals en UTC.RateLimitEl que queda de cada límit de
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLímit de l’element més restrictiu de
RateLimit-Policy(el que té menys sol·licituds restants).X-RateLimit-RemainingSol·licituds restants dins del límit més restrictiu.
X-RateLimit-ResetSegons que falten perquè es restableixi el límit més restrictiu.
application/json
422Error de validació: el cos o els paràmetres no coincideixen amb l’esquema (`detail` és una llista d’errors de validació), o el valor d’un paràmetre és fora de l’interval permès (`detail` és un missatge).
Capçaleres de la resposta
RateLimit-PolicyLímits vigents, en el format de l’esborrany de l’IETF
draft-ietf-httpapi-ratelimit-headers: elements separats per comes"<name>";q=<quota>;w=<window in seconds>.keyés la freqüència de sol·licituds de la clau d’API (la quota és la ràfega, la finestra és el temps que triga a reomplir-se del tot; per a una sessió ésuser, sense credencialsip);minute,dayimonthsón les quotes de l’organització per al minut, el dia i el mes naturals en UTC.RateLimitEl que queda de cada límit de
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLímit de l’element més restrictiu de
RateLimit-Policy(el que té menys sol·licituds restants).X-RateLimit-RemainingSol·licituds restants dins del límit més restrictiu.
X-RateLimit-ResetSegons que falten perquè es restableixi el límit més restrictiu.
application/json
429Massa sol·licituds (`api.rate_limited`), s’ha esgotat la quota de l’organització per al minut, el dia o el mes (`api.quota_exceeded`; `error.details` conté `quota`, `limit` i `reset_at`), s’ha arribat al límit de l’organització o el servei de respostes està ocupat (`answers.engine_busy`). Espereu el temps que indica la capçalera `Retry-After`.
Capçaleres de la resposta
Retry-AfterNombre de segons que cal esperar abans de reintentar la sol·licitud.
RateLimit-PolicyLímits vigents, en el format de l’esborrany de l’IETF
draft-ietf-httpapi-ratelimit-headers: elements separats per comes"<name>";q=<quota>;w=<window in seconds>.keyés la freqüència de sol·licituds de la clau d’API (la quota és la ràfega, la finestra és el temps que triga a reomplir-se del tot; per a una sessió ésuser, sense credencialsip);minute,dayimonthsón les quotes de l’organització per al minut, el dia i el mes naturals en UTC.RateLimitEl que queda de cada límit de
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLímit de l’element més restrictiu de
RateLimit-Policy(el que té menys sol·licituds restants).X-RateLimit-RemainingSol·licituds restants dins del límit més restrictiu.
X-RateLimit-ResetSegons que falten perquè es restableixi el límit més restrictiu.
application/json
Codis d’error
Codis que aquest punt final pot retornar a error.code, a més dels codis generals de totes les sol·licituds.
- 400sources.kind_not_allowed_for_key
- 403api_keys.scope
- 401auth.not_authenticated
- 403auth.system_scope
- 400categories.unknown
- 403collections.no_access
- 404collections.not_found
- 403org.deleted
- 403org.suspended
- 400sources.invalid_config
- 400sources.connection_kind_mismatch
- 404sources.connection_not_found
- 403sources.connection_not_usable
- 403sources.feature_disabled
- 400sources.folder_invalid
- 402limits.sources
- 402limits.sources_instant
- 400users.inactive_assignment
- 400users.not_in_org
- 403view_as.read_only
Reintents segurs
Envieu una capçalera Idempotency-Key (per exemple, un UUID) amb cada POST i PATCH. Un reintent amb la mateixa clau en un termini de 24 hores retorna la resposta desada en lloc de tornar a executar la sol·licitud.
Límits de freqüència
Les respostes porten les capçaleres RateLimit i RateLimit-Policy i les anteriors X-RateLimit-Limit, X-RateLimit-Remaining i X-RateLimit-Reset. Una resposta 429 té Retry-After en segons: espereu i torneu-ho a provar.