# PostgreSQL v2 API

The IONOS Cloud DBaaS PostgreSQL v2 API (Version 2.0.0) provides a modern, future-proof, and developer-friendly REST interface for provisioning and managing highly available PostgreSQL databases. It features clarified terminology, a stronger resource model, and improved privilege separation compared to the v1 API.

{% hint style="warning" %}
**Important:** PostgreSQL v2 API is currently in the Early Access (EA) phase and has its limitations. We recommend keeping usage and testing to non-production critical applications. For more information, contact your sales representative or [<mark style="color:blue;">IONOS Cloud Support</mark>](https://docs.ionos.com/cloud/support/general-information/contact-information).
{% endhint %}

## What Can You Do with the PostgreSQL v2 API?

The IONOS Cloud DBaaS [<mark style="color:blue;">PostgreSQL v2 API</mark>](https://api.ionos.com/docs/postgresql/v2.ea/) provides a modern, developer-friendly interface to manage the complete lifecycle of your highly available PostgreSQL clusters. Using the v2 API, you can:

* **Provision and modify clusters:** Safely create or update your PostgreSQL deployments using the idempotent "Ensure" pattern (`PUT` semantics) on region-specific endpoints.
* **Control geographic data safety:** Query explicit backup Locations to determine exactly where your backups are stored and manage them.
* **Manage independent backups:** Access, filter, and manage your backups as an independent, first-class resource via a dedicated top-level or backups endpoint, making it easier to locate specific restore points.
* **Query supported configurations:** Retrieve centralized lists of supported PostgreSQL versions to plan and configure your cluster deployments.
* **Search and filter resources:** Utilize robust, extensive filtering by state, name, or IDs alongside standardized pagination across every listing endpoint.

## Endpoints

The PostgreSQL v2 APIs are available with the following API endpoints.

| **Data Center**           | **Region** | **Endpoint**                          |
| ------------------------- | ---------- | ------------------------------------- |
| Berlin, Germany           | `de-txl`   | `https://postgresql.de-txl.ionos.com` |
| Frankfurt, Germany        | `de-fra`   | `https://postgresql.de-fra.ionos.com` |
| Paris, France             | `fr-par`   | `https://postgresql.fr-par.ionos.com` |
| Logroño, Spain            | `es-vit`   | `https://postgresql.es-vit.ionos.com` |
| London, United Kingdom    | `gb-lhr`   | `https://postgresql.gb-lhr.ionos.com` |
| Worcester, United Kingdom | `gb-bhx`   | `https://postgresql.gb-bhx.ionos.com` |
| Las Vegas, United States  | `us-las`   | `https://postgresql.us-las.ionos.com` |
| Lenexa, United States     | `us-mci`   | `https://postgresql.us-mci.ionos.com` |
| Newark, United States     | `us-ewr`   | `https://postgresql.us-ewr.ionos.com` |

## Features

* **Cluster provisioning:** It manages the "Cluster" as the top-level logical unit, grouping PostgreSQL server instances, such as primary nodes and standby replicas, into a unified resource. It supports different replication modes, such as `ASYNCHRONOUS` and `STRICTLY_SYNCHRONOUS`.
* **Backup management:** It provides dedicated endpoints for managing backups (read-only, point-in-time backups) and **Backup Locations** that serve as the physical regions where backups are stored, distinct from the cluster location.
* **Ensure pattern:** For updates, the API uses a strict replacement logic (via `PUT` endpoints). When modifying a cluster, the full resource object must be provided. Any data not included in the payload is filled with defaults or left empty, rather than merging with the previous state.

## Quick links

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><mark style="color:blue;"><strong>Workflows</strong></mark></td><td>Learn how to inspect an existing cluster, view its configurations, and verify backups.</td><td><a href="v2-api/workflows">workflows</a></td></tr></tbody></table>
