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

# API Introduction

> Build powerful integrations with the Mavio API. Access meetings, transcripts, summaries, and action items programmatically.

## Overview

The Mavio API gives you programmatic access to your meeting data. You can retrieve recordings, search transcripts, pull summaries, manage action items, and receive real-time webhook notifications when events occur.

All API requests are made to the following base URL:

```
https://api.mavioapp.com/v1
```

## Versioning

The API is versioned via the URL path. The current version is `v1`. When breaking changes are introduced, a new version will be released (e.g., `/v2`). Non-breaking additions such as new fields or endpoints will be added to the current version without a version bump.

We will always provide at least 12 months of overlap when deprecating a version, and you will be notified via email and the [developer changelog](https://mavioapp.com/changelog).

## Request format

All request bodies must be sent as JSON with the `Content-Type: application/json` header. Query parameters should be URL-encoded.

```bash theme={null}
curl https://api.mavioapp.com/v1/meetings \
  -H "Authorization: Bearer mvo_live_abc123" \
  -H "Content-Type: application/json"
```

## Response format

All responses are returned as JSON. Successful responses include the data directly or wrapped in a `data` array for list endpoints. Every list endpoint supports pagination via `limit` and `offset` parameters.

```json Successful response theme={null}
{
  "data": [...],
  "pagination": {
    "total": 142,
    "limit": 20,
    "offset": 0,
    "has_more": true
  }
}
```

```json Error response theme={null}
{
  "error": {
    "code": "not_found",
    "message": "Meeting with ID mtg_xyz789 was not found.",
    "request_id": "req_abc123def456"
  }
}
```

## SDKs

Official client libraries are available for the following languages:

<CardGroup cols={3}>
  <Card title="Python" icon="python" href="https://github.com/mavioapp/mavio-python">
    ```bash theme={null}
    pip install mavio-ai
    ```
  </Card>

  <Card title="Node.js" icon="node-js" href="https://github.com/mavioapp/mavio-node">
    ```bash theme={null}
    npm install @mavio-ai/sdk
    ```
  </Card>

  <Card title="Go" icon="golang" href="https://github.com/mavioapp/mavio-go">
    ```bash theme={null}
    go get github.com/mavioapp/mavio-go
    ```
  </Card>
</CardGroup>

### Quick example

<CodeGroup>
  ```python Python theme={null}
  import mavio

  client = mavio.Client(api_key="mvo_live_abc123")

  meetings = client.meetings.list(limit=10)
  for meeting in meetings.data:
      print(f"{meeting.title} — {meeting.started_at}")
  ```

  ```javascript Node.js theme={null}
  import Mavio from '@mavio-ai/sdk';

  const client = new Mavio({ apiKey: 'mvo_live_abc123' });

  const { data: meetings } = await client.meetings.list({ limit: 10 });
  meetings.forEach(m => console.log(`${m.title} — ${m.started_at}`));
  ```

  ```go Go theme={null}
  package main

  import (
      "fmt"
      mavio "github.com/mavioapp/mavio-go"
  )

  func main() {
      client := mavio.NewClient("mvo_live_abc123")
      meetings, _ := client.Meetings.List(&mavio.ListParams{Limit: 10})
      for _, m := range meetings.Data {
          fmt.Printf("%s — %s\n", m.Title, m.StartedAt)
      }
  }
  ```
</CodeGroup>

## Support

If you encounter issues or have questions about the API, reach out via:

* **Email**: [api-support@mavioapp.com](mailto:api-support@mavioapp.com)
* **Discord**: [discord.gg/mavio](https://discord.gg/mavio) in the `#api-developers` channel
* **Status page**: [status.mavioapp.com](https://status.mavioapp.com)
