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

# Overview

> Base URL, conventions, versioning, and the 23-operation surface.

## Base URL

| Environment | URL                          |
| ----------- | ---------------------------- |
| Local       | `http://localhost:8090/v1`   |
| Production  | `https://api.lavendly.ai/v1` |

All paths in this reference are relative to that base.

## Conventions

* **JSON only.** Both directions, UTF-8.
* **Errors** use a single standardized envelope: `{ error: { code, message, ...extra } }`. See [Errors](/api-reference/errors).
* **Idempotency** is opt-in via the `Idempotency-Key` header on POSTs that
  cost money or create entities. Same key within 5 min → same response.
* **Versioning** is in the path (`/v1`). Breaking changes get a new prefix;
  additive changes (new endpoint, new optional field) ship in `/v1`.

## The 23 operations

The server exposes a self-describing catalog at
[`GET /v1/_schema`](/api-reference/status-and-schema), fetch it once,
discover every operation, body shape, and idempotency flag.

<AccordionGroup>
  <Accordion title="Workflow CRUD (5)" icon="folder">
    `list_workflows`, `get_workflow`, `create_workflow`, `update_workflow`, `delete_workflow`
  </Accordion>

  <Accordion title="Audio model (5)" icon="waveform">
    `get_workflow_audio`, `set_clip_native_audio`, `attach_track`, `update_track`, `detach_track`
  </Accordion>

  <Accordion title="Renders (4)" icon="film">
    `create_render`, `get_render`, `list_renders`, `list_all_renders`
  </Accordion>

  <Accordion title="Ledger (4)" icon="coins">
    `get_ledger`, `reserve_credits`, `commit_reserve`, `refund_reserve`
  </Accordion>

  <Accordion title="Telemetry & introspection (5)" icon="chart-line">
    `get_monthly_usage`, `get_top_spenders`, `get_status`, `get_schema`, `update_render` (canvas-only)
  </Accordion>
</AccordionGroup>
