Gå til indhold

Hastighedsbegrænsning og idempotens

Send en Idempotency-Key-header med en POST for at gøre den sikker at forsøge igen. Brug en ny, unik værdi pr. handling (et UUID eller et id fra dit eget system, f.eks. onboarding-8841): 1 til 255 skrivbare ASCII-tegn.

Terminal window
curl https://api.bonafidesign.com/v1/envelopes \
-H "Authorization: Bearer $BONA_FIDE_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 6f1c2f0e-1d0b-4c2a-9a59-3f1f1c7d2b11" \
-d @envelope.json
  • Den første anmodning med en nøgle kører normalt, og dens svar gemmes i 24 timer.
  • Et genforsøg med samme nøgle og samme anmodning (metode, sti, forespørgselsstreng og body) får det gemte svar afspillet igen med headeren Idempotent-Replayed: true.
  • Samme nøgle med en anden anmodning giver 422 idempotency-key-reused.
  • Et genforsøg, mens den første anmodning stadig kører, giver 409 idempotency-in-progress; prøv igen om lidt.
  • 5xx-svar gemmes ikke, så et genforsøg efter en serverfejl kører igen.

Nøgler er knyttet til kalderen: organisationen og den API-nøgle (eller dashboardbruger), der sendte dem. Handlinger, der accepterer en nøgle, er markeret med en Idempotency-Key-headerparameter i API-referencen, bl.a. oprettelse af skabeloner, upload af filer, udgivelse, oprettelse og annullering af kuverter, gensendelse af links, oprettelse af signeringssessioner, oprettelse af underskriftslinks og webhook-slutpunkter samt ny levering af hændelser.

Idempotensnøgler beskytter genforsøg af én anmodning. For at sikre at et forretningsobjekt kun nogensinde sendes én gang, sender du også dit eget id og dedupeOn:

{ "template": "tpl_…", "externalId": "user_8841", "dedupeOn": "external_id", "…": "…" }

Hvis der allerede findes en kuvert med det externalId (i samme tilstand), returnerer POST /v1/envelopes den med 200 og x-deduplicated: true i stedet for at oprette en ny. Det gælder på tværs af nøgler, dage og samtidige anmodninger.

Det godkendte API (API-nøgler) har i dag ingen fast grænse for antallet af anmodninger; afsendelse begrænses af din plan. Der gælder grænser, hvor misbrug er muligt:

Hvor Grænse
POST /v1/public/verify 60 anmodninger pr. minut pr. IP-adresse
GET /v1/public/anchors…, /.well-known/bona-fide/* 240 anmodninger pr. minut pr. IP-adresse
GET /v1/sso/discover 30 opslag pr. minut pr. IP-adresse
Engangskoder til underskrivere 5 koder pr. 15 minutter pr. session; 5 forsøg pr. kode
Gensendelse til modtager Én gang i minuttet pr. modtager
Permanente links Pr. link: perEmailPerDay (standard 3), perIpPerHour (standard 20), valgfrit dailyCap
Login med adgangskode i dashboardet 10 pr. minut pr. IP-adresse; 10 pr. 15 minutter pr. e-mailadresse
Tilmelding med adgangskode i dashboardet 5 pr. minut pr. IP-adresse; 5 pr. time pr. e-mailadresse
E-mails til nulstilling af adgangskode 5 pr. 15 minutter pr. IP-adresse; 3 pr. time pr. e-mailadresse
Loginkoder til dashboardet 3 pr. minut pr. IP-adresse

Begrænsede offentlige slutpunkter sender headerne RateLimit-Limit, RateLimit-Remaining og RateLimit-Reset (sekunder). Over grænsen svarer API’et 429 med et rate-limited-problem, som regel med en Retry-After-header i sekunder.