Skip to main content

Scripe API v1

Status: Public preview. Advanced and Business are the plans sold with API access; Enterprise and the grandfathered Agency tier carry the same entitlement, and an admin-assigned Trial workspace also clears the gate. Every other tier is rejected with 403 plan_not_eligible — see workspace.plan. We follow Scripe’s deprecation policy — breaking changes only ship in a new dated version with at least 90 days of overlap.
The Scripe API is a JSON REST API for reading and writing the same workspace data the Scripe dashboard does: posts, notes, the idea board, the content calendar, sources (transcriptions), the knowledge base, the media library, analytics, async AI jobs, and outbound webhooks. There are three ways in, and they share one scope vocabulary and one error contract:
  • REST with an API key — mint a scripe_sk_* key in the dashboard and call https://api.scripe.io/v1/*. The fastest path for scripts and single-workspace integrations. Start below.
  • REST with OAuth 2.1 — for multi-tenant products acting on behalf of a Scripe user, with per-user consent and multi-workspace reach. See OAuth.
  • MCP — point an MCP-compatible host (Claude, ChatGPT, Cursor, agent frameworks) at https://mcp.scripe.io/mcp and it drives the same capabilities as tools, with a two-phase confirmation that previews anything irreversible before it runs. See MCP.

Make your first call

  1. In the Scripe dashboard, switch to the workspace you want to integrate and open Settings → Developer → API keys → New API key. Copy the secret — it is shown exactly once.
  2. Verify the key resolves your workspace:
A 200 OK with your workspace’s id, plan, and principal info confirms the key works. A 401 means the key is wrong or revoked — re-mint or check the header. A 403 means your plan does not carry API access — see plan_not_eligible; Advanced and Business are the plans you can buy it on. From here, a typical read is one more call:
Reading posts requires the posts:read scope on the key — tick it in the key wizard. The authentication page covers scopes, rotation, and revocation.

Base URLs

The MCP transport also serves a legacy SSE endpoint — see MCP.

Authentication

Every request carries a Bearer token in the Authorization header. Two credentials are supported:
  • API key scripe_sk_* — single-workspace, minted in the dashboard. See Authentication.
  • OAuth 2.1 access token scripe_oat_* — multi-tenant, on behalf of a Scripe user, can reach every workspace the user belongs to plus every client workspace billed to an agency they own. See OAuth.
Both use the identical wire format and the identical scope vocabulary; the difference is who issues the token and how it rotates. An API key can hold every scope a REST endpoint requires except webhooks:manage, which is grantable to OAuth tokens only today — see auth.md §Scopes for the exact catalogue.
API keys are a REST-only credential. The MCP transport accepts OAuth access tokens exclusively.

Versioning

Pin a date-stamped version on every request:
2026-08-10 is the current version and the default when the header is omitted. Omitting the header is fine for exploration but dangerous in production — the default moves when we cut a new version, so pin explicitly. The previous version 2026-08-01 is deprecated with sunset on 2026-11-15. See Conventions § Versioning for the changelog and deprecation policy.

Endpoint catalogue

Every endpoint, with the scope it requires. Full request/response schemas live in the OpenAPI reference tab; each resource’s page in this tab covers the semantics that don’t fit a schema. “any valid token” means the endpoint needs authentication but no particular scope. Deliberately not on REST: publishing to LinkedIn now, permanent deletion of notes/ideas/knowledge, removal of a media-library asset (see Media), and settings writes. Those verbs are irreversible or sensitive, so they exist only on the MCP surface, behind a two-phase confirmation that previews the action and an OAuth scope the user must grant by name. Note that the confirmation is a preview contract, not a human gate — putting a person between proposal and execution is the host’s job. The machine-readable OpenAPI 3.1 spec backs the OpenAPI reference tab of this site. Use it to generate clients — we recommend openapi-generator or @hey-api/openapi-ts.

Conventions

The same rules apply to every endpoint:
  • Pagination — opaque cursors, never page numbers. Loop until pagination.has_more is false.
  • Errors — uniform envelope with stable code identifiers; see the error reference for every code.
  • Rate limits — per-credential sliding 60-second windows: 120 reads/min, 30 writes/min, 10 job submissions/min.
  • Resource IDs — every resource has a typed prefix (post_, note_, proj_, idea_, kb_, …).
  • Idempotency — ten write endpoints honour Idempotency-Key and replay the original response for 24h; every other write ignores the header.

Need help?