Docs

Start here

Read a script into a project

POST/v1/studio/projects/{project}/scriptson https://api.auray.ai/v1

Read a script into the project — Fountain, Final Draft (.fdx), plain text, Markdown, a PDF's text layer or a Word file (.docx) — from an upload with purpose script (POST /studio/uploads): its words…

Read a script into the project — Fountain, Final Draft (.fdx), plain text, Markdown, a PDF's text layer or a Word file (.docx) — from an upload with purpose script (POST /studio/uploads): its words, its scenes (each heading, where it runs in the text and who speaks in it) and the characters who speak most are kept beside the project; the file itself is not, and its upload is let go. A file is at most 10,000,000 bytes by default — the upload's ticket answers the bound in force in max_bytes, and script_too_large names it in max — a Word file unpacks to at most 30,000,000 bytes in at most 1,000 parts, and a script runs to at most 400 pages and 600,000 characters (script_too_large, naming which); a read is stopped at 10 seconds and at 256 MB of memory (script_unreadable, limit naming which). Each upload is read once: whatever the read answers, it is spent, and another try is another upload (upload_missing). While the API reads its most at once, a read is service_busy and spends nothing: try again in a few seconds. A PDF that is a picture of its pages has no text to read (script_has_no_text): upload one exported from your writing app. A project keeps at most 8 scripts. Needs the upload capability. Free, refused or not. Takes a key holding studio:write — Account offers it unticked — or the desktop's own session key. Spends nothing.

#Authentication

Authorization: Bearer auray_sk_… — a key with the scope the route names.

#Request

#Path parameters

NameTypeRequiredDescription
projectstringyes

#Body

application/json, required.

FieldTypeRequiredDefaultDescription
upload_idstringyes—An upload with purpose script whose file has arrived, not read before: each upload is read once.
namestringno—The script's name; the file's name when left out. 1 to 120 characters.

#Example request

curl -X POST https://api.auray.ai/v1/studio/projects/3f0c8a52-6a1d-4e8b-9c2d-7e5f4a3b2c1d/scripts \
  -H "Authorization: Bearer $AURAY_API_KEY" \
  -H "content-type: application/json" \
  -d '{
  "upload_id": "…"
}'

#Responses

#201 Created

Created.

FieldTypeRequiredDefaultDescription
objectstringyes—One of "script".
idstringyes—
namestringyes—1 to 120 characters.
formatstringyes—One of "fountain", "fdx", "txt", "md", "pdf", "docx".
pagesintegeryes—A PDF's own count; else the text laid out at 55 lines of 60 characters a page. 1 to 400.
charsintegeryes—1 to 600000.
scene_countintegeryes—0 to 1000.
charactersobject[]yes—The characters who speak most, by their lines.
characters[].namestringyes—0 to 40 characters.
characters[].linesintegeryes—1 to ….
created_atstringyes—
request_idstringno—Mirrored in the X-Request-Id header.

Headers:

HeaderDescription
RateLimit-LimitBurst capacity.
RateLimit-Remaining
RateLimit-ResetSeconds until refill.
X-RateLimit-Limit
X-RateLimit-Remaining
X-RateLimit-ResetUnix seconds. The X- spelling is what client libraries read.
X-Request-Id

#400 Bad Request

#401 Unauthorized

#403 Forbidden

#404 Not Found

#409 Conflict

#413 Payload Too Large

#429 Too Many Requests

#500 Internal Server Error

#503 Service Unavailable

#Status codes

StatusMeaning
201Created.
400Bad Request
401Unauthorized
403Forbidden
404Not Found
409Conflict
413Payload Too Large
429Too Many Requests
500Internal Server Error
503Service Unavailable

Every refusal names its code, and every code is explained at Errors.

Start typing to search every page of the documentation.

Up arrow Down arrow to moveEnter to openEscape to close