---
title: REST API overview
description: Base URL, authentication, content types, pagination, and conventions for the Schedule & Chill REST API.
seo_title: "Social media REST API overview — Schedule & Chill"
published: 2026-06-07
updated: 2026-09-14
---

# 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](/help/developers/reference/changelog).

## Authentication

Send your API key as a bearer token on every request. See [Authentication](/help/developers/authentication).

```bash
Authorization: Bearer YOUR_API_KEY
```

## Request format

Send JSON bodies with both headers set:

```bash
-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](/help/developers/rest-api/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](/help/developers/rest-api/media)       | `GET/POST /media`, `GET/PUT/DELETE /media/{id}`                                                          |
| [API keys](/help/developers/rest-api/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`:

```json
{
    "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](/help/developers/reference/errors).
