Skip to main content
POST
/
boxes
Create box
curl --request POST \
  --url https://ascii.dev/api/box/v1/boxes \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "ttlSeconds": 3600
}
'
{
  "ok": true,
  "type": "box.created",
  "status": "provisioning",
  "ttlSeconds": 3600,
  "box": {
    "id": "bx_23456789",
    "name": "Box 2026-05-31 12:00",
    "state": "provisioning",
    "url": null,
    "ip": null,
    "createdAt": "2026-05-31T12:00:00Z",
    "updatedAt": "2026-05-31T12:00:00Z",
    "archiveAfter": "2026-05-31T13:00:00Z",
    "desktopAvailable": false,
    "desktopUrl": null,
    "snapshotAvailable": false,
    "snapshotCompletedAt": null
  }
}

Authorizations

Authorization
string
header
required

Box API key in the form box_.... Create and rotate keys in the Box dashboard or through the v1 API key endpoints.

Body

application/json

Options for provisioning a new cloud computer.

ttlSeconds
integer | null
default:3600

Number of seconds before automatic archival. null disables auto-stop. The backend also accepts the string infinite for legacy compatibility; new clients should send null.

Required range: 1 <= x <= 2592000

Response

Box accepted for provisioning.

ok
boolean
required
Example:

true

type
string
required

Stable success envelope discriminator added by v1.

Allowed value: "box.created"
status
enum<string>
required
Available options:
provisioning
ttlSeconds
integer | null
required
box
object
required