Skip to Content
APIResourcesAdmin APIWebhook Registrations

Webhook Registrations

The Webhook Registrations resource allows you to register webhook endpoints via the MarkUp.io API.

Create webhook registration

POST /api/v2/webhook-registrations

POST /api/v2/webhook-registrations
curl "https://api.markup.io/api/v2/webhook-registrations" \ -X POST \ -H "Authorization: Bearer <API-KEY-SECRET>" \ -H "Markup-API-Version: 2023-02-22" \ -H "Content-Type: application/json" \ --data '{ "url": "https://markup.io", "workspaceId": "146433a2-1da8-4014-8db9-fb0652a95376", "eventTypes": [ "comment_created", "comment_resolved" ], "enabled": true }'
200 OK
{ "data": { "id": "6b2f8cdf-2e3a-4768-823c-3674ad6d912f", "createdAt": "2026-06-09T07:17:45.223Z", "modifiedAt": "2026-06-09T07:17:45.223Z", "url": "https://markup.io", "workspaceId": "123e4567-e89b-12d3-a456-426655440000", "eventTypes": ["comment_created", "comment_resolved"], "enabled": true } }

Response Body - WebhookRegistrationResponse

Request Body CreateWebhookRegistrationRequest

OptionType
url string
workspaceId string
eventTypes optional
enabled boolean

Update webhook registration

POST /api/v2/webhook-registrations/:id

POST /api/v2/webhook-registrations/:id
curl "https://api.markup.io/api/v2/webhook-registrations/bf22638b-f55e-4efc-b4ba-943b1c335432" \ -X POST \ -H "Authorization: Bearer <API-KEY-SECRET>" \ -H "Markup-API-Version: 2023-02-22" \ -H "Content-Type: application/json" \ --data '{ "url": "https://markup.io", "eventTypes": [ "comment_created", "comment_resolved" ], "enabled": true }'
200 OK
{ "data": { "id": "0bd50c99-a461-4524-bdb0-9aa506611699", "createdAt": "2026-06-09T07:17:45.223Z", "modifiedAt": "2026-06-09T07:17:45.223Z", "url": "https://markup.io", "workspaceId": "123e4567-e89b-12d3-a456-426655440000", "eventTypes": ["comment_created", "comment_resolved"], "enabled": true } }

Response Body - WebhookRegistrationResponse

Request Path Params IdRequestParam

OptionType
id string

Request Body UpdateWebhookRegistrationRequest

OptionType
url string
eventTypes optional
enabled boolean

Refresh webhook signing key

POST /api/v2/webhook-registrations/:id/refresh-signing-key

POST /api/v2/webhook-registrations/:id/refresh-signing-key
curl "https://api.markup.io/api/v2/webhook-registrations/007e0a7b-61a1-48b7-81f5-d73526d1794a/refresh-signing-key" \ -X POST \ -H "Authorization: Bearer <API-KEY-SECRET>" \ -H "Markup-API-Version: 2023-02-22" \ -H "Content-Type: application/json"
200 OK
{ "data": { "id": "928f275b-94e1-44ee-8da5-b41a49d1468f", "createdAt": "2026-06-09T07:17:45.223Z", "modifiedAt": "2026-06-09T07:17:45.223Z", "url": "https://markup.io", "workspaceId": "123e4567-e89b-12d3-a456-426655440000", "eventTypes": ["comment_created", "comment_resolved"], "enabled": true } }

Response Body - WebhookRegistrationResponse

Request Path Params IdRequestParam

OptionType
id string

Get webhook registration

GET /api/v2/webhook-registrations/:id

GET /api/v2/webhook-registrations/:id
curl "https://api.markup.io/api/v2/webhook-registrations/8fd4bd78-5df3-4f06-b46b-d02dcf441a6c" \ -X GET \ -H "Authorization: Bearer <API-KEY-SECRET>" \ -H "Markup-API-Version: 2023-02-22" \ -H "Content-Type: application/json"
200 OK
{ "data": { "id": "7be9d15c-c292-46be-a9f2-eb55136c4df8", "createdAt": "2026-06-09T07:17:45.223Z", "modifiedAt": "2026-06-09T07:17:45.223Z", "url": "https://markup.io", "workspaceId": "123e4567-e89b-12d3-a456-426655440000", "eventTypes": ["comment_created", "comment_resolved"], "enabled": true } }

Response Body - WebhookRegistrationResponse

Request Path Params IdRequestParam

OptionType
id string

List webhook registrations

GET /api/v2/webhook-registrations

GET /api/v2/webhook-registrations
curl "https://api.markup.io/api/v2/webhook-registrations?workspaceId=8f16fc06-f114-43de-9adc-ac88b1a67532" \ -X GET \ -H "Authorization: Bearer <API-KEY-SECRET>" \ -H "Markup-API-Version: 2023-02-22" \ -H "Content-Type: application/json"
200 OK
{ "data": { "data": [{}] } }

Response Body ListWebhookRegistrationResponse

OptionType
data T[]

Request Query Params WorkspaceIdRequest

OptionType
workspaceId string

Delete webhook registration

DELETE /api/v2/webhook-registrations/:id

DELETE /api/v2/webhook-registrations/:id
curl "https://api.markup.io/api/v2/webhook-registrations/31f4acbe-c92b-48a2-840f-1ec928b52768" \ -X DELETE \ -H "Authorization: Bearer <API-KEY-SECRET>" \ -H "Markup-API-Version: 2023-02-22" \ -H "Content-Type: application/json"
Response
204 No Content

Request Path Params IdRequestParam

OptionType
id string

WebhookRegistrationResponse

OptionType
id string
createdAt Iso8601Timestamp
modifiedAt Iso8601Timestamp
deletedAt Iso8601Timestamp
url string
workspaceId string
eventTypes
enabled boolean
signingKey string

WebhookEventType

OptionType
WebhookEventType `comment_created` | `comment_updated` | `comment_resolved` | `comment_unresolved` | `markup_created` | `comment_reply_created` | `markup_status_changed` | `set_project_read_only` | `project_review_created`