# Betula API

**Canonical:** https://apis.io/apis/betula/betula-api/  
**Provider:** Betula — https://apis.io/providers/betula/  
**Base URL:** https://hub.docker.com  
**Documentation:** https://docs.docker.com/reference/dockerfile

Betula API is one of 2 APIs that [Betula](https://apis.io/providers/betula/) publishes on the [APIs.io](https://apis.io/) network, described by a machine-readable OpenAPI specification. The published artifact set on APIs.io includes an OpenAPI specification.

Betula API as documented publicly: 137 operations. Contract generated from the documentation by API Evangelist (2026-10-28); not the provider's own document.

## Operations (60 of 137)

| Method | Path | Summary |
|---|---|---|
| GET | `/` | GET / |
| GET | `/namespaces` | Get user's namespaces |
| GET | `/namespaces/{namespace}` | Get namespace |
| GET | `/namespaces/{namespace}/pulls` | Get pull data |
| GET | `/namespaces/{namespace}/pulls/exports/years` | Get years with data |
| GET | `/namespaces/{namespace}/pulls/exports/years/{year}/{timespantype}` | Get timespans with data |
| GET | `/namespaces/{namespace}/pulls/exports/years/{year}/{timespantype}/{timespan}` | Get namespace metadata for timespan |
| GET | `/namespaces/{namespace}/pulls/exports/years/{year}/{timespantype}/{timespan}/{dataview}` | Get namespace data for timespan |
| GET | `/namespaces/{namespace}/repos/{repo}/pulls` | Get pull data |
| GET | `/repos/pulls` | Get pull data for multiple repos |
| GET | `/token` | GET /token |
| GET | `/user/repo.git/mydir/You` | GET /user/repo.git/mydir/You |
| DELETE | `/v1/files` | Remove deletes a path. |
| GET | `/v1/files` | List lists directory entries by path ascending. |
| GET | `/v1/files/content` | ReadFile returns raw file content over HTTP; Stat exposes file metadata. |
| PUT | `/v1/files/content` | WriteFile accepts raw content with path and mode query parameters. |
| PUT | `/v1/files/directories` | Mkdir creates a directory. |
| GET | `/v1/files/download` | Download streams file headers, bytes, and per-file errors. |
| POST | `/v1/files/move` | Move renames or moves a path. |
| GET | `/v1/files/stat` | Stat reads metadata for one path. |
| POST | `/v1/files/upload` | Upload streams one or more files. |
| POST | `/v1/identity/exchange` | ExchangeDockerCredential consumes an identity token once for the authenticated owner. |
| GET | `/v1/images` | ListImages lists images in the caller's owner scope. |
| POST | `/v1/images` | CreateImage registers pushed OCI content or disk content derived from a snapshot or sandbox. |
| DELETE | `/v1/images/{image}` | DeleteImage deletes an image; deleting an already absent image succeeds. |
| GET | `/v1/images/{image}` | GetImage reads one image by its resource name. |
| GET | `/v1/images/{image}/pull-spec` | GetImagePullSpec returns short-lived pull material through registry-transfer support. |
| GET | `/v1/mcp-servers/{mcpserver}/authorization` | GetMcpAuthorization reads the owner-scoped flow, including its pending URL, under mcp.write. |
| POST | `/v1/mcp-servers/{mcpserver}/authorization/authorize` | AuthorizeMcpServer authorizes credentials for one named upstream. |
| GET | `/v1/network-policies` | GetNetworkPolicies returns effective and exact views of the same installed generation. |
| GET | `/v1/policy-logs` | ListPolicyLogEntries lists observed policy decisions. |
| GET | `/v1/processes` | ListProcesses lists processes in creation order. |
| POST | `/v1/processes` | CreateProcess starts a durable interactive process and returns its resource name. |
| POST | `/v1/processes/exec` | Exec runs one command to completion. |
| GET | `/v1/processes/{process}` | GetProcess reads one process by its endpoint-scoped resource name. |
| GET | `/v1/processes/{process}/interact` | Interact binds the complete process name from the path to the first Attach frame. |
| GET | `/v1/processes/{process}/output` | ReadOutput returns one page of retained output after a stream_sequence, the same cursor Interact resumes from, so a REST client can read what a process printed. |
| POST | `/v1/processes/{process}/signal` | Signal sends one signal to an existing process. |
| GET | `/v1/sandboxes` | ListSandboxes lists sandboxes in the caller's owner scope. |
| POST | `/v1/sandboxes` | CreateSandbox admits a sandbox. |
| DELETE | `/v1/sandboxes/{sandbox}` | DeleteSandbox returns the deleting resource while work remains, or an empty message when absent. |
| GET | `/v1/sandboxes/{sandbox}` | GetSandbox reads one sandbox by its resource name. |
| PATCH | `/v1/sandboxes/{sandbox}` | UpdateSandbox changes only the display label under the observed etag. |
| POST | `/v1/sandboxes/{sandbox}/endpoint-credentials` | CreateEndpointCredential grants short-lived access to one sandbox endpoint. |
| GET | `/v1/sandboxes/{sandbox}/mcp-gateway` | GetMcpGateway reads gateway state for the sandbox. |
| POST | `/v1/sandboxes/{sandbox}/mcp-gateway/servers` | AddMcpGatewayServer adds one server to an existing ready gateway. |
| GET | `/v1/sandboxes/{sandbox}/network-policies` | GetNetworkPolicies returns effective and exact views of the same installed generation. |
| GET | `/v1/sandboxes/{sandbox}/policy-logs` | ListPolicyLogEntries lists observed policy decisions. |
| GET | `/v1/sandboxes/{sandbox}/ports` | ListPorts lists currently published ports for one sandbox. |
| POST | `/v1/sandboxes/{sandbox}/ports` | CreatePort makes one sandbox port reachable outside the sandbox. |
| DELETE | `/v1/sandboxes/{sandbox}/ports/{port}` | DeletePort withdraws one published port. |
| GET | `/v1/sandboxes/{sandbox}/ports/{port}` | GetPort reads one published port by its resource name. |
| POST | `/v1/sandboxes/{sandbox}/renew-timeout` | RenewSandboxTimeout sets a TTL when timeout renewal is supported. |
| POST | `/v1/sandboxes/{sandbox}/snapshots` | CreateSnapshot checkpoints a running sandbox; a stopped source is rejected. |
| POST | `/v1/sandboxes/{sandbox}/ssh-certificates` | IssueSSHCert signs a caller-held public key for sandbox SSH access. |
| POST | `/v1/sandboxes/{sandbox}/start` | StartSandbox starts a stopped sandbox; a backend that preserved memory resumes it. |
| POST | `/v1/sandboxes/{sandbox}/stop` | StopSandbox stops a running sandbox; a backend advertising memory preservation hibernates it. |
| GET | `/v1/secrets` | ListSecrets lists secret metadata in the caller's owner scope. |
| POST | `/v1/secrets` | CreateSecret stores new secret material. |
| DELETE | `/v1/secrets/{secret}` | DeleteSecret deletes a secret; deleting an already absent secret succeeds. |

…and 77 more operations. They are listed in full on the page.

## Machine-readable artifacts (1)

- **OpenAPI** — https://artifacts.apis.io/betula/openapi/_ae-authored/betula-openapi-generated.yml

## Other Betula APIs (1)

- [Betula API](https://apis.io/apis/betula/betula-api-2/)

---

Profiled by [API Evangelist](https://apievangelist.com) and published on [APIs.io](https://apis.io/apis/betula/betula-api/). The API's provider profile, Kin Score and agent-readiness rating are at https://apis.io/providers/betula/.
