Skip to main content
Use this endpoint to retrieve all templates available to your team. The response includes both base templates (pre-built images provided by Wrenn) and snapshot templates (images you have created from running capsules). Use the name field from any returned template as the template parameter when creating a new capsule.

Endpoint

GET https://app.wrenn.dev/api/v1/snapshots

Authentication

X-API-Key
string
required
Your team’s API key. Pass the full wrn_... key value.

Query parameters

type
string
Filter templates by type. Accepted values: "base" (built-in images) or "snapshot" (team-created snapshots). Omit to return all templates.

Example requests

# List all templates
curl https://app.wrenn.dev/api/v1/snapshots \
  -H "X-API-Key: wrn_your_api_key_here"

# List only snapshot templates created by your team
curl "https://app.wrenn.dev/api/v1/snapshots?type=snapshot" \
  -H "X-API-Key: wrn_your_api_key_here"

Response

Returns 200 OK with an array of Template objects.
name
string
required
The template name. Pass this value as template when creating a capsule.
type
string
required
Either "base" (a built-in Wrenn image) or "snapshot" (created from a running capsule).
vcpus
integer
Number of vCPUs the template was captured with. May be null for base templates.
memory_mb
integer
Memory in MiB the template was captured with. May be null for base templates.
size_bytes
integer
Total size of the template files on disk, in bytes.
created_at
string
required
ISO 8601 timestamp of when the template was created.

Example response

[
  {
    "name": "minimal",
    "type": "base",
    "vcpus": null,
    "memory_mb": null,
    "size_bytes": 268435456,
    "created_at": "2024-01-01T00:00:00Z"
  },
  {
    "name": "my-template",
    "type": "snapshot",
    "vcpus": 2,
    "memory_mb": 1024,
    "size_bytes": 536870912,
    "created_at": "2024-11-01T10:00:00Z"
  }
]

Python SDK

from wrenn import WrennClient, Capsule

with WrennClient() as client:
    # List all templates
    templates = client.snapshots.list()
    for t in templates:
        print(t.name, t.type)

# Use a template name when creating a capsule
capsule = Capsule(template="my-template", wait=True)
The name field is what you pass as the template parameter in POST /v1/capsules. Base template names like "minimal" are always available; snapshot names are scoped to your team.