POST/v1/webhooks
Webhook létrehozása
create_webhook
Az URL-nek https sémát kell használnia, a gazdagépnevének pedig nyilvános címekre kell feloldódnia. A magánhálózatokat (RFC 1918), a visszacsatolási, a kapcsolati szintű (link-local) és a felhős metaadat-címeket, valamint az egyéb különleges célú hálózatokat a regisztrációkor és minden kapcsolódáskor is elutasítja. Az aláíró titkos kulcs egyszer jelenik meg a válaszban (secret); ezután csak megújítani lehet. Egy szervezetnek legfeljebb 20 webhookja lehet.
A feliratkozás eseménytípusokat és eseménycsoport-mintákat (card.*, *) sorol fel. A hozzáférés ugyanúgy állítható be, mint egy API-kulcsnál: role, data_profile_id és collection_ids. Az olyan objektumról szóló esemény, amelyet a szerepkör, az adatprofil vagy a gyűjtemények nem látnak, nem kerül kézbesítésre. A tags a kártyaeseményeket azokra a kártyákra korlátozza, amelyek a címkék bármelyikével rendelkeznek. A payload: thin data nélkül küldi az eseményeket. Az egyéni fejlécek (headers) és a kimenő hitelesítés (auth) titkosítva tárolódnak; a válaszok csak a fejlécek nevét, valamint a value_set és az auth_set jelzőt tartalmazzák.
Hitelesítés
Küldj egy API-kulcsot az Authorization fejlécben: Authorization: Bearer <kulcs>.
Fejlécparaméterek
Idempotency-KeystringKulcs egy írási kérés biztonságos megismétléséhez: 1–255 nyomtatható ASCII-karakter; logikai műveletenként egy UUID v4 ajánlott. Ha 24 órán belül ugyanazzal a kulccsal ismétled meg a kérést, a művelet nem fut le újra: a mentett választ kapod vissza (állapot, fejlécek és törzs) az
Idempotency-Replayed: truefejléccel. Ugyanaz a kulcs más metódussal, útvonallal,Content-Typeértékkel vagy törzzsel409 api.idempotency_mismatchválaszt ad; amíg az első kérés még fut, a válasz409 api.idempotency_in_progress,Retry-After: 1fejléccel. 5xx vagy 429 válasz után a kulcs felszabadul, és a megismételt kérés újra lefuttatja a műveletet. A kulcs a szervezethez és a hívóhoz (API-kulcs, felhasználó vagy egyéni forrás forráskulcsa) kötődik.length ≥ 1, length ≤ 255
Kéréstörzs
application/json
urlstringkötelezőA fogadó URL-je, csak
https://, legfeljebb 2048 karakter.length ≤ 2048
descriptionstringlength ≤ 200
items ≥ 1
roleWebhookRoledata_profile_idinteger | nullcollection_idsarray of integerAzok a gyűjtemények, amelyekről a webhook eseményeket kap. Hiányzó érték vagy üres lista esetén a szerepkör és az adatprofil számára elérhető összes gyűjtemény. A maga is gyűjteményekre korlátozott kulcs csak a saját gyűjteményeinek nem üres listájával hozhat létre webhookot. E mező nélkül, üres listával vagy a kulcs listáján kívüli gyűjteménnyel a válasz
403 webhooks.collections_outside_key.items ≤ 200
tagsarray of stringitems ≤ 50
payloadWebhookPayloadModeheadersarray of WebhookHeaderInputitems ≤ 10
authWebhookAuthInput
Válaszok
201Létrehozva. Csak ekkor jelenik meg a `secret` értéke.
Válaszfejlécek
RateLimit-PolicyAz érvényben lévő korlátok az IETF
draft-ietf-httpapi-ratelimit-headerstervezetének formátumában: vesszővel elválasztott"<name>";q=<quota>;w=<window in seconds>elemek. Akeyaz API-kulcs kérésgyakorisága (a kvóta a csúcskeret, az időablak a teljes visszatöltődés ideje; munkamenetnéluser, hitelesítő adatok nélkülip); aminute, adayés amontha szervezetnek az UTC szerinti naptári percre, napra és hónapra szóló kvótája.RateLimitMennyi maradt a
RateLimit-Policyegyes korlátaiból:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitA
RateLimit-Policylegszigorúbb elemének korlátja (amelyből a legkevesebb kérés maradt).X-RateLimit-RemainingA legszigorúbb korlát szerint még hátralévő kérések száma.
X-RateLimit-ResetA legszigorúbb korlát visszaállásáig hátralévő másodpercek.
Idempotency-ReplayedA
trueazt jelenti, hogy a válasz az ehhez azIdempotency-Keykulcshoz mentett válasz megismétlése: a művelet nem futott le újra.
application/json
idintegerkötelezőurlstringköteleződescriptionstringkötelezőactivebooleankötelezőpaused_atstring (date-time) | nullpaused_reasonstring | nullfailures: egymás után 10 sikertelen kísérlet;feature_disabled: a csomag nem tartalmaz webhookokat.disabled_reasonstring | nullgone: a fogadó 410-es kóddal válaszolt;manual: adminisztrátor tiltotta le.Megengedett értékek:
gonemanualnulldisabled_atstring (date-time) | nulldata_profile_idinteger | nullA webhook adatprofilja (a
nullazt jelenti, hogy nincs profil, mint az azonos szerepkörű API-kulcsnál).collection_idsarray of integerkötelezőGyűjtemények, amelyekről a webhook eseményeket kap; az üres érték a szerepkör és az adatprofil számára elérhető összes gyűjteményt jelenti.
tagsarray of stringkötelezőKártyaesemények csak olyan kártyákról, amelyek e címkék bármelyikével rendelkeznek; az üres érték azt jelenti, hogy nincs szűrő.
auth_typestring | nullA kimenő hitelesítés típusa (a
nullazt jelenti, hogy nincs).Megengedett értékek:
bearerbasicnullauth_setbooleankötelezőBe van-e állítva kimenő hitelesítés (az értékeket a rendszer soha nem adja vissza).
previous_secret_valid_untilstring (date-time) | nullMeddig írja alá a rendszer a kézbesítéseket az előző titkos kulccsal is (a
nullazt jelenti, hogy nincs átfedési idő).healthWebhookHealthconsecutive_failuresintegerkötelezőlast_delivery_atstring (date-time) | nulllast_success_atstring (date-time) | nulllast_errorstring | nullcreated_byinteger | nullcreated_by_namestring | nullcreated_atstring (date-time)kötelezőupdated_atstring (date-time)kötelezősecretstringkötelezőwhsec_, majd 32 bájt base64 kódolásban (az új titkos kulcsok a szabványos ábécét használják kitöltéssel, a régebbiek base64url kódolást). Tárold a fogadó oldalán; az API válaszaiban soha többé nem jelenik meg. A Standard Webhooks aláíró kulcsa awhsec_utáni rész base64-dekódolása.previous_valid_untilstring (date-time) | nullMeddig fogadja még el a rendszer az előző titkos kulcsot (megújítás után). Létrehozáskor
null.
400A kérés érvénytelen: egy paraméter értéke vagy az objektum állapota nem teszi lehetővé a műveletet (a `detail` egy üzenet).
Válaszfejlécek
RateLimit-PolicyAz érvényben lévő korlátok az IETF
draft-ietf-httpapi-ratelimit-headerstervezetének formátumában: vesszővel elválasztott"<name>";q=<quota>;w=<window in seconds>elemek. Akeyaz API-kulcs kérésgyakorisága (a kvóta a csúcskeret, az időablak a teljes visszatöltődés ideje; munkamenetnéluser, hitelesítő adatok nélkülip); aminute, adayés amontha szervezetnek az UTC szerinti naptári percre, napra és hónapra szóló kvótája.RateLimitMennyi maradt a
RateLimit-Policyegyes korlátaiból:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitA
RateLimit-Policylegszigorúbb elemének korlátja (amelyből a legkevesebb kérés maradt).X-RateLimit-RemainingA legszigorúbb korlát szerint még hátralévő kérések száma.
X-RateLimit-ResetA legszigorúbb korlát visszaállásáig hátralévő másodpercek.
application/json
401Nem érkeztek hitelesítő adatok (sem munkamenet-süti, sem API-kulcs), vagy a kulcs nem található.
Válaszfejlécek
RateLimit-PolicyAz érvényben lévő korlátok az IETF
draft-ietf-httpapi-ratelimit-headerstervezetének formátumában: vesszővel elválasztott"<name>";q=<quota>;w=<window in seconds>elemek. Akeyaz API-kulcs kérésgyakorisága (a kvóta a csúcskeret, az időablak a teljes visszatöltődés ideje; munkamenetnéluser, hitelesítő adatok nélkülip); aminute, adayés amontha szervezetnek az UTC szerinti naptári percre, napra és hónapra szóló kvótája.RateLimitMennyi maradt a
RateLimit-Policyegyes korlátaiból:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitA
RateLimit-Policylegszigorúbb elemének korlátja (amelyből a legkevesebb kérés maradt).X-RateLimit-RemainingA legszigorúbb korlát szerint még hátralévő kérések száma.
X-RateLimit-ResetA legszigorúbb korlát visszaállásáig hátralévő másodpercek.
application/json
403A művelet nem engedélyezett: a szerepkör nem elegendő, nincs hozzáférés a gyűjteményhez vagy a kártyához, a kérés „View as” módban fut, vagy a szervezetet felfüggesztették vagy törölték (a `detail` egy objektum, `code: org_suspended | org_deleted` mezővel).
Válaszfejlécek
RateLimit-PolicyAz érvényben lévő korlátok az IETF
draft-ietf-httpapi-ratelimit-headerstervezetének formátumában: vesszővel elválasztott"<name>";q=<quota>;w=<window in seconds>elemek. Akeyaz API-kulcs kérésgyakorisága (a kvóta a csúcskeret, az időablak a teljes visszatöltődés ideje; munkamenetnéluser, hitelesítő adatok nélkülip); aminute, adayés amontha szervezetnek az UTC szerinti naptári percre, napra és hónapra szóló kvótája.RateLimitMennyi maradt a
RateLimit-Policyegyes korlátaiból:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitA
RateLimit-Policylegszigorúbb elemének korlátja (amelyből a legkevesebb kérés maradt).X-RateLimit-RemainingA legszigorúbb korlát szerint még hátralévő kérések száma.
X-RateLimit-ResetA legszigorúbb korlát visszaállásáig hátralévő másodpercek.
application/json
409Az objektum állapota nem teszi lehetővé a műveletet, például ismétlődés, folyamatban lévő indexelés vagy már feldolgozott feladat miatt.
Válaszfejlécek
RateLimit-PolicyAz érvényben lévő korlátok az IETF
draft-ietf-httpapi-ratelimit-headerstervezetének formátumában: vesszővel elválasztott"<name>";q=<quota>;w=<window in seconds>elemek. Akeyaz API-kulcs kérésgyakorisága (a kvóta a csúcskeret, az időablak a teljes visszatöltődés ideje; munkamenetnéluser, hitelesítő adatok nélkülip); aminute, adayés amontha szervezetnek az UTC szerinti naptári percre, napra és hónapra szóló kvótája.RateLimitMennyi maradt a
RateLimit-Policyegyes korlátaiból:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitA
RateLimit-Policylegszigorúbb elemének korlátja (amelyből a legkevesebb kérés maradt).X-RateLimit-RemainingA legszigorúbb korlát szerint még hátralévő kérések száma.
X-RateLimit-ResetA legszigorúbb korlát visszaállásáig hátralévő másodpercek.
application/json
422Érvényesítési hiba: a törzs vagy a paraméterek nem felelnek meg a sémának (a `detail` az érvényesítési hibák listája), vagy egy paraméter értéke kívül esik a megengedett tartományon (a `detail` egy üzenet).
Válaszfejlécek
RateLimit-PolicyAz érvényben lévő korlátok az IETF
draft-ietf-httpapi-ratelimit-headerstervezetének formátumában: vesszővel elválasztott"<name>";q=<quota>;w=<window in seconds>elemek. Akeyaz API-kulcs kérésgyakorisága (a kvóta a csúcskeret, az időablak a teljes visszatöltődés ideje; munkamenetnéluser, hitelesítő adatok nélkülip); aminute, adayés amontha szervezetnek az UTC szerinti naptári percre, napra és hónapra szóló kvótája.RateLimitMennyi maradt a
RateLimit-Policyegyes korlátaiból:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitA
RateLimit-Policylegszigorúbb elemének korlátja (amelyből a legkevesebb kérés maradt).X-RateLimit-RemainingA legszigorúbb korlát szerint még hátralévő kérések száma.
X-RateLimit-ResetA legszigorúbb korlát visszaállásáig hátralévő másodpercek.
application/json
429Túl sok kérés (`api.rate_limited`), elfogyott a szervezet percre, napra vagy hónapra szóló kvótája (`api.quota_exceeded`; az `error.details` a `quota`, a `limit` és a `reset_at` mezőt tartalmazza), a szervezet elérte a korlátját, vagy a válaszszolgáltatás foglalt (`answers.engine_busy`). Várj a `Retry-After` fejlécben megadott ideig.
Válaszfejlécek
Retry-AfterEnnyi másodpercet várj, mielőtt újrapróbálod a kérést.
RateLimit-PolicyAz érvényben lévő korlátok az IETF
draft-ietf-httpapi-ratelimit-headerstervezetének formátumában: vesszővel elválasztott"<name>";q=<quota>;w=<window in seconds>elemek. Akeyaz API-kulcs kérésgyakorisága (a kvóta a csúcskeret, az időablak a teljes visszatöltődés ideje; munkamenetnéluser, hitelesítő adatok nélkülip); aminute, adayés amontha szervezetnek az UTC szerinti naptári percre, napra és hónapra szóló kvótája.RateLimitMennyi maradt a
RateLimit-Policyegyes korlátaiból:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitA
RateLimit-Policylegszigorúbb elemének korlátja (amelyből a legkevesebb kérés maradt).X-RateLimit-RemainingA legszigorúbb korlát szerint még hátralévő kérések száma.
X-RateLimit-ResetA legszigorúbb korlát visszaállásáig hátralévő másodpercek.
application/json
Hibakódok
Azok a kódok, amelyeket ez a végpont hiba esetén az error.code mezőben visszaadhat, a minden kérésre érvényes általános kódokon kívül.
- 409api.idempotency_in_progress
- 400api.idempotency_key_invalid
- 409api.idempotency_mismatch
- 403webhooks.feature_disabled
- 401auth.not_authenticated
- 403authz.forbidden
- 400webhooks.invalid_url
- 400webhooks.private_address
- 400webhooks.unresolvable
- 400webhooks.unknown_event
- 400webhooks.events_required
- 400webhooks.description_too_long
- 409webhooks.too_many
- 400webhooks.headers_invalid
- 400webhooks.auth_invalid
- 400webhooks.access_invalid
- 403webhooks.collections_outside_key
Biztonságos újrapróbálkozás
Minden POST és PATCH kéréssel küldj Idempotency-Key fejlécet (például egy UUID-t). Ha 24 órán belül ugyanazzal a kulccsal megismétled a kérést, a mentett választ kapod vissza, és a kérés nem fut le újra.
Gyakorisági korlátok
A válaszokban ott van a RateLimit és a RateLimit-Policy fejléc, valamint a korábbi X-RateLimit-Limit, X-RateLimit-Remaining és X-RateLimit-Reset fejléc. A 429-es válasz Retry-After fejléce másodpercben adja meg a várakozást: várj, majd próbáld újra.