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

# API Overview

> Programmatic access to your Exec workspace

The Exec API provides programmatic access to your workspace data. Use it to integrate Exec with your internal tools, build custom dashboards, automate training workflows, or power AI agents that manage your enablement programs.

## What You Can Do

<CardGroup cols={2}>
  <Card title="Practice Data" icon="chart-line">
    Pull roleplay session data with scores, transcripts, and evaluation feedback
  </Card>

  <Card title="Skills & Proficiency" icon="head-side-gear">
    Track skill proficiency across your team with time-decay weighted scoring
  </Card>

  <Card title="Assignments" icon="clipboard-check">
    Monitor assignment status, completion, and scores
  </Card>

  <Card title="Scenario Analytics" icon="chart-bar">
    Get aggregate performance metrics, participant tables, and rank distributions
  </Card>

  <Card title="Collections" icon="folder">
    List collections and filter scenarios by collection
  </Card>

  <Card title="Scenario Management" icon="circle-play">
    List scenarios, filter by skill, check access, and assign to users
  </Card>

  <Card title="Scenario Studio" icon="wand-magic-sparkles">
    Create scenarios programmatically or via interactive sessions
  </Card>

  <Card title="Workspace Data" icon="building">
    Access members, groups, and workspace configuration
  </Card>
</CardGroup>

## Base URL

All API requests use the following base URL:

```
https://api.exec.com/rest/v1/
```

## Authentication

Every request requires an API key in the `Authorization` header:

```bash theme={null}
Authorization: Bearer exec_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
```

<Card title="Get Started with Authentication" icon="key" href="/api-reference/authentication">
  Learn how to create and use API keys
</Card>

## Response Format

All responses are JSON. List endpoints return paginated data:

```json theme={null}
{
  "data": [...],
  "pagination": {
    "page": 1,
    "page_size": 50,
    "total_count": 128,
    "total_pages": 3
  }
}
```

Errors return appropriate HTTP status codes with structured error information:

```json theme={null}
{
  "error": {
    "type": "invalid_request",
    "code": "user_not_found",
    "message": "No user found with email: unknown@example.com"
  }
}
```

## Rate Limits

API requests are rate-limited to ensure service stability:

* **Burst limit**: 60 requests per minute
* **Sustained limit**: 1,000 requests per day
* **Scenario creation**: 10 requests per minute (higher cost operations)

Rate-limited responses return `429` with a `retry_after` field indicating when to retry.

## Filtering Tips

Most analytics endpoints accept these common filters:

* **`user_ids`** / **`user_emails`** — filter by specific users (emails are resolved server-side)
* **`group_ids`** — filter by workspace group membership
* **`scenario_ids`** / **`collection_ids`** — filter by specific scenarios or collections
* **`skill_ids`** — filter by skills evaluated
* **`start_date`** / **`end_date`** — filter by date range (ISO 8601)

All ID parameters accept UUIDs (the same IDs returned by list endpoints).

## Coming Soon

We're actively expanding the API. Planned additions include:

* Program management and reporting
* Webhook integrations for real-time events
* Call scoring data

Contact us at [hello@exec.com](mailto:hello@exec.com) if you have specific API needs.
