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

# Introduction

> A REST API over the same code that runs the A-Char dashboard.

The A-Char API gives your systems the same access to your HR data that the dashboard has.
Both run on one implementation, so an endpoint behaves identically whichever one calls it.

## Base URL

```
https://a-char.com/api/v1
```

Every path in this reference is relative to that.

## Your first request

```bash theme={null}
curl https://a-char.com/api/v1/departments \
  -H "Authorization: Bearer ak_..."
```

```json theme={null}
[
  {
    "id": "3eea98eb-807f-447a-b214-034a21cb40f9",
    "name": "Finance",
    "organization_id": "org_...",
    "created_at": "2026-01-30T13:58:45.684Z",
    "updated_at": "2026-01-30T13:58:45.636Z"
  }
]
```

## What a key can reach

A key belongs to a person and acts within one organization. Responses are limited to that
organization, and the key's [scopes](/authentication#scopes) decide which operations it may
perform. See [Authentication](/authentication) before you start.

## Methods

| Method   | Used for                                                   |
| -------- | ---------------------------------------------------------- |
| `GET`    | reading a collection or a single record                    |
| `POST`   | creating a record, and updating one at `/{id}`             |
| `DELETE` | removing a record at `/{id}`, or several at the collection |

## Versioning

The version is in the path. `v1` will not change in a breaking way — new fields may be added,
so ignore fields you do not recognize rather than failing on them.

## OpenAPI

The specification is generated from the running server, not written by hand, so it always
matches current behaviour. Feed it to a client generator rather than writing a client yourself:

```bash theme={null}
npx openapi-typescript https://a-char.com/api/openapi -o a-char.ts
```
