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": "6c78c799-68e7-4167-aee4-526cf5b7e991",
"eventTypes": [
"comment_created",
"comment_resolved"
],
"enabled": true
}'{
"data": {
"id": "efd89291-9924-44c9-8d65-6891c53957c0",
"createdAt": "2026-06-09T06:31:47.138Z",
"modifiedAt": "2026-06-09T06:31:47.138Z",
"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/c901d7bb-52dd-44f4-9fbc-1391f47959dc" \
-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": "57d4dc37-0337-4d83-aa8e-8c91f6bf32f3",
"createdAt": "2026-06-09T06:31:47.138Z",
"modifiedAt": "2026-06-09T06:31:47.138Z",
"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/ca57e27f-446b-40fd-87a2-a718cf0297a2/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": "8ac7f350-391b-4b4d-a711-d02dfa413d4d",
"createdAt": "2026-06-09T06:31:47.138Z",
"modifiedAt": "2026-06-09T06:31:47.138Z",
"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/0f5166c0-d8b8-439d-b27e-9f5347e9dee2" \
-X GET \
-H "Authorization: Bearer <API-KEY-SECRET>" \
-H "Markup-API-Version: 2023-02-22" \
-H "Content-Type: application/json" {
"data": {
"id": "90e52fa4-b8ab-4f77-9ed8-4cb0c18bc153",
"createdAt": "2026-06-09T06:31:47.138Z",
"modifiedAt": "2026-06-09T06:31:47.138Z",
"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=54369f47-d5ec-4736-86f9-e4d14ad00d9c" \
-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/f494cad0-a564-4c1d-86d8-3ab1c87d347f" \
-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` |