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

# Qovery API

> Programmatically manage your infrastructure with the Qovery REST API

## Overview

The Qovery API is a RESTful API that allows you to programmatically manage your entire infrastructure. Build custom integrations, automate workflows, and extend Qovery's functionality to fit your needs.

## Base URL

All API requests should be made to:

```
https://api.qovery.com
```

## API Specifications

The Qovery API follows these standards:

* **REST** - Resource-based URLs with standard HTTP methods
* **JSON** - Request and response bodies use JSON format
* **Authentication** - Bearer token authentication
* **Versioning** - API version included in URL path
* **Rate Limiting** - 1000 requests per hour per token

## Key Features

<CardGroup cols={2}>
  <Card title="Full Coverage" icon="grid" href="/api-reference/examples">
    Complete API coverage for all Qovery resources
  </Card>

  <Card title="OpenAPI Spec" icon="file-code" href="https://api-doc.qovery.com">
    OpenAPI 3.0 specification available
  </Card>

  <Card title="SDKs Available" icon="code" href="/api-reference/examples">
    Official SDKs for multiple languages
  </Card>

  <Card title="Webhooks" icon="webhook" href="/configuration/integrations/webhooks">
    Real-time notifications via webhooks
  </Card>
</CardGroup>

## Common Use Cases

### CI/CD Integration

Integrate Qovery deployments into your CI/CD pipelines:

* Trigger deployments from GitHub Actions, GitLab CI, CircleCI
* Automate environment creation for feature branches
* Manage environment variables programmatically

### Custom Dashboards

Build custom monitoring and management dashboards:

* Display real-time status of applications and databases
* Create custom analytics and reporting
* Aggregate data across multiple projects

### Infrastructure Automation

Automate infrastructure management tasks:

* Auto-scaling based on custom metrics
* Scheduled environment cleanup
* Automated backup and disaster recovery

### Multi-Tenant Systems

Manage infrastructure for multiple customers:

* Programmatically provision isolated environments per customer
* Automate resource allocation and billing
* Manage access control and permissions

## Available Resources

The API provides access to all Qovery resources:

| Resource                  | Description                              |
| ------------------------- | ---------------------------------------- |
| **Organizations**         | Manage organization settings and members |
| **Projects**              | Create and manage projects               |
| **Environments**          | Deploy and manage environments           |
| **Applications**          | Deploy containerized applications        |
| **Databases**             | Provision and manage databases           |
| **Containers**            | Deploy generic containers                |
| **Jobs**                  | Manage cron and lifecycle jobs           |
| **Clusters**              | Configure Kubernetes clusters            |
| **Environment Variables** | Manage secrets and configuration         |
| **Deployment Rules**      | Configure deployment automation          |

## Response Format

All API responses follow this structure:

### Success Response

```json theme={null}
{
  "id": "resource-id",
  "created_at": "2024-01-01T00:00:00.000Z",
  "updated_at": "2024-01-01T00:00:00.000Z",
  ...
}
```

### Error Response

```json theme={null}
{
  "status": 400,
  "error": "Bad Request",
  "message": "Validation error: name is required"
}
```

## HTTP Status Codes

| Code  | Description                       |
| ----- | --------------------------------- |
| `200` | Success                           |
| `201` | Created                           |
| `204` | No Content (success with no body) |
| `400` | Bad Request                       |
| `401` | Unauthorized                      |
| `403` | Forbidden                         |
| `404` | Not Found                         |
| `429` | Too Many Requests (rate limit)    |
| `500` | Internal Server Error             |

## Rate Limiting

The API enforces rate limits to ensure fair usage:

* **1000 requests per hour** per API token
* Rate limit headers included in responses:
  * `X-RateLimit-Limit`: Maximum requests per window
  * `X-RateLimit-Remaining`: Remaining requests
  * `X-RateLimit-Reset`: Time when limit resets (Unix timestamp)

When rate limited, you'll receive a `429` status code.

## Pagination

List endpoints support pagination:

```
GET /api/v1/projects?page=1&page_size=20
```

Response includes pagination metadata:

```json theme={null}
{
  "results": [...],
  "pagination": {
    "page": 1,
    "page_size": 20,
    "total_count": 150,
    "total_pages": 8
  }
}
```

## SDKs and Client Libraries

Official SDKs are available for:

* **Python** - `pip install qovery`
* **Go** - `go get github.com/qovery/qovery-client-go`
* **TypeScript/JavaScript** - `npm install qovery`
* **Rust** - `cargo add qovery`

## OpenAPI Specification

Download the OpenAPI specification:

```bash theme={null}
curl https://api.qovery.com/openapi.json -o qovery-api.json
```

Use with tools like Postman, Insomnia, or generate custom clients.

## Next Steps

<CardGroup cols={2}>
  <Card title="Authentication" icon="key" href="/api-reference/authentication">
    Learn how to authenticate with the API
  </Card>

  <Card title="API Examples" icon="code" href="/api-reference/examples">
    See practical API usage examples
  </Card>
</CardGroup>

## Support

<Info>
  Need help with the API? Check the [API Reference](https://api-doc.qovery.com) or contact [support@qovery.com](mailto:support@qovery.com).
</Info>
