Skip to content
Go to Micro

Create a webhook

client.webhooks.create(WebhookCreateParams { teamId, name, url, 2 more } params, RequestOptionsoptions?): WebhookWithSecret { secret, verification }
POST/v2/webhooks/{teamId}

Registers a webhook and enqueues an asynchronous verification handshake (run by the dispatcher). The response includes the signing secret, shown only this once; verified is false until the handshake passes.

ParametersExpand Collapse
params: WebhookCreateParams { teamId, name, url, 2 more }
teamId?: string

Path param

formatuuid
name: string

Body param

minLength1
maxLength255
url: string

Body param: HTTP(S) endpoint. Rejected if it resolves to a private/internal address.

formaturi
description?: string | null

Body param

maxLength1000
enabled?: boolean

Body param

ReturnsExpand Collapse
WebhookWithSecret extends Webhook { id, created_at, enabled, 8 more } { secret, verification }

Returned ONLY on creation. Includes the signing secret (shown once) and the pending verification status.

secret: string

HMAC signing secret (prefix whsec_). Store it now — it is never returned again. The dispatcher signs each delivered payload with it so your endpoint can verify authenticity.

verification?: Verification { status }

Status of the verification handshake enqueued by this request. The handshake runs asynchronously in the dispatcher; poll the webhook (its verified flag flips to true on success) to observe the outcome.

status: "pending"

Always pending at the moment of the response — the dispatcher has been asked to run the handshake but has not reported back yet.

Create a webhook

import Micro from '@micro-so/sdk';

const client = new Micro({
  teamID: 'My Team ID',
  apiKey: process.env['MICRO_API_KEY'], // This is the default and can be omitted
});

const webhookWithSecret = await client.webhooks.create({ name: 'x', url: 'https://example.com' });

console.log(webhookWithSecret);
{
  "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
  "created_at": "2019-12-27T18:11:19.117Z",
  "enabled": true,
  "name": "name",
  "team_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
  "url": "https://example.com",
  "verified": true,
  "description": "description",
  "updated_at": "2019-12-27T18:11:19.117Z",
  "verification_token": "verification_token",
  "verified_at": "2019-12-27T18:11:19.117Z",
  "secret": "secret",
  "verification": {
    "status": "pending"
  }
}
Returns Examples
{
  "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
  "created_at": "2019-12-27T18:11:19.117Z",
  "enabled": true,
  "name": "name",
  "team_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
  "url": "https://example.com",
  "verified": true,
  "description": "description",
  "updated_at": "2019-12-27T18:11:19.117Z",
  "verification_token": "verification_token",
  "verified_at": "2019-12-27T18:11:19.117Z",
  "secret": "secret",
  "verification": {
    "status": "pending"
  }
}