Create an API key
- Go to Integrations → REST API.
- Click Create API Key.
- Copy the key shown under Your API Key. It won’t be shown again.
cf_. A project has one key at a time. Regenerate (the refresh icon) replaces it and the old key stops working immediately. Remove (the trash icon) revokes it. Viewers can’t manage keys or webhooks.
Keep the key in a secret store, out of version control and client-side code.
Authentication
Send the key in either header:?api_key=YOUR_API_KEY query parameter also works, but prefer a header.
Base URL
Rate limit
Each API key allows 100 requests per minute. Over the limit, requests fail with429 Too Many Requests and {"error": "Rate limit exceeded."}. Wait a minute before retrying.
Endpoints
List articles
content is HTML. metadata is free-form, so don’t rely on its shape.
Get one article
data object with the same fields as the list. It returns 404 if no article in the project matches.
Mark an article published
review or approved can be published. Any other status returns 400, including one that’s already published.
Optional JSON body:
article.published webhook if you’ve turned it on.
Track external content
201):
409 if the URL is already tracked or linked to an article.
List tracked content
limit (default 20, maximum 100) and offset.
data array with the same fields as above, plus the pagination object.
Webhooks
ChatFeatured sends aPOST to your URL when an article is ready for review or has been published.
Set up a webhook
Create an API key first; the Webhooks card appears after.- Go to Integrations → REST API.
- In Webhooks, enter your Webhook URL.
- Optionally enter a Signing Secret (optional). ChatFeatured uses it to sign each request.
- Under Events, turn on Article ready for review, Article published, or both.
- Click Save Webhook Settings.
article.published payload with placeholder content.
When each event fires
article.review fires when ChatFeatured finishes writing an article and it moves to review.
article.published fires every time an article moves to published, however it got there: a CMS or Blog CMS publish from the dashboard or MCP, marking it published by hand, the REST API’s publish endpoint, or a scheduled publish reaching its time.
Payload
Both events send the same shape, with the full article.content is HTML.
Delivery
Each event is sent once. Your endpoint has 10 seconds to answer with a 2xx; otherwise the event is dropped, not retried. Answer quickly and do the work in the background.Verify the signature
With a signing secret, each request carries anX-Webhook-Signature header: the hex-encoded HMAC-SHA256 of the raw request body, keyed with your secret. Compute it over the raw bytes, before JSON parsing.
Errors
Errors return JSON with anerror field:
Example: publish on your own site
Publish approved articles to your own site, then record each one in ChatFeatured so the live URL is tracked for citations.Troubleshooting
Webhook never arrives
Webhook never arrives
Check the event is on and you clicked Save Webhook Settings, and that the URL is public and answers with a 2xx within 10 seconds. Send Test shows the status code your endpoint returned.