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
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
}'{
"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
| Option | Type | |
|---|---|---|
| url | string | |
| workspaceId | string | |
| eventTypes optional | ||
| enabled | boolean |
Update webhook registration
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
}'{
"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
| Option | Type | |
|---|---|---|
| id | string |
Request Body UpdateWebhookRegistrationRequest
| Option | Type | |
|---|---|---|
| url | string | |
| eventTypes optional | ||
| enabled | boolean |
Refresh webhook 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"{
"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
| Option | Type | |
|---|---|---|
| id | string |
Get webhook registration
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"{
"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
| Option | Type | |
|---|---|---|
| id | string |
List 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"{
"data": {
"data": [{}]
}
}Response Body ListWebhookRegistrationResponse
| Option | Type | |
|---|---|---|
| data | T[] |
Request Query Params WorkspaceIdRequest
| Option | Type | |
|---|---|---|
| workspaceId | string |
Delete webhook registration
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"204 No ContentRequest Path Params IdRequestParam
| Option | Type | |
|---|---|---|
| id | string |
Related types
WebhookRegistrationResponse
| Option | Type | |
|---|---|---|
| id | string | |
| createdAt | Iso8601Timestamp | |
| modifiedAt | Iso8601Timestamp | |
| deletedAt | Iso8601Timestamp | |
| url | string | |
| workspaceId | string | |
| eventTypes | ||
| enabled | boolean | |
| signingKey | string |
WebhookEventType
| Option | Type | |
|---|---|---|
| WebhookEventType | `comment_created` | `comment_updated` | `comment_resolved` | `comment_unresolved` | `markup_created` | `comment_reply_created` | `markup_status_changed` | `set_project_read_only` | `project_review_created` |