Docs

Start here

Start a project

POST/v1/studio/projectson https://api.auray.ai/v1

Start a project of your own, as many as your plan's studio.max_projects (on GET /v1/plans).

Start a project of your own, as many as your plan's studio.max_projects (on GET /v1/plans). It is private, with you as its owner, its four folders and an empty brief. 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

#Body

application/json, required.

FieldTypeRequiredDefaultDescription
namestringyes—0 to 80 characters.
descriptionstringno—0 to 140 characters. May be null.
slugstringno—Kept exactly, or refused slug_taken. Left out, the name gives one, made unique with a number. 3 to 60 characters.

#Example request

curl -X POST https://api.auray.ai/v1/studio/projects \
  -H "Authorization: Bearer $AURAY_API_KEY" \
  -H "content-type: application/json" \
  -d '{
  "name": "Night Market",
  "description": "A chase through the stalls at closing time."
}'

#Responses

#201 Created

Created.

FieldTypeRequiredDefaultDescription
objectstringyes—One of "project".
idstringyes—
namestringyes—0 to 80 characters.
slugstringyes—The address segment its links carry; unique among the owner's projects. 3 to 60 characters.
descriptionstringyes—0 to 140 characters. May be null.
coverobject or nullyes—
cover_item_idstringyes—May be null.
accessstringyes—private is the only access in this release. One of "private", "team".
rolestringyes—Your own role in the project. One of "owner", "admin", "collaborator", "viewer".
canstring[]yes—What your role lets you do here; anything else is refused role_forbidden.
countsobjectyes—
counts.itemsintegeryes—Every item not in the Trash.
counts.generationsintegeryes—
counts.uploadsintegeryes—
counts.elementsintegeryes—
counts.foldersintegeryes—
counts.trashedintegeryes—
limitsobjectyes—What it may hold: the figures in force of its OWNER's plan (studio.max_items, studio.max_canvases, studio.max_members), whoever reads it — each told only to a role that can add against it, null to every other reader. A figure moved lower refuses the next one past it (studio_limit_reached, whose max is the same number) and takes nothing away, so a count above it is a project that held more before.
limits.itemsintegeryes—Items it may hold, the Trash counted. Null unless your role may generate, upload or edit items. 1 to …. May be null.
limits.canvasesintegeryes—Canvases it may hold. Null unless your role may edit canvases. 1 to …. May be null.
limits.membersintegeryes—People it may seat, its owner counted. Null unless your role manages members. 1 to …. May be null.
planobjectyes—What its OWNER's plan lets happen in it, whoever reads it — each bit told only to a reader it binds, null to every other, as limits is. open false is a read-only project: its owner's plan does not include Cinema Studio, so nothing can be added or changed in it, and every such write answers studio_not_in_plan; opening and downloading everything, removing things and handing the project over still work, and can stays your role's list.
plan.openbooleanyes—Whether anything can be added or changed here: false in a read-only project. Null only to a reader who is no member. May be null.
plan.callsbooleanyes—Whether a call can be held here: its owner's plan includes Cinema Studio and calls, and seats a team. False, a join answers studio_not_in_plan. Null unless your role may join calls. May be null.
plan.publishbooleanyes—Whether the project may be published, or its publication updated: its owner's plan includes Cinema Studio and publishing. Withdrawing a publication never asks. Null unless you own it. May be null.
bytesintegeryes—What its kept files take, the Trash included — what deleting it frees.
created_atstringyes—
updated_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

#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
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