> ## Documentation Index
> Fetch the complete documentation index at: https://developers.essal.cloud/llms.txt
> Use this file to discover all available pages before exploring further.

# Quickstart

> Deploy Essal and make your first authenticated API request in under 10 minutes.

This guide walks you through deploying a local Essal instance, generating an API key, and querying your first resource from the Essal Office app.

## Prerequisites

* Docker and Docker Compose installed on your machine
* An Essal account at [admin.essal.cloud](https://admin.essal.cloud)
* `curl` or an HTTP client of your choice

## 1. Deploy Locally

Pull the official Essal stack and start all services with a single command:

```bash theme={null}
curl -sL https://get.essal.cloud | bash
docker compose up -d
```

Once running, the platform is accessible at `http://localhost:8080`. The admin dashboard is available at `http://localhost:8080/admin`.

<Note>
  The default compose stack starts all six apps (Office, Access, Sales, Careers, Project, Guard) on shared infrastructure. Individual apps can be disabled in `essal.config.yml`.
</Note>

## 2. Create a Workspace

On first launch, Essal prompts you to create a **Workspace** — the top-level container for all your apps and data. Enter a workspace slug (e.g. `acme-corp`) and an admin email.

## 3. Generate an API Key

1. Open the admin dashboard at `http://localhost:8080/admin`
2. Navigate to **Settings → Developer → API Keys**
3. Click **Create API Key**, give it a name like `quickstart-key`, and select the `read:all` scope
4. Copy the key — it will only be shown once

## 4. Make Your First Request

List all documents in the Office app:

```bash theme={null}
curl -X GET https://api.essal.cloud/v1/office/documents \
  -H "X-API-Key: esk_live_xxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json"
```

A successful response looks like this:

```json theme={null}
{
  "data": [
    {
      "id": "doc_01HXYZ9ABC",
      "title": "Q3 Strategy Overview",
      "owner_id": "usr_01HXYZ1234",
      "created_at": "2026-06-01T09:00:00Z",
      "updated_at": "2026-06-15T14:22:00Z"
    }
  ],
  "meta": {
    "total": 1,
    "page": 1,
    "per_page": 20
  }
}
```

## 5. What's Next?

<CardGroup cols={2}>
  <Card title="Authentication" icon="key" href="/getting-started/authentication">
    Learn about OAuth 2.0 flows and API key scoping.
  </Card>

  <Card title="Environments" icon="server" href="/getting-started/environments">
    Understand sandbox, staging, and production environments.
  </Card>

  <Card title="Platform Concepts" icon="brain" href="/concepts/workspace">
    Dive into workspaces, apps, and the shared data model.
  </Card>

  <Card title="API Reference" icon="code" href="/api-reference/overview">
    Browse all endpoints across every app.
  </Card>
</CardGroup>
