Skip to main content
Enception Logo
REST APIScheduled Posts

Scheduled Posts API

Public CRUD API for managing Reddit scheduled posts. Create drafts, list, update, and delete scheduled posts with a single shared API key.

Base URL: https://www.enception.ai

Authentication

Pass your API key in either header:

x-api-key: $SCHEDULED_POSTS_API_KEY
# or
Authorization: Bearer $SCHEDULED_POSTS_API_KEY

Notes:

  • The key may be a comma-separated list, so each consumer can have a distinct, individually revocable key.
  • This is a shared service key with no per-user identity. Any valid key can read and write posts for any brand.
  • Missing or invalid keys return 401.

Endpoints

POST/api/v1/scheduled-posts

Create a new scheduled post (status draft).

FieldTypeRequiredNotes
titlestringYesmax 300 chars
bodystringYesmax 40000 chars
subredditstringYesmax 100 chars
brandstringYesmust exist; resolves the post's client/website
rolestringNooptional persona role
tonestringNooptional persona tone

Example

curl -X POST https://www.enception.ai/api/v1/scheduled-posts \
  -H "x-api-key: $SCHEDULED_POSTS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Best AI presentation tools",
    "body": "...",
    "subreddit": "productivity",
    "brand": "chatslide"
  }'

Returns { "success": true, "post": { ... } }

GET/api/v1/scheduled-posts

List scheduled posts (newest first).

Query paramDescription
statuscomma-separated statuses, e.g. draft,filtered
clientcase-insensitive partial match on client name
brandexact brand membership match
limitdefault 100, capped at 500
curl "https://www.enception.ai/api/v1/scheduled-posts?brand=chatslide&status=draft&limit=20" \
  -H "x-api-key: $SCHEDULED_POSTS_API_KEY"

Returns { "success": true, "posts": [ ... ] }

PATCH/api/v1/scheduled-posts

Update a post by id. Body: { id, title?, subreddit?, body?, status? }.

  • Content edits (title/subreddit/body) only allowed while draft or filtered; status-only updates also allowed for posting.
  • status must be one of: draft, filtered, posting, succeeded.
  • Returns 409 if the post is missing or no longer editable.
curl -X PATCH https://www.enception.ai/api/v1/scheduled-posts \
  -H "x-api-key: $SCHEDULED_POSTS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "id": "<uuid>", "title": "New title" }'
DELETE/api/v1/scheduled-posts

Delete a post by id. Body: { id }. Only draft/filtered posts can be deleted (to avoid destroying posts that are posting/already posted). Returns 409 if missing or not deletable.

curl -X DELETE https://www.enception.ai/api/v1/scheduled-posts \
  -H "x-api-key: $SCHEDULED_POSTS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "id": "<uuid>" }'

Errors

All errors use the shape { "success": false, "error": { "code", "message" } }.

StatusCodeWhen
400INVALID_JSONbody is not valid JSON
400VALIDATION_ERRORmissing/invalid fields
400BRAND_NOT_FOUNDbrand does not exist
401UNAUTHORIZEDmissing or invalid API key
409NOT_EDITABLEpost missing or past an editable status (PATCH)
409NOT_DELETABLEpost missing or not draft/filtered (DELETE)
500INSERT_FAILED / UPDATE_FAILED / DELETE_FAILED / FETCH_FAILEDdatabase error