API Reference
REST API for programmatic access to your Fluxeta content, subscribers, and members.
Authentication
All API requests require a Bearer token. Generate an API key from your site settings under Settings → API Keys.
curl https://fluxeta.com/api/v1/posts \
-H "Authorization: Bearer sk_live_your_api_key" \
-H "Accept: application/json"
Base URL
https://fluxeta.com/api/v1
All endpoints are versioned under /api/v1. Responses are JSON.
Errors
Standard HTTP status codes. Error responses include a message field.
// 401 Unauthorized
{ "message": "Unauthenticated." }
// 404 Not Found
{ "message": "Post not found." }
// 422 Validation Error
{ "message": "The title field is required.", "errors": { "title": ["..."] } }
List posts
GET /posts
Returns paginated posts for the authenticated site.
Query parameters
| Parameter | Type | Description |
|---|---|---|
| status | string | Filter by published, draft, or scheduled |
| page | integer | Page number (default: 1) |
| per_page | integer | Results per page (default: 20, max: 100) |
curl "https://fluxeta.com/api/v1/posts?status=published&page=1" \
-H "Authorization: Bearer sk_live_xxx"
Response
{
"data": [
{
"id": 42,
"title": "10 tips for newsletter growth",
"slug": "newsletter-growth-tips",
"status": "published",
"published_at": "2026-04-20T10:00:00Z",
"excerpt": "Newsletter growth starts before you hit send...",
"categories": ["Growth"],
"tags": ["newsletter", "email"]
}
],
"meta": {
"total": 48,
"page": 1,
"per_page": 20,
"last_page": 3
}
}
Get post
GET /posts/{id}
curl https://fluxeta.com/api/v1/posts/42 \
-H "Authorization: Bearer sk_live_xxx"
Create post
POST /posts
Body parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| title | string | ✓ | Post title |
| content | string | HTML content | |
| status | string | draft (default) or published | |
| published_at | datetime | ISO 8601. Schedule for future if in the future. |
curl -X POST https://fluxeta.com/api/v1/posts \
-H "Authorization: Bearer sk_live_xxx" \
-H "Content-Type: application/json" \
-d '{
"title": "My new post",
"content": "Hello world
",
"status": "published"
}'
Update post
PATCH /posts/{id}
curl -X PATCH https://fluxeta.com/api/v1/posts/42 \
-H "Authorization: Bearer sk_live_xxx" \
-H "Content-Type: application/json" \
-d '{ "status": "published" }'
List sites
GET /sites
curl https://fluxeta.com/api/v1/sites \
-H "Authorization: Bearer sk_live_xxx"
# Response
{
"data": [
{ "id": 1, "name": "My Blog", "slug": "my-blog", "domain": "myblog.com" }
]
}
List subscribers
GET /subscribers
curl https://fluxeta.com/api/v1/subscribers \
-H "Authorization: Bearer sk_live_xxx"
Add subscriber
POST /subscribers
curl -X POST https://fluxeta.com/api/v1/subscribers \
-H "Authorization: Bearer sk_live_xxx" \
-H "Content-Type: application/json" \
-d '{ "email": "[email protected]", "name": "Arjun" }'
List members
GET /members
curl https://fluxeta.com/api/v1/members \
-H "Authorization: Bearer sk_live_xxx"
# Returns active paid members for your site
Webhooks
Configure webhook endpoints from Settings → Webhooks. We send a POST request to your URL when events occur.
Available events
| Event | Description |
|---|---|
post.published | A post is published |
post.updated | A published post is updated |
member.created | A new paid member joins |
subscriber.added | A new subscriber confirms |
// Webhook payload example (post.published)
{
"event": "post.published",
"data": {
"id": 42,
"title": "My post",
"slug": "my-post",
"url": "https://yourdomain.com/post/my-post"
},
"timestamp": "2026-04-20T10:00:00Z"
}