Skip to main content
The ChatFeatured REST API allows you to query, create, and manage your articles programmatically. Use API keys to authenticate requests and build custom workflows, integrations, or applications on top of your ChatFeatured content. Status: Available | Complexity: Intermediate | Use cases: Custom automation, third-party integrations, mobile apps
The REST API is perfect for building custom integrations, automating publishing workflows, or syncing content to external platforms. It gives you full programmatic control over your articles.

Authentication

All API requests require authentication via API Key:

Headers

or

Create an API Key

  1. In ChatFeatured, go to Integrations → REST API
  2. Click Create API Key
  3. Name it descriptively (e.g., “Mobile App”, “Automation Script”)
  4. Copy the key immediately (only shown once)
Security: Treat API Keys like passwords. Never commit them to version control or expose in client-side code. Store them in environment variables instead.

Base URL

All API requests use:
Use HTTPS only. HTTP requests will be rejected for security.

Endpoints

List Articles

List all articles with optional filtering.
Query Parameters: Example with curl:
Example with Python:
Example with JavaScript:
Response:

Get Single Article

Retrieve a specific article by ID or slug.
Example with curl:
Example with Python:
Example with JavaScript:

Publish Article

Publish a draft article or change publication status.
Body:
Example with curl:
Example with Python:
Example with JavaScript:

Webhooks

Get notified when articles change status via webhooks.
Webhooks let your application react to events in real-time. For example, automatically sync articles to your CMS when they’re published, or send Slack notifications when articles are ready for review.

Configure Webhooks

  1. Go to Integrations → REST API
  2. Scroll to Webhooks section
  3. Enter your Webhook URL
  4. (Optional) Enter a Signing Secret for security
  5. Select which events to receive:
    • Article ready for review
    • Article published
  6. Save webhook settings

Webhook Events

Event: article.review Fires when an article finishes generating and is ready for review.
Event: article.published Fires when an article is published.

Webhook Security

If you configured a Signing Secret, each webhook includes an X-Webhook-Signature header:
Verify the signature with Python:
Verify the signature with JavaScript:
Always verify webhook signatures to ensure requests are genuinely from ChatFeatured.

Error Handling

Cause: Invalid or missing API Key
Solution: Generate new API Key, verify header format (Authorization: Bearer KEY or X-API-Key: KEY)
Cause: Article doesn’t exist or wrong ID/slug
Solution: Verify article ID or slug, check if article was deleted
Cause: Too many requests in short time
Solution: Wait time in X-RateLimit-Reset header, implement exponential backoff, reduce frequency
Cause: Unexpected server error
Solution: Retry with exponential backoff, check status page, contact support if persists

Rate Limiting

API requests are rate limited per API Key:
  • Free tier: 100 requests/hour
  • Pro tier: 1,000 requests/hour
  • Enterprise: Custom limits
Response headers indicate your remaining quota:
Check rate limit headers in every response. When you’re close to the limit, throttle requests or implement backoff.

Use Cases

Automated Publishing

Sync to External CMS

Monitor Article Status


Best Practices

  • Store API Keys in environment variables
  • Use different keys for different applications
  • Implement exponential backoff for retries
  • Validate webhook signatures
  • Handle errors gracefully
Don’t commit API Keys to version control
Don’t share API Keys across applications
Don’t expose Keys in client-side code
Don’t ignore rate limit headers

Troubleshooting

Cause: Invalid API KeySolution:
  • Generate new API Key in ChatFeatured
  • Verify key is not expired
  • Check header format: Authorization: Bearer KEY or X-API-Key: KEY
  • Verify no extra spaces or truncation in key
Cause: Too many requestsSolution:
  • Check X-RateLimit-Reset header for wait time
  • Implement exponential backoff (1s, 2s, 4s, etc.)
  • Reduce request frequency
  • Upgrade plan if you need higher limits
Cause: URL is unreachable or returns errorSolution:
  • Verify webhook URL is publicly accessible
  • Ensure endpoint returns 200 OK response
  • Check server logs for incoming requests
  • Test with a tool like webhook.cool
  • Verify webhook secret is correct if configured

See Also