Skip to main content
POST
/
sources
Create a transcription (Source) from text or upload
curl --request POST \
  --url https://api.scripe.io/v1/sources \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "projectId": "proj_a1b2c3d4e5f6g7h8",
  "text": "<string>",
  "name": "<string>"
}
'
{
  "data": {
    "id": "src_a1b2c3d4e5f6g7h8",
    "projectId": "<string>",
    "status": "Done",
    "durationSeconds": 123,
    "createdAt": "2023-11-07T05:31:56Z",
    "textPreview": "<string>",
    "textPreviewTruncated": true,
    "hasFullText": true,
    "name": "<string>",
    "fileType": "<string>",
    "updatedAt": "2023-11-07T05:31:56Z",
    "topics": [
      {
        "id": "tpc_a1b2c3d4e5f6g7h8",
        "title": "<string>",
        "summary": "<string>",
        "keyTakeaways": [
          "<string>"
        ],
        "ranking": 123,
        "score": 123,
        "fromSeconds": 123,
        "toSeconds": 123,
        "hooks": [
          {
            "id": "hk_a1b2c3d4e5f6g7h8",
            "content": "<string>",
            "postType": "<string>",
            "contentType": "<string>"
          }
        ]
      }
    ]
  }
}

Documentation Index

Fetch the complete documentation index at: https://apidocs.scripe.io/llms.txt

Use this file to discover all available pages before exploring further.

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.

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-01"

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
type
enum<string>
required
Available options:
text
projectId
string
required
Example:

"proj_a1b2c3d4e5f6g7h8"

text
string
required

Already-transcribed body text.

Maximum string length: 1000000
name
string | null

Optional human-friendly label.

Response

Source created synchronously (type: "text") or job enqueued (type: "file"). The response shape depends on which body was supplied — replayed via Idempotency-Key preserves the original shape.

data
object
required