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

# Overview of the Maia API

export const maia = "Maia";

You can use the {maia} API to interact programmatically with your {maia} projects and pipelines.

The API follows a RESTful architecture, which is characterized by several key attributes:

* A resource-based URL format.
* When interacting with the API, use form-encoded data.
* Responses from the API are in JSON format.
* The API uses the standard HTTPS port 443 and HTTP response codes.
* The API employs standard authentication methods, including the use of bearer tokens, to secure access. It also follows standard HTTP verbs (for example, GET, POST, PATCH, and DELETE) for consistent and familiar interaction with the API.

For information about the endpoints available via the {maia} API, see the **Endpoints** section of the API documentation. Each page provides information about a specific endpoint, such as the HTTP method and endpoint URL, required authentication, request parameters and body fields with their types and constraints, and the possible response codes and response body schema.

For step-by-step instructions on using the {maia} API to perform more complex tasks that may involve multiple API calls, see the **Guides** in this section of the API documentation. These guides explain common API workflows—for example, the [Executing and managing a pipeline](/docs/api-reference/executing-and-managing-a-pipeline) guide explains how to retrieve a project ID and environment details before executing a pipeline and polling for its status.

<Note>
  The {maia} API lets you interact with different elements of your {maia} projects as described in the {maia} API guides and endpoints reference pages. However, you *can't* interact with branches via the API. This includes creating and managing branches, and setting a default environment for a branch. You can only perform these actions in {maia}—for more information, read [Branches](/docs/guides/branches).
</Note>

***

## Base URL

**EU server:**

```
https://eu1.api.matillion.com/dpc
```

**US server:**

```
https://us1.api.matillion.com/dpc
```

<Note>
  Your {maia} account needs to be in the same region as the endpoint server.
</Note>

***

## Authentication

The API supports authentication via OAuth or bearer token. To authenticate using a bearer token, you should provide a token obtained through [API credentials](/docs/api-reference/maia-api-authentication#api-credentials).

For detailed instructions on the authentication process, read [Authenticate to the Maia API](/docs/api-reference/maia-api-authentication).

***

## Rate limits

The API has a fixed rate limit, which may cause an HTTP error if you attempt a large number of concurrent endpoint calls.

The HTTP error code returned if the rate limit is exceeded is `429 Too Many Requests`. The `Retry-After` HTTP response header will indicate how long you need to wait before making a subsequent request.

The API rate limit is 1000 requests per minute.

If you receive a rate limit error from the API, try reconfiguring your scripts or pipelines to make use of sequential endpoint calls. In a {maia} pipeline calling the API, consider including a [Retry](/docs/components/retry) component with the `Retry delay` property set to an appropriate value. We recommend a setting of `Long delay with backoff`, with at least five retries.

***

## Video

<iframe width="560" height="315" src="https://www.youtube.com/embed/RTPoIAFgXzc?si=vi8Y-JSL48I5vifO&enablejsapi=1" title="YouTube video player" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" allowFullScreen />
