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": "b8c392f6-64e5-43c1-a213-589f3168234c",
"eventTypes": [
"comment_created",
"comment_resolved"
],
"enabled": true
}'{
"data": {
"id": "d72d25ae-79e9-4234-8907-b7889741d625",
"createdAt": "2026-10-23T12:00:10.825Z",
"modifiedAt": "2026-10-23T12:00:10.825Z",
"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/19cc463b-1acd-476a-89a4-50e9c6957c11" \
-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": "9ea56901-df06-433e-b580-d63be1b30d8b",
"createdAt": "2026-10-23T12:00:10.825Z",
"modifiedAt": "2026-10-23T12:00:10.825Z",
"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/6150364f-daaa-4e56-ac25-53fc2d6434d5/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": "4b6668aa-f8db-4f3c-a294-fe49f35b1320",
"createdAt": "2026-10-23T12:00:10.825Z",
"modifiedAt": "2026-10-23T12:00:10.825Z",
"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/2fb0ceb0-a622-43ce-a4b4-0be1add31ef0" \
-X GET \
-H "Authorization: Bearer <API-KEY-SECRET>" \
-H "Markup-API-Version: 2023-02-22" \
-H "Content-Type: application/json" {
"data": {
"id": "e19d7ca6-473b-408d-94cc-1361e7c47ef6",
"createdAt": "2026-10-23T12:00:10.825Z",
"modifiedAt": "2026-10-23T12:00:10.825Z",
"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=c3a3dcae-1774-4396-8bac-5d91ca7389c5" \
-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/adc5a0f7-1b18-4b16-a898-b6a93cf5e40d" \
-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_screenshot_failed` | `comment_resolved` | `comment_unresolved` | `markup_created` | `comment_reply_created` | `markup_status_changed` | `set_project_read_only` | `project_review_created` |