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

# API Overview

> Access your Zudo workspace programmatically using the REST API.

The Zudo API lets you read and create data in your workspace from any application or script. Use it to sync accounts from an external system, programmatically create requests, pull meeting data into your own reporting, or integrate Zudo into automated workflows.

**Base URL:** `https://zudo.so/api/v1`

## What you can do

<CardGroup cols={2}>
  <Card title="Accounts" icon="building" href="/api-reference/accounts">
    List, retrieve, and create customer accounts.
  </Card>

  <Card title="Requests" icon="clipboard" href="/api-reference/requests">
    List, retrieve, and create feature requests.
  </Card>

  <Card title="Meetings" icon="calendar" href="/api-reference/meetings">
    List, retrieve, and create meetings.
  </Card>

  <Card title="Tasks" icon="check" href="/api-reference/tasks">
    List, retrieve, and create tasks.
  </Card>

  <Card title="Contacts" icon="address-book" href="/api-reference/contacts">
    List and create contacts.
  </Card>

  <Card title="Emails & Issues" icon="envelope" href="/api-reference/conversations">
    Access email threads, messages, and linked issues.
  </Card>
</CardGroup>

## Authentication

See [Authentication](/api-reference/authentication) for how to generate an API key and include it in your requests.

## Rate limits

The API enforces per-key rate limits. The response headers on every API call include:

| Header                  | Description                                |
| ----------------------- | ------------------------------------------ |
| `X-RateLimit-Limit`     | Your per-minute request quota              |
| `X-RateLimit-Remaining` | Requests remaining in the current window   |
| `X-RateLimit-Reset`     | Seconds until the rate limit window resets |

If you exceed the limit, the API returns `429 Too Many Requests`. Wait for the window to reset before retrying.

## Pagination

All list endpoints return paginated results. The response includes a `pagination` object:

```json theme={null}
{
  "data": [...],
  "pagination": {
    "page": 1,
    "pageSize": 25,
    "total": 142,
    "totalPages": 6,
    "hasNextPage": true,
    "hasPrevPage": false
  }
}
```

Use the `page` and `pageSize` query parameters to navigate pages. `pageSize` defaults to 25 and has a maximum of 100.

## Error responses

All errors return a JSON object with an `error` field:

```json theme={null}
{ "error": "Account not found" }
```

| Status | Meaning                                                                |
| ------ | ---------------------------------------------------------------------- |
| `400`  | Bad request — missing or invalid parameters                            |
| `401`  | Unauthorized — missing or invalid API key                              |
| `404`  | Not found — the requested resource doesn't exist                       |
| `405`  | Method not allowed — that HTTP method isn't supported on this endpoint |
| `429`  | Too many requests — rate limit exceeded                                |
| `500`  | Internal server error                                                  |
