AtlasWork, planned itself.

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

All systems operational
  • SOC 2 II
  • ISO 27001
  • HIPAA
  • GDPR

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
Skip to documentation
Docs
Back to Atlas

Start here

  • Overview

Developer

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

Webhooks

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

Connect

  • Connectors
  • Integrations

Product

  • Collaboration and chat

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 key; the new secret is returned once.200
POST /v1/webhooks/{id}/test-deliverySend a webhook.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.

FieldTypeRulesRequired
urlstringPublic HTTPS URL, 1 to 2048 characters.Required on create
eventsstring[]1 to 50 event patterns, each 1 to 100 characters.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 to mint a new secret (the previous key stays valid for 24 hours so receivers can roll forward without an outage).

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/wh_123 \
  -H "Authorization: Bearer atlas_pat_REPLACE_ME" \
  -H "Content-Type: application/json" \
  -d '{"events":["task.completed","task.updated"],"disabled":false}'

Rotate the signing key. The new secret is returned once in the response.

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

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

bash
curl -X POST https://api.example.com/v1/webhooks/wh_123/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