---
title: "Search templates"
method: GET
path: "/unstable/templates/search"
tags: ["unstable"]
---

# Search templates

`GET /unstable/templates/search`

## Request

- Base URL: `https://api.e2b.app`
- URL: `https://api.e2b.app/unstable/templates/search`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer and API key in header `X-Team-ID`
  - API key in header `X-Admin-Token` and API key in header `X-Team-ID`
  - HTTP bearer and API key in header `X-Team-ID`

Lists the team's templates together with the platform's public default templates, which carry `isDefault: true`, with search, a visibility filter and sorts. Default templates are not listed to teams on a dedicated cluster, and those owned by another team carry zero or null usage fields. Results are newest first unless `sort` says otherwise; `nextCursor` continues the listing and is only valid with the same `sort`. For E2B's own clients: it may change or disappear without notice.

## Query parameters

- `search` string
- `sort` 'created_at_desc' | 'created_at_asc' | 'updated_at_desc' | 'updated_at_asc'
- `public` boolean
- `limit` integer
- `cursor` string

## Response `200`

Successfully returned the templates

- TemplateSearchResponse
  - `data` Template[], required
    - `templateID` string, required: Identifier of the template
    - `buildID` string, required: Identifier of the last successful build for given template
    - `cpuCount` integer, required: CPU cores for the sandbox
    - `memoryMB` integer, required: Memory for the sandbox in MiB
    - `diskSizeMB` integer, required: Disk size for the sandbox in MiB
    - `public` boolean, required: Whether the template is public or only accessible by the team
    - `aliases` string[], required: Aliases of the template
    - `names` string[], required: Names of the template (namespace/alias format when namespaced)
    - `createdAt` string, date-time, required: Time when the template was created
    - `updatedAt` string, date-time, required: Time when the template was last updated
    - `createdBy` TeamUser, required
      - `id` string, uuid, required: Identifier of the user
      - `email` string, nullable, required: Email of the user
    - `lastSpawnedAt` string, date-time, nullable, required: Time when the template was last used
    - `spawnCount` integer, required: Number of times the template was used
    - `buildCount` integer, required: Number of times the template was built
    - `envdVersion` string, required: Version of the envd running in the sandbox
    - `buildStatus` 'building' | 'waiting' | 'ready' | 'error', required: Status of the template build
    - `isDefault` boolean: Whether the template is one of the platform's default templates. A default template owned by another team carries zero or null usage fields (`spawnCount`, `buildCount`, `lastSpawnedAt`, `createdBy`).
    - `description` string: Description of the template
  - `nextCursor` string, nullable, required: Cursor of the next page, or null on the last page

## Other responses

- `400`: Bad request
- `401`: Authentication error
- `429`: Too many requests
- `500`: Server error

## Changes

- **2026-10-26** `99fccbc60e6d`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/e2b-dev/apis/e2b-api/changes/unstable/templates/search/get.md)

---

[API](https://skmtc.dev/e2b-dev/apis/e2b-api.md) - [All operations](https://skmtc.dev/e2b-dev/apis/e2b-api/llms.txt) - [OpenAPI document](https://skmtc.dev/e2b-dev/apis/e2b-api/revisions/99fccbc60e6d?raw)
