Public Webhooks in ContentStudio
Stop refreshing dashboards and checking post statuses manually. ContentStudio's Public Webhooks let your tools react to what is happening in your account the moment it happens. Whether a post just got approved, failed to publish, or received a comment, webhooks push that information to any URL you choose in real time, with zero polling required.
Each time a subscribed event fires (for example, a post gets approved), ContentStudio sends a signed payload to your endpoint containing the event details. Your server, Zapier zap, Make scenario, or any other receiver can then take action: log it, trigger a workflow, send a Slack message, update a spreadsheet, or anything else you build.
How to Set Up a Webhook
Step 1: Navigate to the Webhooks Page
Step 2: Configure the Webhook
zapier).
https://hooks.zapier.com/hooks/catch/...).
post.approved, post.rejected, and post.comment).
- The signing secret is shown only once after you generate it. Copy it right away and store it securely.
- ContentStudio signs every webhook delivery using this secret and sends the signature in the
x-contentstudio-signatureheader. - Your receiving endpoint should validate this signature to confirm the request genuinely came from ContentStudio.
Step 3: Manage Your Webhook
Step 4: Monitor Delivery Logs
Step 5: API Limits and Billing
- API calls and webhook deliveries share the same limit. Each successful webhook delivery counts as 1 API request.
- Your limit resets on the first of each month (based on your billing cycle).
- You can create up to 5 webhooks per account.
FAQs
What is the difference between a webhook and the ContentStudio API?
The API lets you pull data from ContentStudio on demand. You send a request and get a response. Webhooks work in the opposite direction: ContentStudio pushes data to you when something happens. They are complementary. Use the API when you need to fetch data or perform actions, and use webhooks when you want to be notified about events automatically.
Do webhooks and API calls share the same usage limit?
Yes. Both draw from the same pool of API requests in your plan. Each successful webhook delivery uses 1 request from your quota. You can check your current usage at the top of the API page.
How many webhooks can I create?
You can create up to 5 webhooks per account.
What happens if my endpoint is down when a webhook fires?
If the delivery fails (your endpoint does not return a 2xx response), the delivery is marked as failed. You can monitor failed deliveries from the Webhooks page. It is recommended to use the "Send test event" option to verify your endpoint is working before relying on it.
Can I subscribe to the same event on multiple webhooks?
Yes. Multiple webhooks can listen for the same event. Each one will receive its own delivery independently.
What does the signing secret do?
When you generate a signing secret, ContentStudio uses it to create an HMAC signature of each payload. This signature is included in the x-contentstudio-signature header of every delivery. Your endpoint can recalculate the signature using the same secret and compare it to verify the request is authentic and has not been tampered with.
I forgot to copy my signing secret. What do I do?
The signing secret is only shown once, right after you generate it. If you missed it, you will need to edit the webhook and generate a new one. Keep in mind that the old secret will stop working immediately, so update your endpoint accordingly.
Can I temporarily disable a webhook without deleting it?
Yes. Click the three-dot menu next to your webhook and select "Pause." This stops all deliveries until you resume it. Your configuration and event selections are preserved.
Are webhooks available for events outside of posts and comments?
Currently, webhooks support post lifecycle events (post.scheduled , post.published , post.failed , post.inreview , post.approved , post.rejected ) and comment events (post.comment ). Support for additional event types may be added in the future.
What format is the webhook payload?
ContentStudio sends webhook payloads as JSON via HTTP POST to your specified URL. The payload includes the event type and relevant data about the post or comment that triggered the event.
Was this article helpful?

