Docs

Start here

Save a project's brief

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

Save a project's brief over the revision it was written from.

Save a project's brief over the revision it was written from. A save from an older revision is refused revision_conflict with the current rev, so two tabs never overwrite each other unseen; once the brief is a shared document (POST /v1/studio/projects/{project}/brief/state), a save from the brief's current rev is written into it as a change and merges with what other members are writing: the blocks it changed (a paragraph, a heading, a list) take its version, and every block it left as it was keeps their edits; the windows open on the brief are told and load it. Takes a key holding studio:write — Account offers it unticked — or the desktop's own session key. Spends nothing.

#Authentication

Authorization: Bearer auray_sk_… — studio:write — Account offers it unticked; the desktop's session key holds it.

#Request

#Path parameters

NameTypeRequiredDescription
projectstringyes

#Body

application/json, required.

FieldTypeRequiredDefaultDescription
docobjectyes—A rich-text document as an editor writes it (a ProseMirror document), at most 256 KB of JSON.
doc.typestringyes—One of "doc".
doc.contentany[]no—
base_revintegeryes—The rev the brief was read at. 0 to ….

#Example request

curl -X POST https://api.auray.ai/v1/studio/projects/3f0c8a52-6a1d-4e8b-9c2d-7e5f4a3b2c1d/brief \
  -H "Authorization: Bearer $AURAY_API_KEY" \
  -H "content-type: application/json" \
  -d '{
  "doc": {
    "type": "doc",
    "content": [
      {
        "type": "paragraph",
        "content": [
          {
            "type": "text",
            "text": "Night, rain, neon."
          }
        ]
      }
    ]
  },
  "base_rev": 0
}'

#Responses

#200 OK

OK.

FieldTypeRequiredDefaultDescription
objectstringyes—One of "brief".
project_idstringyes—
docobjectyes—A rich-text document as an editor writes it (a ProseMirror document), at most 256 KB of JSON.
doc.typestringyes—One of "doc".
doc.contentany[]no—
revintegeryes—0 for a brief nobody has written. A save names the rev it was written from. 0 to ….
updated_atstringyes—May be null.
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
200OK.
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