Sprite Management

Sprites are persistent environments that hibernate when idle and wake automatically on demand. You only pay for compute while actively using them—storage persists indefinitely.

Create Sprites for development environments, CI runners, code execution sandboxes, or any workload that benefits from fast startup with preserved state. Each Sprite gets a unique URL for HTTP access, configurable as public or authenticated.

Create Sprite

POST /v1/sprites

Create a new sprite with a unique name in your organization

Request Body

application/json
name* string

Unique name for the sprite within the organization

wait_for_capacity boolean

If true, wait for VM capacity before returning (default: false)

url_settings

URL access configuration

auth "sprite" | "public"

Authentication type (default: sprite)

Response

application/json
id* string

Unique sprite identifier (UUID)

name* string

Sprite name within the organization

organization* string

Organization slug

url* string

Sprite HTTP endpoint URL

url_settings

URL access configuration

auth* "sprite" | "public"

Authentication type

status* "cold" | "warm" | "running"

Runtime status

created_at* string

Creation timestamp (ISO 8601)

updated_at* string

Last update timestamp (ISO 8601)

Response Codes

201

Created

400

Invalid request parameters

401

Missing or invalid authentication

bash
curl -X POST \
  "https://api.sprites.dev/v1/sprites" \
  -H "Authorization: Bearer $SPRITES_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name":"my-sprite","url_settings":{"auth":"public"},"wait_for_capacity":false}'
200 Response
{
  "id": "01234567-89ab-cdef-0123-456789abcdef",
  "name": "my-dev-sprite",
  "status": "cold",
  "url": "https://my-dev-sprite.sprites.dev",
  "updated_at": "2024-01-15T14:22:00Z",
  "created_at": "2024-01-15T10:30:00Z",
  "organization": "my-org",
  "url_settings": {
    "auth": "sprite"
  }
}

List Sprites

GET /v1/sprites

List all sprites for the authenticated organization

Query Parameters

prefix string

Filter sprites by name prefix

max_results number

Maximum number of results (1-50, default: 50)

continuation_token string

Token from previous response for pagination

Response

application/json
sprites* SpriteEntry[]

List of sprite entries

name* string

Sprite name

org_slug* string

Organization slug

updated_at string

Last update timestamp (ISO 8601)

has_more* boolean

Whether more results are available

next_continuation_token string

Token for fetching the next page of results

Response Codes

200

Success

401

Missing or invalid authentication

bash
curl -X GET \
  "https://api.sprites.dev/v1/sprites" \
  -H "Authorization: Bearer $SPRITES_TOKEN"
200 Response
{
  "sprites": [
    {
      "name": "my-dev-sprite",
      "updated_at": "2024-01-15T14:22:00Z",
      "org_slug": "my-org"
    }
  ],
  "next_continuation_token": "eyJsYXN0IjoibXktZGV2LXNwcml0ZSJ9",
  "has_more": true
}

Get Sprite

GET /v1/sprites/{name}

Get details for a specific sprite

Path Parameters

name* string

Unique sprite name

Response

application/json
id* string

Unique sprite identifier (UUID)

name* string

Sprite name within the organization

organization* string

Organization slug

url* string

Sprite HTTP endpoint URL

url_settings

URL access configuration

auth* "sprite" | "public"

Authentication type

status* "cold" | "warm" | "running"

Runtime status

created_at* string

Creation timestamp (ISO 8601)

updated_at* string

Last update timestamp (ISO 8601)

Response Codes

200

Success

401

Missing or invalid authentication

404

Sprite not found

bash
curl -X GET \
  "https://api.sprites.dev/v1/sprites/{name}" \
  -H "Authorization: Bearer $SPRITES_TOKEN"
200 Response
{
  "id": "01234567-89ab-cdef-0123-456789abcdef",
  "name": "my-dev-sprite",
  "status": "cold",
  "url": "https://my-dev-sprite.sprites.dev",
  "updated_at": "2024-01-15T14:22:00Z",
  "created_at": "2024-01-15T10:30:00Z",
  "organization": "my-org",
  "url_settings": {
    "auth": "sprite"
  }
}

Destroy Sprite

DELETE /v1/sprites/{name}

Delete a sprite and all associated resources

Path Parameters

name* string

Unique sprite name

Response

application/json

Response Codes

204

No content

401

Missing or invalid authentication

404

Sprite not found

bash
curl -X DELETE \
  "https://api.sprites.dev/v1/sprites/{name}" \
  -H "Authorization: Bearer $SPRITES_TOKEN"
200 Response

Update Sprite

PUT /v1/sprites/{name}

Update sprite settings such as URL authentication

Path Parameters

name* string

Unique sprite name

Request Body

application/json
url_settings*

URL access configuration to update

auth "sprite" | "public"

Authentication type (default: sprite)

Response

application/json
id* string

Unique sprite identifier (UUID)

name* string

Sprite name within the organization

organization* string

Organization slug

url* string

Sprite HTTP endpoint URL

url_settings

URL access configuration

auth* "sprite" | "public"

Authentication type

status* "cold" | "warm" | "running"

Runtime status

created_at* string

Creation timestamp (ISO 8601)

updated_at* string

Last update timestamp (ISO 8601)

Response Codes

200

Success

400

Invalid request parameters

401

Missing or invalid authentication

404

Sprite not found

bash
curl -X PUT \
  "https://api.sprites.dev/v1/sprites/{name}" \
  -H "Authorization: Bearer $SPRITES_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"url_settings":{"auth":"public"}}'
200 Response
{
  "id": "01234567-89ab-cdef-0123-456789abcdef",
  "name": "my-dev-sprite",
  "status": "cold",
  "url": "https://my-dev-sprite.sprites.dev",
  "updated_at": "2024-01-15T14:22:00Z",
  "created_at": "2024-01-15T10:30:00Z",
  "organization": "my-org",
  "url_settings": {
    "auth": "sprite"
  }
}