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

ParameterTypeDescription
statusstringFilter by published, draft, or scheduled
pageintegerPage number (default: 1)
per_pageintegerResults 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

ParameterTypeRequiredDescription
titlestringPost title
contentstringHTML content
statusstringdraft (default) or published
published_atdatetimeISO 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

EventDescription
post.publishedA post is published
post.updatedA published post is updated
member.createdA new paid member joins
subscriber.addedA 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"
}

Stay updated with Fluxeta

Product updates, creator tips, and platform news.

No spam. Unsubscribe anytime. Protected under DPDP Act.