AtlasWork, planned itself.

    The AI-native, all-in-one work platform. Tasks, projects, CRM, contracts, and analytics in one calm workspace.

    System status
    • SSO
    • SCIM
    • Two-factor sign-in
    • Audit log

    Product

    • Overview
    • PDF tools
    • Diagram tools
    • People & HR
    • Integrations
    • Marketplace
    • Pricing

    Resources

    • Guides
    • Glossary
    • Compare
    • Docs
    • API reference
    • Support
    • Changelog
    • Status

    Company

    • About
    • Careers
    • Press
    • Contact

    Legal & trust

    • Trust center
    • Security
    • Privacy
    • Terms
    • DPA
    • GDPR
    • SLA
    • Refunds
    • Google API data
    Atlas, a product by wrxstack.com·© 2026 wrxstack·All rights reserved
    PrivacyTermsSecurityStatus

    You are in control of your cookies

    Atlas uses strictly necessary cookies to keep you signed in. With your consent, we add anonymized product analytics, conversion attribution, and remembered preferences. Change your mind any time at /privacy/cookies.

    Off until you agree · Change it any time

    • Necessaryalways on
    • Analyticsopt-in
    • Marketingopt-in
    • Preferencesopt-in
    Skip to documentation
    Docs
    Back to Atlas

    Start here

    • Overview

    Developer

    • REST API guide
    • Authentication
    • API reference
    • MCP (AI agents)
    • MCP tools reference
    • SDKs
    • Quick actions
    • Changelog

    Webhooks

    • Overview
    • Quickstart
    • Events
    • Payloads and headers
    • Security and signing
    • Delivery and retries
    • Managing via API

    Connect

    • Connectors
    • Integrations

    Product

    • Collaboration and chat
    • Signing in and security
    • Client portal

    Reference

    • Glossary
    • Keyboard shortcuts
    • Module reference

    Webhooks

    Managing via API

    Provision and operate your webhook subscriptions over the public REST API: create endpoints, rotate signing keys, replay or test deliveries, and audit the delivery feed. Every route is scoped and role-gated so automation stays least-privilege.

    Authentication

    Webhook management is a privileged, workspace-wide surface. It is gated by both scope and role.

    Requires webhooks:manage and OWNER or ADMIN

    Every webhook management endpoint requires an access token that carries the webhooks:manage scope, and the caller must be a workspace OWNER or ADMIN. See Authentication for minting a scoped token.

    Endpoints

    Nine routes cover the full lifecycle: subscription CRUD, key rotation, delivery inspection, replay, and a test send. Paths are relative to your API base URL.

    Method and pathPurposeSuccess
    GET /v1/webhooksList subscriptions (signing secret is never returned).200
    POST /v1/webhooksCreate a subscription; returns { webhook, secret } with the secret shown once.201
    PATCH /v1/webhooks/{id}Update url, events, ownerLabel, escalation fields, or disabled.200
    DELETE /v1/webhooks/{id}Delete a subscription.204
    GET /v1/webhooks/{id}/deliveriesDelivery history for one webhook (limit query, default 50, max 200).200
    POST /v1/webhooks/{id}/deliveries/{deliveryId}/replayReplay a past delivery.202
    POST /v1/webhooks/{id}/rotate-keyRotate the signing secret; the new secret is returned once.200
    POST /v1/webhooks/{id}/test-deliverySend a subscription.test event to the endpoint.202
    GET /v1/webhook-deliveriesWorkspace-wide delivery feed (limit query, default 50, max 200).200

    Request fields

    Create and update share the same field set. On create, url and events are required; on update, send only the fields you want to change and at least one must be present. A workspace can hold up to 100 webhooks, counting paused ones; at the limit, create answers 409 with a limit field.

    FieldTypeRulesRequired
    urlstringPublic HTTPS URL, 1 to 2048 characters.Required on create
    eventsstring[]1 to 50 patterns, each 1 to 64 characters: an event name from the catalogue, a resource wildcard such as task.*, or * for every event.Required on create
    ownerLabelstring or nullUp to 120 characters.Optional
    escalationEmailstring or nullValid email address, up to 320 characters.Optional
    escalationNotestring or nullUp to 400 characters.Optional
    disabledbooleanPause or resume delivery without deleting the subscription.Update only

    The signing secret is shown once

    POST /v1/webhooks returns the HMAC signing secret exactly once, inside the secret field of the response. It is stored encrypted at rest, is never returned by any other endpoint, and cannot be retrieved later. Store it securely on receipt. If you lose it, call rotate-key for a new one. The previous secret keeps signing alongside the new one for 58 hours and 45 minutes, so your receiver can move to the new secret without missing a delivery.

    Examples

    Replace atlas_pat_REPLACE_ME with a token that carries the webhooks:manage scope, and https://api.example.com with your API base URL.

    Create a subscription. The response body is { webhook, secret }; capture secret now.

    bash
    curl -X POST https://api.example.com/v1/webhooks \
      -H "Authorization: Bearer atlas_pat_REPLACE_ME" \
      -H "Content-Type: application/json" \
      -d '{"url":"https://example.com/atlas/webhook","events":["task.completed"],"ownerLabel":"Platform team","escalationEmail":"oncall@example.com"}'

    List every subscription in the workspace. The signing secret is omitted from the list shape.

    bash
    curl https://api.example.com/v1/webhooks \
      -H "Authorization: Bearer atlas_pat_REPLACE_ME"

    Update the events a subscription listens for and re-enable it.

    bash
    curl -X PATCH https://api.example.com/v1/webhooks/cm1a4r9t20001lq8z3c7m6n1p \
      -H "Authorization: Bearer atlas_pat_REPLACE_ME" \
      -H "Content-Type: application/json" \
      -d '{"events":["task.completed","task.updated"],"disabled":false}'

    Rotate the signing secret. The response carries id, signingKeyVersion, the new secret, shown this once, and previousSigningKeyExpiresAt, when the old secret stops signing.

    bash
    curl -X POST https://api.example.com/v1/webhooks/cm1a4r9t20001lq8z3c7m6n1p/rotate-key \
      -H "Authorization: Bearer atlas_pat_REPLACE_ME"

    Send a subscription.test event to confirm that the endpoint is reachable and that your signature verification works.

    bash
    curl -X POST https://api.example.com/v1/webhooks/cm1a4r9t20001lq8z3c7m6n1p/test-delivery \
      -H "Authorization: Bearer atlas_pat_REPLACE_ME"

    Full reference

    The summary above is a working guide, not the contract.

    For every parameter, response field, and status code generated directly from the OpenAPI spec, see the live API reference. It lists these endpoints in full and stays in lockstep with the deployed API.

    On this page

    • Authentication
    • Endpoints
    • Request fields
    • Examples
    • Full reference