Skip to main content
POST
Generate a LinkedIn post asynchronously

Authorizations

Authorization
string
header
required

Pass Authorization: Bearer scripe_sk_live_<...> (or scripe_sk_test_<...> for test keys) on every request. Keys are scoped to a single workspace and can be revoked from the Scripe dashboard.

The same header also accepts an OAuth 2.1 access token (scripe_oat_*); both credentials share one scope vocabulary and every operation below documents the scope it requires. An API key can hold every scope named on this surface except webhooks:manage, which is grantable to OAuth tokens only today — the webhook-endpoint operations answer 403 scope_missing to every API key. Operations that name no scope accept any valid token of the workspace.

Headers

Scripe-Api-Version
string

Pin the API version. Format YYYY-MM-DD. Omit to receive the currently rolling default. Unknown versions return 400 version_unsupported.

Example:

"2026-08-10"

Idempotency-Key
string

Opaque string (1–64 chars, [A-Za-z0-9_-]) used to dedup retried writes. Within 24h of the first request, the same key

  • same body returns the original response (Idempotent-Replayed: true). Same key + different body returns 409 idempotency_key_conflict.

Strongly recommended for every write — see /docs/api/v1/idempotency.

Pattern: ^[A-Za-z0-9_-]{1,64}$

Body

application/json
projectId
string
required
Example:

"proj_a1b2c3d4e5f6g7h8"

source
object
required
scheduledFor
string<date-time> | null

Validated when present (must parse, must be in the future), but it does NOT schedule the generated post — the job always writes a draft. Put the returned post on the calendar with PATCH /v1/posts/{postId} once it exists.

options
object

Optional steering hints. The worker already loads the project's tone-of-voice profile, voice samples, content pillars, and KB — most callers should leave this empty and put any extra steering into source.text. An idea source fills contentType from the card's pillar when this omits it.

wait_for_completion_ms
integer

Soft hint — server polls for up to this many ms before returning. Capped at 25 000 ms. Larger values are silently clamped.

Required range: 0 <= x <= 25000

Response

Job enqueued (or finished, on a sync-wait hit).

data
object
required