Posts
| Method | Path | Scope | Description |
|---|---|---|---|
| GET | /posts | posts.read | List posts (keyset; status/client/platform filters) |
| GET | /posts/:id | posts.read | Get a post + variants + targets |
| POST | /posts | posts.compose | Compose + fan out (or save a draft) |
{
"clientId": "6d58…",
"content": "Launch day is here 🚀",
"mediaIds": [],
"targets": { "socialAccountIds": ["sa_…", "sa_…"] },
"schedule": { "at": "2026-07-01T15:00:00Z" }
}Clients & accounts
| Method | Path | Scope | Description |
|---|---|---|---|
| GET | /clients | clients.read | List client groups (type/search filters) |
| GET | /clients/:id | clients.read | Get one client |
| GET | /accounts | accounts.read | List connected social accounts |
| GET | /accounts/:id | accounts.read | Get one connected account |
| GET | /agency | agency.read | The current workspace profile |
Analytics
| Method | Path | Scope | Description |
|---|---|---|---|
| GET | /analytics/overview | analytics.read | Tenant rollup + per-platform + daily series |
| GET | /analytics/posts | analytics.read | Per-post analytics list (keyset) |
| GET | /analytics/posts/:id | analytics.read | One post, broken down by platform target |
| GET | /analytics/accounts/:id | analytics.read | One account's rollup + series |
| GET | /analytics/clients/:id | analytics.read | One client's rollup + byPlatform + series |
Analytics endpoints accept an optional date window (from/to as YYYY-MM-DD, default last 30 days) plus optional platform, clientId, and socialAccountId filters. Metrics a platform doesn't expose come back as null, never a fabricated 0.
Reports & best times
| Method | Path | Scope | Description |
|---|---|---|---|
| GET | /reports | reports.read | List saved report definitions |
| GET | /reports/:id | reports.read | Get a report + its runs |
| GET | /reports/:id/exports/:runId | reports.read | Presigned download for a completed run |
| GET | /best-times | besttimes.read | Strongest-first posting slots (client/platform filter) |
Media (content library)
| Method | Path | Scope | Description |
|---|---|---|---|
| GET | /media | media.read | List library assets (kind/folder/client/search) |
| GET | /media/:id | media.read | Get one asset |
| POST | /media/presign | media.manage | Presign a direct upload |
| POST | /media | media.manage | Register an uploaded asset |
| POST | /media/import-url | media.manage | Import an asset from a URL |
apireferencerest
FAQ
- Is there an OpenAPI spec?
- Yes — https://skedcast.com/openapi.json is a full OpenAPI 3.1 document covering every /v1 operation, the security schemes, and the error model. Use it for Postman, code generation, or AI tooling.