# Awardee API Docs > The Awardee API. Programmable scan URLs, AI chatbots, dynamic pages, knowledge bases, and the data flowing between them. One platform, one REST API. ## Docs - [Create an article category](https://api-docs.awardee.dev/api-reference/article-categories/create-an-article-category.md) - [Delete an article category](https://api-docs.awardee.dev/api-reference/article-categories/delete-an-article-category.md): By default, refuses with `409 category_not_empty` if the category has children or articles. Pass `?cascade=true` to also delete every descendant category and the articles they contain. - [Get an article category](https://api-docs.awardee.dev/api-reference/article-categories/get-an-article-category.md) - [List article categories](https://api-docs.awardee.dev/api-reference/article-categories/list-article-categories.md) - [Update an article category](https://api-docs.awardee.dev/api-reference/article-categories/update-an-article-category.md) - [Create an article tag](https://api-docs.awardee.dev/api-reference/article-tags/create-an-article-tag.md) - [Delete an article tag](https://api-docs.awardee.dev/api-reference/article-tags/delete-an-article-tag.md): Removes the tag and unassigns it from every article it was on. - [List article tags](https://api-docs.awardee.dev/api-reference/article-tags/list-article-tags.md) - [Add a related article](https://api-docs.awardee.dev/api-reference/articles/add-a-related-article.md) - [Create a translation](https://api-docs.awardee.dev/api-reference/articles/create-a-translation.md) - [Create an article](https://api-docs.awardee.dev/api-reference/articles/create-an-article.md): External image URLs embedded in `content` (markdown or HTML) are rehosted to your org's storage. If `status` is `published` the article enters the indexing pipeline immediately. - [Delete a translation](https://api-docs.awardee.dev/api-reference/articles/delete-a-translation.md) - [Delete an article](https://api-docs.awardee.dev/api-reference/articles/delete-an-article.md) - [Get a specific version of an article](https://api-docs.awardee.dev/api-reference/articles/get-a-specific-version-of-an-article.md) - [Get a translation](https://api-docs.awardee.dev/api-reference/articles/get-a-translation.md) - [Get an article](https://api-docs.awardee.dev/api-reference/articles/get-an-article.md) - [List article translations](https://api-docs.awardee.dev/api-reference/articles/list-article-translations.md) - [List article versions](https://api-docs.awardee.dev/api-reference/articles/list-article-versions.md) - [List articles](https://api-docs.awardee.dev/api-reference/articles/list-articles.md) - [List related articles](https://api-docs.awardee.dev/api-reference/articles/list-related-articles.md) - [List tags on an article](https://api-docs.awardee.dev/api-reference/articles/list-tags-on-an-article.md) - [Remove a related-article link](https://api-docs.awardee.dev/api-reference/articles/remove-a-related-article-link.md) - [Replace the set of tag assignments on an article](https://api-docs.awardee.dev/api-reference/articles/replace-the-set-of-tag-assignments-on-an-article.md) - [Restore an article to a prior version](https://api-docs.awardee.dev/api-reference/articles/restore-an-article-to-a-prior-version.md): Copies the version's `title` and `content` back into the live article. The article's current state is snapshotted as a new version first, so the restore is itself reversible. Returns the restored article. - [Set related articles (bulk)](https://api-docs.awardee.dev/api-reference/articles/set-related-articles-bulk.md) - [Snapshot the current article body as a new version](https://api-docs.awardee.dev/api-reference/articles/snapshot-the-current-article-body-as-a-new-version.md) - [Update a translation](https://api-docs.awardee.dev/api-reference/articles/update-a-translation.md) - [Update an article](https://api-docs.awardee.dev/api-reference/articles/update-an-article.md): Image URLs in `content` are rehosted on every PATCH. Transitioning `status` to/from `published` fires indexing or embedding-removal pipelines. - [Create a chatbot](https://api-docs.awardee.dev/api-reference/chatbots/create-a-chatbot.md) - [Delete a chatbot](https://api-docs.awardee.dev/api-reference/chatbots/delete-a-chatbot.md) - [Get a chatbot](https://api-docs.awardee.dev/api-reference/chatbots/get-a-chatbot.md) - [List chatbots](https://api-docs.awardee.dev/api-reference/chatbots/list-chatbots.md) - [Update a chatbot](https://api-docs.awardee.dev/api-reference/chatbots/update-a-chatbot.md) - [Create a conversation tag](https://api-docs.awardee.dev/api-reference/conversation-tags/create-a-conversation-tag.md) - [Delete a conversation tag](https://api-docs.awardee.dev/api-reference/conversation-tags/delete-a-conversation-tag.md): Removes the tag and all of its conversation assignments via FK cascade. - [List conversation tags](https://api-docs.awardee.dev/api-reference/conversation-tags/list-conversation-tags.md) - [Add an internal note to a conversation](https://api-docs.awardee.dev/api-reference/conversations/add-an-internal-note-to-a-conversation.md) - [Get a conversation](https://api-docs.awardee.dev/api-reference/conversations/get-a-conversation.md) - [List conversations](https://api-docs.awardee.dev/api-reference/conversations/list-conversations.md): Cursor-paginated list of conversations. When `search` is provided the response returns top-N ranked matches with `next_cursor` always null. - [List internal notes on a conversation](https://api-docs.awardee.dev/api-reference/conversations/list-internal-notes-on-a-conversation.md) - [List messages in a conversation](https://api-docs.awardee.dev/api-reference/conversations/list-messages-in-a-conversation.md) - [List tags assigned to a conversation](https://api-docs.awardee.dev/api-reference/conversations/list-tags-assigned-to-a-conversation.md) - [Replace the full set of tag assignments](https://api-docs.awardee.dev/api-reference/conversations/replace-the-full-set-of-tag-assignments.md): Idempotent. Tags not in `tag_ids` are unassigned; missing ones are inserted. Every supplied tag must belong to the caller's org. - [Send an agent message (human-takeover only)](https://api-docs.awardee.dev/api-reference/conversations/send-an-agent-message-human-takeover-only.md): Posts a reply on behalf of a human agent. Does NOT trigger the chatbot. Conversations in `agent_requested` are automatically promoted to `open` on first reply, matching the dashboard behaviour. - [Update a conversation](https://api-docs.awardee.dev/api-reference/conversations/update-a-conversation.md): Updates status, priority, contact info, assignee, or title. Status and assignee transitions automatically emit activity events and webhook notifications. `status` cannot be set to `bot_active` via the API — once a human or API caller is involved, the bot does not get to take it back. `sentiment_scor… - [Create a route](https://api-docs.awardee.dev/api-reference/custom-domain-routes/create-a-route.md): Attaches a resource (chatbot, knowledge base, or page) to a path on a custom domain. The parent domain doesn't need to be verified yet — routes can be configured ahead of DNS propagation. Exactly one of `chatbot_id`, `kb_id`, or `page_id` must be set and must match `type`. - [Delete a route](https://api-docs.awardee.dev/api-reference/custom-domain-routes/delete-a-route.md) - [Get a route](https://api-docs.awardee.dev/api-reference/custom-domain-routes/get-a-route.md) - [List routes for a domain](https://api-docs.awardee.dev/api-reference/custom-domain-routes/list-routes-for-a-domain.md): Returns every route configured on the given custom domain. The list is bounded (one slug per path) and is returned in a single envelope. - [Update a route](https://api-docs.awardee.dev/api-reference/custom-domain-routes/update-a-route.md): Updates `slug` or `is_default`. The route type and underlying resource are immutable — delete and recreate to re-point a path. - [Connect a custom domain](https://api-docs.awardee.dev/api-reference/custom-domains/connect-a-custom-domain.md): Registers `domain` with the TLS terminator and returns the DNS records the customer needs to publish. The domain isn't live until `verified: true` — point an A or CNAME record at the values in `verification_records`, then poll `GET /custom-domains/{id}` or trigger `POST /custom-domains/{id}/verify`. - [Delete a custom domain](https://api-docs.awardee.dev/api-reference/custom-domains/delete-a-custom-domain.md): Disconnects the hostname from the TLS terminator, removes the row, and releases the billable add-on slot. All `custom_domain_routes` attached cascade. - [Get a custom domain](https://api-docs.awardee.dev/api-reference/custom-domains/get-a-custom-domain.md) - [List custom domains](https://api-docs.awardee.dev/api-reference/custom-domains/list-custom-domains.md) - [Re-check verification](https://api-docs.awardee.dev/api-reference/custom-domains/re-check-verification.md): Re-runs the ownership + DNS check with the TLS terminator. Safe to retry — does not consume idempotency keys. Returns `status: pending` if the customer's DNS hasn't propagated yet. - [Get the current identity](https://api-docs.awardee.dev/api-reference/identity/get-the-current-identity.md): Returns the identity behind the credential used on this request. Any valid API key or OAuth token works — no extra scope is required. The response shape varies by credential: an API key yields `auth.type: "api_key"` with the authenticating `api_key`, while an OAuth token yields `auth.type: "oauth_to… - [Get a knowledge base](https://api-docs.awardee.dev/api-reference/knowledge-bases/get-a-knowledge-base.md) - [List knowledge bases](https://api-docs.awardee.dev/api-reference/knowledge-bases/list-knowledge-bases.md): Returns every knowledge base in the caller's organization. Read-only in v1 — create and update happen in the dashboard. - [Create or upsert an object](https://api-docs.awardee.dev/api-reference/objects/create-or-upsert-an-object.md): If `external_id` is supplied the call is idempotent on (org_id, external_id) — replays return the same object. Without `external_id`, every call mints a fresh object. - [Delete an object](https://api-docs.awardee.dev/api-reference/objects/delete-an-object.md) - [Get an object](https://api-docs.awardee.dev/api-reference/objects/get-an-object.md) - [List object properties](https://api-docs.awardee.dev/api-reference/objects/list-object-properties.md) - [List object URL params](https://api-docs.awardee.dev/api-reference/objects/list-object-url-params.md) - [List objects](https://api-docs.awardee.dev/api-reference/objects/list-objects.md) - [Replace object properties](https://api-docs.awardee.dev/api-reference/objects/replace-object-properties.md) - [Replace object URL params](https://api-docs.awardee.dev/api-reference/objects/replace-object-url-params.md) - [Update an object](https://api-docs.awardee.dev/api-reference/objects/update-an-object.md) - [Get a page](https://api-docs.awardee.dev/api-reference/pages/get-a-page.md): Returns the page metadata plus its ordered `blocks` array. Each block's `config` shape depends on its `type` (26+ block variants). - [List pages](https://api-docs.awardee.dev/api-reference/pages/list-pages.md): Returns page metadata only — fetch `/pages/{id}` to walk the block tree. - [Attach a product image by URL](https://api-docs.awardee.dev/api-reference/products/attach-a-product-image-by-url.md): Send a public image URL — the server stores it with the product and returns the persisted row. Max 15 MiB. Common formats accepted (JPEG, PNG, WebP, GIF). - [Create a product](https://api-docs.awardee.dev/api-reference/products/create-a-product.md): GTIN values are normalised to GTIN-14 server-side, so callers can submit any GS1 length (8, 12, 13, or 14 digits). Pass `image_urls` to attach images at create time; per-URL failures are reported in the response's `failed_image_urls` array and never block the product creation. - [Delete a product](https://api-docs.awardee.dev/api-reference/products/delete-a-product.md) - [Delete a product image](https://api-docs.awardee.dev/api-reference/products/delete-a-product-image.md) - [Get a product](https://api-docs.awardee.dev/api-reference/products/get-a-product.md) - [List product images](https://api-docs.awardee.dev/api-reference/products/list-product-images.md) - [List product properties](https://api-docs.awardee.dev/api-reference/products/list-product-properties.md) - [List products](https://api-docs.awardee.dev/api-reference/products/list-products.md) - [Lookup a product by GTIN](https://api-docs.awardee.dev/api-reference/products/lookup-a-product-by-gtin.md): Scoped to the caller's organisation — a GTIN belonging to another tenant returns 404. - [Replace product properties](https://api-docs.awardee.dev/api-reference/products/replace-product-properties.md) - [Update a product](https://api-docs.awardee.dev/api-reference/products/update-a-product.md) - [Get a QR code](https://api-docs.awardee.dev/api-reference/qr-codes/get-a-qr-code.md): Fetch one QR code by UUID or by its public slug (the short identifier that appears in the scan URL). - [List QR code properties](https://api-docs.awardee.dev/api-reference/qr-codes/list-qr-code-properties.md) - [List QR code scans](https://api-docs.awardee.dev/api-reference/qr-codes/list-qr-code-scans.md): Cursor-paginated scan history, newest first. Each row is an immutable snapshot of the destination and visitor metadata at scan time. - [List QR code URL params](https://api-docs.awardee.dev/api-reference/qr-codes/list-qr-code-url-params.md) - [List QR codes](https://api-docs.awardee.dev/api-reference/qr-codes/list-qr-codes.md): Paginated list of QR codes for the authenticated organization. Filter by status, destination type, or group; search across name, slug, description, and resolved destination label. - [Render a QR code image](https://api-docs.awardee.dev/api-reference/qr-codes/render-a-qr-code-image.md): Render the QR code's public scan URL as an image. The `format` query param selects the representation and overrides the `Accept` header; when omitted, `Accept` decides (`image/svg+xml`, `image/png`, `application/pdf`, `application/json`), defaulting to SVG. - [Replace QR code properties](https://api-docs.awardee.dev/api-reference/qr-codes/replace-qr-code-properties.md): Replaces the QR code's full property set. Properties not in the request body are removed; properties with a known `id` are updated in place; others are inserted. - [Replace QR code URL params](https://api-docs.awardee.dev/api-reference/qr-codes/replace-qr-code-url-params.md): Static URL params merged into the destination URL at scan time. Visitor-provided query params win on key collision. - [Update a QR code](https://api-docs.awardee.dev/api-reference/qr-codes/update-a-qr-code.md): Partial update. Send only the fields you want changed. Pass `null` to clear an optional field. - [Create a QR group](https://api-docs.awardee.dev/api-reference/qr-groups/create-a-qr-group.md): Groups inherit status + destination to their child QR codes when set. Pass `null` to keep a field inheritable from each child instead. - [Delete a QR group](https://api-docs.awardee.dev/api-reference/qr-groups/delete-a-qr-group.md): Deletes the group. Child QR codes are detached (their `group_id` becomes null) — they are never deleted. - [Get a QR group](https://api-docs.awardee.dev/api-reference/qr-groups/get-a-qr-group.md) - [List QR groups](https://api-docs.awardee.dev/api-reference/qr-groups/list-qr-groups.md) - [Update a QR group](https://api-docs.awardee.dev/api-reference/qr-groups/update-a-qr-group.md) - [Get a submission](https://api-docs.awardee.dev/api-reference/submissions/get-a-submission.md) - [Get a submission's activity timeline](https://api-docs.awardee.dev/api-reference/submissions/get-a-submissions-activity-timeline.md): Read-only. Events are only written as side effects of PATCH /submissions/{id}. - [List form submissions](https://api-docs.awardee.dev/api-reference/submissions/list-form-submissions.md): Offset-paginated. When `search` is set, the server returns top-N ranked matches and `total` reflects that subset. - [Update a submission](https://api-docs.awardee.dev/api-reference/submissions/update-a-submission.md): Updates lifecycle fields (status, priority, flagged, assignee, notes). Every field change emits a `page_submission_events` row that surfaces on the dashboard activity timeline and fires `submission.updated`. - [Change a member's role](https://api-docs.awardee.dev/api-reference/team/change-a-members-role.md): Promotes or demotes a member to another role inside the same organization. Ownership cannot be transferred through this endpoint. - [Create an invitation](https://api-docs.awardee.dev/api-reference/team/create-an-invitation.md): Generates a pending invitation and returns the secret `token`. The token is shown **once**: embed it in your accept link (`/invite/accept?token=…`) — it cannot be retrieved later. - [Get a member](https://api-docs.awardee.dev/api-reference/team/get-a-member.md) - [Get an invitation](https://api-docs.awardee.dev/api-reference/team/get-an-invitation.md) - [List members](https://api-docs.awardee.dev/api-reference/team/list-members.md): Returns every active member of the caller's organization. Membership rolls are bounded, so the full list is returned in a single response inside the standard list envelope. - [List pending invitations](https://api-docs.awardee.dev/api-reference/team/list-pending-invitations.md) - [Remove a member](https://api-docs.awardee.dev/api-reference/team/remove-a-member.md): Soft-removes the member (membership status set to `removed`). The user's profile and historical attribution are preserved. - [Revoke an invitation](https://api-docs.awardee.dev/api-reference/team/revoke-an-invitation.md): Cancels a pending invitation. Already-accepted, declined, expired, or revoked invitations cannot be revoked again — returns `409 conflict`. - [Create a webhook](https://api-docs.awardee.dev/api-reference/webhooks/create-a-webhook.md): Subscribes a public https endpoint to one or more events. The response includes `signing_secret` **once** — store it to verify delivery signatures. Requires the `webhooks.manage` scope on OAuth tokens. Visibility is owner-scoped: API-key callers see only dashboard-managed webhooks; OAuth callers see… - [Delete a webhook](https://api-docs.awardee.dev/api-reference/webhooks/delete-a-webhook.md): Unsubscribes the endpoint. Requires the `webhooks.manage` scope on OAuth tokens. Visibility is owner-scoped: API-key callers see only dashboard-managed webhooks; OAuth callers see only webhooks bound to their own token. - [Get a webhook](https://api-docs.awardee.dev/api-reference/webhooks/get-a-webhook.md): Requires the `webhooks.manage` scope on OAuth tokens. Visibility is owner-scoped: API-key callers see only dashboard-managed webhooks; OAuth callers see only webhooks bound to their own token. - [List webhooks](https://api-docs.awardee.dev/api-reference/webhooks/list-webhooks.md): Requires the `webhooks.manage` scope on OAuth tokens. Visibility is owner-scoped: API-key callers see only dashboard-managed webhooks; OAuth callers see only webhooks bound to their own token. - [Update a webhook](https://api-docs.awardee.dev/api-reference/webhooks/update-a-webhook.md): Updates a webhook's `events`, `description`, `url`, and/or `isActive` (pause/resume). Only supplied fields change. A changed `url` is re-validated against the same SSRF rules as create. Requires the `webhooks.manage` scope on OAuth tokens. Visibility is owner-scoped: API-key callers see only dashboa… - [The category object](https://api-docs.awardee.dev/article-categories/object.md): Field-by-field reference for the article_category resource. - [Article Categories](https://api-docs.awardee.dev/article-categories/overview.md): Hierarchical folders for organizing knowledge base articles. - [Article Tags](https://api-docs.awardee.dev/article-tags/overview.md): Flat, reusable labels you assign to articles across the knowledge base. - [The article object](https://api-docs.awardee.dev/articles/object.md): Field-by-field reference for the article resource. - [Articles](https://api-docs.awardee.dev/articles/overview.md): Knowledge base content — markdown stored as articles, indexed for retrieval, served to chatbots and public KB readers. - [Publishing & indexing](https://api-docs.awardee.dev/articles/publishing.md): How status transitions move articles in and out of the retrieval index. - [Translations](https://api-docs.awardee.dev/articles/translations.md): Per-language copies of an article's title and body, indexed alongside the primary. - [Versions](https://api-docs.awardee.dev/articles/versions.md): Snapshots of an article's title and content over time, written on every edit and on demand. Restorable. - [Models](https://api-docs.awardee.dev/chatbots/models.md): Which models you can pick for a chatbot, and what each one costs per message. - [The Chatbot object](https://api-docs.awardee.dev/chatbots/object.md): Every field on a chatbot, its type, and what it does. - [Chatbots](https://api-docs.awardee.dev/chatbots/overview.md): AI assistants you create over the API, attach knowledge to, brand, and ship behind a public URL. - [Authentication](https://api-docs.awardee.dev/concepts/authentication.md): Org-scoped bearer keys, the Authorization header, rotation, and revocation. - [Errors](https://api-docs.awardee.dev/concepts/errors.md): Every error code the API returns, grouped by category, with the recovery path for each. - [Idempotency](https://api-docs.awardee.dev/concepts/idempotency.md): Retry POST requests safely with the Idempotency-Key header. - [Pagination](https://api-docs.awardee.dev/concepts/pagination.md): Offset pagination for catalog resources, cursor pagination for high-volume streams. - [Rate limits](https://api-docs.awardee.dev/concepts/rate-limits.md): Per-organization minute and hour windows, the headers that surface them, and the recommended backoff. - [Versioning](https://api-docs.awardee.dev/concepts/versioning.md): Path-based API versioning, what we consider breaking, and our deprecation policy. - [Conversation Tags](https://api-docs.awardee.dev/conversation-tags/overview.md): Reusable, org-level labels for triaging and routing conversations. - [Posting agent replies](https://api-docs.awardee.dev/conversations/agent-replies.md): Reply to a live conversation as a human agent. What gets triggered, what doesn't. - [Conversation lifecycle](https://api-docs.awardee.dev/conversations/lifecycle.md): Every status a conversation moves through, what triggers each transition, what side effects fire. - [The Conversation object](https://api-docs.awardee.dev/conversations/object.md): Every field on a conversation, what it means, what shapes it. - [Conversations](https://api-docs.awardee.dev/conversations/overview.md): Read, route, and reply to visitor chat sessions with your Chatbots. - [The Custom Domain Route object](https://api-docs.awardee.dev/custom-domain-routes/object.md): Field-by-field reference for the Custom Domain Route resource. - [Custom Domain Routes](https://api-docs.awardee.dev/custom-domain-routes/overview.md): Map paths on a custom domain to chatbots, knowledge bases, and pages. - [The Custom Domain object](https://api-docs.awardee.dev/custom-domains/object.md): Field-by-field reference for the Custom Domain resource. - [Custom Domains](https://api-docs.awardee.dev/custom-domains/overview.md): Connect your own hostname (acme.com, support.acme.com) and serve chatbots, knowledge bases, and pages from it. - [DNS verification](https://api-docs.awardee.dev/custom-domains/verification.md): How verification works, what records to publish, and how long propagation takes. - [Awardee API](https://api-docs.awardee.dev/index.md): The REST API behind the Awardee platform. Programmable scan URLs, AI chatbots, dynamic pages, knowledge bases, and the data flowing between them. - [The knowledge base object](https://api-docs.awardee.dev/knowledge-bases/object.md): Field-by-field reference for the knowledge_base resource. - [Knowledge Bases](https://api-docs.awardee.dev/knowledge-bases/overview.md): Top-level containers for articles. One organization can host many knowledge bases — one per audience, surface, or product. - [Examples](https://api-docs.awardee.dev/objects/examples.md): Industry patterns for modelling real-world entities with Objects. - [The Object object](https://api-docs.awardee.dev/objects/object.md): Every field on a custom Object, its type, and what it does. - [Objects](https://api-docs.awardee.dev/objects/overview.md): API-managed entities paired with permanent scan URLs you fully control. - [Page blocks](https://api-docs.awardee.dev/pages/blocks.md): The block envelope and the config shape for every block type. - [The Page object](https://api-docs.awardee.dev/pages/object.md): Field-by-field reference for the Page resource. - [Pages](https://api-docs.awardee.dev/pages/overview.md): Read-only access to published landing pages and their typed block trees. - [The Product object](https://api-docs.awardee.dev/products/object.md): Field-by-field reference for the Product resource. - [Products](https://api-docs.awardee.dev/products/overview.md): GTIN-keyed catalog entities with programmable scan destinations, properties, and images. - [The QR Code object](https://api-docs.awardee.dev/qr-codes/object.md): Field-by-field reference for the QR Code resource. - [QR Codes](https://api-docs.awardee.dev/qr-codes/overview.md): Programmable short URLs printed once and re-routed forever. - [The QR Group object](https://api-docs.awardee.dev/qr-groups/object.md): Field-by-field reference for the QR Group resource. - [QR Groups](https://api-docs.awardee.dev/qr-groups/overview.md): Reusable QR collections with optional shared destination and status. - [Quickstart](https://api-docs.awardee.dev/quickstart.md): Mint an API key, authenticate, and make your first call. Five minutes. - [The Submission object](https://api-docs.awardee.dev/submissions/object.md): Every field on a submission, plus the shapes of `data` and `destination`. - [Submissions](https://api-docs.awardee.dev/submissions/overview.md): Form responses captured from public Pages. Read, triage, and route them via the API. - [Invitations](https://api-docs.awardee.dev/team/invitations.md): Invite teammates by email, list pending invitations, revoke one before acceptance. - [Members](https://api-docs.awardee.dev/team/members.md): List active members, change a member's role, remove a member from the organization. - [Team](https://api-docs.awardee.dev/team/overview.md): Manage the humans inside your organization — invite, list, role-change, remove. - [Verify your key](https://api-docs.awardee.dev/verify.md): Confirm an aw_live_ key is wired up by calling GET /me. - [Event catalog](https://api-docs.awardee.dev/webhooks/events.md): Every event type Awardee emits, when it fires, and its payload shape. - [Delivery idempotency](https://api-docs.awardee.dev/webhooks/idempotency.md): Process the same delivery twice and get the same result. Dedupe on X-Awardee-Delivery. - [Webhooks](https://api-docs.awardee.dev/webhooks/overview.md): Receive signed HTTP POSTs when resources change. At-least-once, retried for 24 hours, replayable from the dashboard. - [Retries and ordering](https://api-docs.awardee.dev/webhooks/retries.md): Failed deliveries are retried with exponential backoff for up to ~24 hours. Ordering is best-effort, not guaranteed. - [Verify signatures](https://api-docs.awardee.dev/webhooks/signing.md): Every delivery is signed with HMAC-SHA256. Verify before you trust the payload. - [Testing webhooks](https://api-docs.awardee.dev/webhooks/testing.md): Fire test events from the dashboard. Receive deliveries on localhost through a tunnel. ## OpenAPI Specs - [openapi](https://api-docs.awardee.dev/openapi.json)