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

# Common endpoints

> Quick reference for the endpoints most users hit, with SDK wrapper mappings.

A curated set of the API endpoints most users will touch, grouped by surface area. The middle column shows the SDK wrapper — if it's `—`, the endpoint is REST-only (use `httpx` directly).

<Note>
  This is a curated subset for quick reference, not a complete listing. The full surface is available in the **API Reference** tab to the left and in the underlying [OpenAPI spec](/openapi.json). For SDK wrappers, see also [Frameworks](/sdk/python/frameworks).
</Note>

## Traces

| Method | Path                        | SDK wrapper                            | Description                   |
| ------ | --------------------------- | -------------------------------------- | ----------------------------- |
| `POST` | `/api/v1/traces`            | `decimalai.send()` (auto via `@trace`) | Ingest a trace                |
| `POST` | `/api/v1/traces/batch`      | —                                      | Ingest a batch of traces      |
| `GET`  | `/api/v1/traces`            | —                                      | List traces                   |
| `GET`  | `/api/v1/traces/{trace_id}` | —                                      | Get a trace                   |
| `GET`  | `/api/v1/traces/stats`      | —                                      | Aggregate stats across traces |

## Evaluations

| Method | Path                                       | SDK wrapper                              | Description                             |
| ------ | ------------------------------------------ | ---------------------------------------- | --------------------------------------- |
| `POST` | `/api/v1/traces/{trace_id}/eval-scores`    | `eval()` / `score()` / `push_*_scores()` | Push external evaluation scores         |
| `GET`  | `/api/v1/traces/{trace_id}/eval-scores`    | —                                        | Get all evaluation scores for a trace   |
| `GET`  | `/api/v1/traces/{trace_id}/eval-breakdown` | `get_eval_breakdown()`                   | Get full eval breakdown with provenance |
| `GET`  | `/api/v1/traces/eval/stats`                | —                                        | Eval rollup stats                       |
| `POST` | `/api/v1/traces/{trace_id}/evaluate`       | —                                        | Run evaluators on a trace               |
| `POST` | `/api/v1/traces/{trace_id}/decision`       | —                                        | Compute unified verdict for a trace     |
| `POST` | `/api/v1/traces/batch-decision`            | —                                        | Batch compute unified verdicts          |

## Replay

| Method | Path                                    | SDK wrapper              | Description                 |
| ------ | --------------------------------------- | ------------------------ | --------------------------- |
| `POST` | `/api/v1/replay/batches`                | `create_replay_batch()`  | Create a replay batch       |
| `GET`  | `/api/v1/replay/batches/{batch_id}`     | `get_replay_batch()`     | Get a replay batch          |
| `GET`  | `/api/v1/replay/export`                 | `get_replay_prompts()`   | Export replay prompts       |
| `POST` | `/api/v1/replay/tasks/{task_id}/submit` | `submit_replay_result()` | Submit a replay task result |

## Skills

| Method   | Path                                            | SDK wrapper                    | Description                                       |
| -------- | ----------------------------------------------- | ------------------------------ | ------------------------------------------------- |
| `GET`    | `/api/v1/skills`                                | `SkillRouter.list_skills()`    | List skills                                       |
| `POST`   | `/api/v1/skills`                                | `SkillRouter.create_skill()`   | Create a skill                                    |
| `GET`    | `/api/v1/skills/{skill_name}`                   | `SkillRouter.get_skill()`      | Get a skill by name                               |
| `PUT`    | `/api/v1/skills/{skill_id}`                     | `SkillRouter.update_skill()`   | Update a skill                                    |
| `DELETE` | `/api/v1/skills/{skill_id}`                     | `SkillRouter.delete_skill()`   | Delete a skill (soft-delete)                      |
| `GET`    | `/api/v1/skills/{skill_name}/versions`          | `SkillRouter.list_versions()`  | List versions of a skill                          |
| `POST`   | `/api/v1/skills/sync`                           | `SkillRouter.sync_skills()`    | Bulk-upsert skills from local files               |
| `GET`    | `/api/v1/skills/menu`                           | `SkillRouter.get_menu()`       | Get the skill menu (Free tier)                    |
| `POST`   | `/api/v1/skills/route`                          | `SkillRouter.smart_route()`    | Smart-route a query to the best skill (Free tier) |
| `GET`    | `/api/v1/skills/export`                         | `SkillRouter.export_to_disk()` | Export org skills with full content               |
| `POST`   | `/api/v1/skills/{skill_name}/benchmark/run`     | —                              | Run an A/B benchmark for a skill                  |
| `GET`    | `/api/v1/skills/{skill_name}/benchmark/results` | —                              | Get benchmark results for a skill                 |

## Manifests

| Method | Path                              | SDK wrapper           | Description         |
| ------ | --------------------------------- | --------------------- | ------------------- |
| `GET`  | `/api/v1/manifests`               | —                     | List manifests      |
| `GET`  | `/api/v1/manifests/{manifest_id}` | —                     | Get a manifest      |
| `POST` | `/api/v1/manifests`               | `register_manifest()` | Register a manifest |

## Datasets

| Method | Path                                                         | SDK wrapper                            | Description                             |
| ------ | ------------------------------------------------------------ | -------------------------------------- | --------------------------------------- |
| `GET`  | `/api/v1/datasets`                                           | —                                      | List datasets                           |
| `POST` | `/api/v1/datasets`                                           | —                                      | Create a dataset                        |
| `GET`  | `/api/v1/datasets/{dataset_id}`                              | —                                      | Get a dataset                           |
| `POST` | `/api/v1/datasets/{dataset_id}/build`                        | —                                      | Build a new dataset version from traces |
| `GET`  | `/api/v1/datasets/{dataset_id}/versions/{version_id}/export` | `pull_dataset()` / `load_hf_dataset()` | Export a dataset version                |

## Agents

| Method | Path             | SDK wrapper | Description |
| ------ | ---------------- | ----------- | ----------- |
| `GET`  | `/api/v1/agents` | —           | List agents |

## Registry

| Method | Path                                      | SDK wrapper | Description                                                               |
| ------ | ----------------------------------------- | ----------- | ------------------------------------------------------------------------- |
| `GET`  | `/api/v1/registry/skills`                 | —           | Browse the public skills registry                                         |
| `GET`  | `/api/v1/registry/skills/{skill_id}`      | —           | Get a registry skill                                                      |
| `POST` | `/api/v1/registry/skills/{skill_id}/fork` | —           | Fork a registry skill into your workspace (alias: `/install`, deprecated) |
| `POST` | `/api/v1/registry/skills/{skill_id}/rate` | —           | Rate a registry skill                                                     |

## Import

| Method | Path                         | SDK wrapper | Description                       |
| ------ | ---------------------------- | ----------- | --------------------------------- |
| `POST` | `/api/v1/traces/import-bulk` | —           | Bulk-import historical traces     |
| `POST` | `/api/v1/traces/import`      | —           | Import traces from a JSONL upload |

## REST-only helpers

Endpoints marked `—` don't yet have a top-level SDK wrapper. Call them with `httpx` against the REST API:

```python theme={null}
import httpx

resp = httpx.get(
    "https://api.decimal.ai/api/v1/datasets",
    headers={"Authorization": "Bearer dai_sk_..."},
)
resp.raise_for_status()
```

See [Authentication](/api-reference/authentication) for token formats and scopes.
