Add a webhook
Be told when a post goes out or an article is published, instead of asking every thirty seconds.
The interesting moments happen minutes or hours after the request that caused them. Checking back every thirty seconds spends your own rate limit on a question we can simply answer.
2xx. If your URL does not answer, nothing is saved and you are told why — better to find out now than to wonder later why nothing arrives.
The events
post.published
A post went out on one of its channels.
Logging it, or telling your team.
post.failed
A post could not be published.
Alerting somebody who can fix it.
post.written
A post is written and waiting.
Reviewing copy before it goes out.
article.published
An article reached your website.
Sharing it, or warming a cache.
article.written
An article is written.
Sending it for review.
article.failed
An article could not be published.
Alerting somebody.
plan.limit_reached
An allowance ran out.
Knowing before your calendar stalls.
Checking a delivery is really ours
Every delivery carries X-Quqi-Signature: an HMAC-SHA256 of the raw request body, using the secret from this reply. Compute the same and compare.
When your endpoint is down
A delivery is retried four times over about ten minutes. After five failures in a row the endpoint is marked failing — not switched off, because an hour of downtime should not need you to turn anything back on. Its next success clears the mark.
A 4xx is not retried: that is your server saying the request itself is wrong, and sending the identical thing again gets the identical answer.