---
title: API overview
description: Base URL, authentication and the APIs in this reference.
url: https://hexelstudio.com/docs/api/introduction
---

The reference covers two HTTP APIs. Every endpoint page lists its parameters and response fields, and shows a request in cURL, TypeScript and Python.

<CardGroup cols={2}>
  <Card title="Compute API" icon="cpu" href="https://hexelstudio.com/docs/api/compute/vms">
    On-demand Agent VMs: pre-warmed execution environments for AI agents, with a skills registry, code execution and deployments.
  </Card>
  <Card title="Agent Registry API" icon="library" href="https://hexelstudio.com/docs/api/registry/agents">
    The agent catalog shared by Compute and Orchestrator: agents, their capabilities, and tools.
  </Card>
</CardGroup>

## Base URL

Both APIs are served from one host. Paths start with the API's prefix.

| API | Base URL | Paths |
| --- | --- | --- |
| Compute | `https://compute.hexelstudio.com` | `/compute/v1/...` |
| Agent Registry | `https://compute.hexelstudio.com` | `/registry/v1/...` |

## Authentication

Endpoints that need authentication list an `Authorization` header on their page. The value is an STS access token: get one by calling `POST https://sts.hexelstudio.com/token` with your key in the `X-API-Key` header, then send it as `Bearer <token>`.

```bash
curl --request GET \
  --url 'https://compute.hexelstudio.com/compute/v1/vms' \
  --header "Authorization: Bearer $ACCESS_TOKEN"
```

<Note>
  The examples read the token from an `ACCESS_TOKEN` environment variable. Never commit a token or paste it into a shared document.
</Note>

## Requests and responses

Request and response bodies are JSON. Send `Content-Type: application/json` with every request that has a body. When something fails, the response carries a JSON error object; see [Errors](https://hexelstudio.com/docs/api/errors).

## About this reference

The endpoint pages are generated from the OpenAPI specs listed in `docs.config.ts`; see [API reference generation](https://hexelstudio.com/docs/reference/api-reference). Each resource page links to the spec its API was built from, at `/docs/openapi/<id>.json`. Example values come from the spec's own examples where it has them, and otherwise are placeholders built from each field's type.
