Schedule & Chill
DocsREST APIREST API Overview

REST API Overview

REST API Overview

The REST API is standard HTTP with JSON request and response bodies.

Base URL

https://schedulenchill.com/api

The API is currently unversioned. Breaking changes will be announced in the Changelog.

Authentication

Send your API key as a bearer token on every request. See Authentication.

Authorization: Bearer YOUR_API_KEY

Request format

Send JSON bodies with both headers set:

-H "Content-Type: application/json"
-H "Accept: application/json"

The Accept: application/json header ensures errors come back as JSON rather than HTML redirects.

Resources

Resource Endpoints
Posts GET/POST /posts, GET/PUT/DELETE /posts/{id}
Post actions POST /posts/{id}/ cancel · publish-now · retry · duplicate · restore
Analytics GET /analytics
Capabilities GET /capabilities
Media GET/POST /media, GET/PUT/DELETE /media/{id}
API Keys GET/POST /api-keys, DELETE /api-keys/{id}

Every post action has an MCP tool of the same name, and GET /analytics is get_analytics. Neither surface can do something the other cannot.

Pagination

List endpoints are paginated. The pagination fields sit at the top level of the response, alongside data:

{
    "data": [],
    "current_page": 1,
    "per_page": 20,
    "last_page": 5,
    "total": 100,
    "next_page_url": "…",
    "prev_page_url": null
}

Pass ?page=2 to move through pages, and ?per_page=N to change the page size. per_page accepts 1–200; anything larger returns 422 rather than being silently reduced, so a client is never quietly handed a short page. Without it, posts return 20 per page and media returns 15.

Always compare data.length against total before concluding you have seen everything.

Timestamps

All timestamps are ISO 8601. Send scheduled_at in UTC (e.g. 2026-06-10T14:00:00Z) to avoid ambiguity.

Errors

Errors use standard HTTP status codes with a JSON body. Validation failures return 422 with a field-keyed errors object. See Errors & Status Codes.