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": "372b718f-6521-4c0e-9813-4546f23ad5e2",
"eventTypes": [
"comment_created",
"comment_resolved"
],
"enabled": true
}'{
"data": {
"id": "ed3355d7-c455-41ee-83cf-93ade9b9c75c",
"createdAt": "2026-06-11T11:43:35.940Z",
"modifiedAt": "2026-06-11T11:43:35.940Z",
"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/5c876558-dc61-4f54-b60b-0ccbe7801926" \
-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": "f53165ee-15e2-4500-9c71-278fa4b6d83a",
"createdAt": "2026-06-11T11:43:35.940Z",
"modifiedAt": "2026-06-11T11:43:35.940Z",
"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/29592728-5b9a-44b8-941e-c422d775e637/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": "a92814fa-1ec5-4514-865d-7588f58b410c",
"createdAt": "2026-06-11T11:43:35.940Z",
"modifiedAt": "2026-06-11T11:43:35.940Z",
"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/ee48ee0a-a425-4098-bcea-581795ddf605" \
-X GET \
-H "Authorization: Bearer <API-KEY-SECRET>" \
-H "Markup-API-Version: 2023-02-22" \
-H "Content-Type: application/json" {
"data": {
"id": "27ebe0ca-6e85-4492-b6de-359f9de1e2c9",
"createdAt": "2026-06-11T11:43:35.940Z",
"modifiedAt": "2026-06-11T11:43:35.940Z",
"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=3bd281f6-f0ca-4b2a-bea4-9cd9ae17ce0d" \
-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/0dfabdf3-7075-41a4-be95-a8e5b4828134" \
-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` |