Skip to main content
POST
/
webhooks
Create webhook
curl --request POST \
  --url https://app.tryordinal.com/api/v1/webhooks \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "CRM Sync",
  "url": "https://example.com/webhooks/ordinal",
  "description": "Sync published posts to our CRM",
  "topics": [
    "post.published",
    "post.archived"
  ]
}
'
{
  "id": "550e8400-e29b-41d4-a716-446655440900",
  "name": "CRM Sync",
  "url": "https://example.com/webhooks/ordinal",
  "topics": [
    "post.published",
    "post.archived"
  ],
  "createdAt": "2026-01-15T10:00:00.000Z"
}

Authorizations

Authorization
string
header
required

API key authentication. Generate an API key from your workspace settings.

Body

application/json
name
string
required

The name of the webhook

url
string<uri>
required

The URL that will receive webhook events

topics
enum<string>[]
required

The event types this webhook should listen to

Minimum array length: 1
Available options:
social_profile.connected,
social_profile.disconnected,
social_profile.reconnect_needed,
post.created,
post.scheduled,
post.rescheduled,
post.unscheduled,
post.published,
post.publish_failed,
post.archived,
post.permanently_deleted,
post.content.edited,
post.comment.created,
post.inline_comment.created
description
string

An optional description for the webhook

headers
object

Optional custom headers to include in webhook requests

Response

Webhook created

id
string<uuid>
name
string
url
string<uri>
topics
string[]
createdAt
string<date-time>