API reference · 2026-10-15-github-archives-release
Plattform
Organisationgebundener Maschinenzugang für Domains, DNS, Cluster, Object Storage, Nutzung und Audit; Käufe und interaktive Zahlungen bleiben im Dashboard.
Availability: Limited
Current service status ↗Versioned guides and examples
Published local documents for revision 2026-10-15-github-archives-release. SDK guidance describes
integration options; no external SDK download is implied.
Overview · overview.md
# Plattform — Produktion
Domains, DNS, Cluster und Objektspeicher haben getrennte Berechtigungen. Die Testumgebung bietet ausschließlich synthetische .test-Domains und DNS-Einträge.
Quelle: d0-api Commit fc447ce3ac35dfa320e273009cb9a3928c3e4690, api/openapi.yaml. Diese Dokumentation und der gefilterte OpenAPI-Vertrag sind unveränderliche Snapshots. Quellqualifikation bedeutet keine bestätigte Live-Verfügbarkeit.
Die jeweils andere Umgebung benötigt eigene Clients, Grants, Daten und Signaturschlüssel. OAuth-Issuer: https://auth.d0.eu; Ressource: https://api.d0.eu/platform. Maschine: Client Credentials mit private_key_jwt und DPoP. Signaturschlüssel bleiben ausschließlich im Serverprozess.
Quickstart · quickstart.md
# Plattform: Produktion in vier Schritten
1. Produkt und Organisationsberechtigung in der Console prüfen. Für Produktion einen eigenen Maschinenclient in d0-auth registrieren; nur die unten genannten Scopes freigeben.
2. Über `https://auth.d0.eu` ein Access Token für `https://api.d0.eu/platform` mit `private_key_jwt` und DPoP beziehen. Den DPoP-Proof an genau den Ziel-Request binden; Nonce-Antworten gemäß Auth-Transport behandeln.
3. Mit platform.domains.read GET /platform/v1/domains aufrufen. Für DNS-Änderungen platform.dns.write beantragen und PUT /platform/v1/domains/{domain}/dns/records/{name}/{type} nur auf einer eigenen Domain verwenden. Cluster-Schreiboperationen benötigen einen vom Aufrufer stabil vergebenen Idempotency-Key.
4. Nur die im `public-openapi.json` dieser Revision gelisteten Operationen verwenden. Bei 429 die veröffentlichten technischen Limits beachten.
Verfügbare Produktions-Scopes: `platform.audit.read`, `platform.clusters.credentials`, `platform.clusters.read`, `platform.clusters.write`, `platform.dns.read`, `platform.dns.write`, `platform.domains.authcode`, `platform.domains.read`, `platform.domains.write`, `platform.storage.credentials`, `platform.storage.read`, `platform.storage.write`, `platform.usage.read`, `platform.webhooks.manage`. Pro Client nur den tatsächlich benötigten Teil beantragen.
Go v0.1.0 ist über den öffentlichen Go-Modul-Proxy installierbar. TypeScript und Python v0.1.0 samt gemeinsamem Auth-Transport sind als geprüfte Archive im [GitHub-Release](https://github.com/dev-null-GmbH/d0-sdk/releases/tag/sdk-2026-10-15) verfügbar; die genauen Installationsschritte stehen in den SDK-Guides. Die drei Beispiele sind Offline-Fixtures ohne Live-Credentials oder Live-Requests.
Examples · examples/typescript.mjs
import { PlatformClient, resourceFor } from "../dist/index.js";
for (const profile of ["production", "test"]) {
const transport = { async request(url, options = {}) {
if (!String(url).startsWith(resourceFor(profile) + "/v1/")) throw new Error("profile crossover");
const path = new URL(url).pathname;
if (path.endsWith("/domains") && (options.method ?? "GET") === "GET") return new Response(JSON.stringify({ domains: [{ fqdn: "example.eu", status: "active", created_at: "2026-01-01T00:00:00Z", updated_at: "2026-01-01T00:00:00Z" }] }), { status: 200, headers: { "Content-Type": "application/json" } });
if (path.endsWith("/dns/records/www/A") && options.method === "PUT") return new Response(JSON.stringify({ name: "www.example.eu", type: "A", ttl: 300, records: ["192.0.2.1"], read_only: false }), { status: 200, headers: { "Content-Type": "application/json" } });
throw new Error("unexpected route");
} };
const sdk = new PlatformClient(profile, transport);
const domains = await sdk.listDomains({});
const record = await sdk.upsertDNSRecord({ domain: domains.domains[0].fqdn, name: "www", type: "A", body: { records: ["192.0.2.1"], ttl: 300 } });
if (record.name !== "www.example.eu") throw new Error("fixture failed");
console.log(`${profile}: ${record.name}`);
}
Examples · examples/go.go
package main
import (
"context"
"encoding/json"
"fmt"
"io"
"net/http"
"strings"
platform "github.com/dev-null-GmbH/d0-sdk/platform/go"
"github.com/dev-null-GmbH/d0-sdk/platform/go/gen"
"github.com/oapi-codegen/nullable"
)
type fixture struct{ profile platform.Profile }
func (f fixture) RoundTrip(req *http.Request) (*http.Response, error) {
resource, _ := f.profile.Resource()
if !strings.HasPrefix(req.URL.String(), resource+"/v1/") {
return nil, fmt.Errorf("profile crossover")
}
var data any
switch {
case req.Method == "GET" && strings.HasSuffix(req.URL.Path, "/domains"):
data = map[string]any{"domains": []any{map[string]any{"fqdn": "example.eu", "status": "active", "created_at": "2026-01-01T00:00:00Z", "updated_at": "2026-01-01T00:00:00Z"}}}
case req.Method == "PUT" && strings.HasSuffix(req.URL.Path, "/dns/records/www/A"):
data = map[string]any{"name": "www.example.eu", "type": "A", "ttl": 300, "records": []string{"192.0.2.1"}, "read_only": false}
default:
return nil, fmt.Errorf("unexpected route")
}
raw, _ := json.Marshal(data)
return &http.Response{StatusCode: 200, Header: http.Header{"Content-Type": []string{"application/json"}}, Body: io.NopCloser(strings.NewReader(string(raw))), Request: req}, nil
}
func main() {
for _, profile := range []platform.Profile{platform.Production, platform.Test} {
sdk, err := platform.NewClient(profile, &http.Client{Transport: fixture{profile}})
if err != nil {
panic(err)
}
domains, err := sdk.ListDomains(context.Background())
if err != nil || domains.JSON200 == nil {
panic("list failed")
}
got, _ := domains.JSON200.Domains.Get()
record, err := sdk.UpsertDNSRecord(context.Background(), got[0].Fqdn, "www", "A", gen.RecordUpsertBody{Records: nullable.NewNullableWithValue([]string{"192.0.2.1"})})
if err != nil || record.JSON200 == nil {
panic("upsert failed")
}
fmt.Printf("%s: %s\n", profile, record.JSON200.Name)
}
}
Examples · examples/python.py
"""Offline production/test DNS example using the actual Platform client transport API."""
import io
import json
from email.message import Message
from typing import Any
from d0_auth_machine import MachineClient
from d0_platform import PlatformClient, resource_for
class FixtureTransport(MachineClient):
def __init__(self, profile: str):
self.resource = resource_for(profile) # type: ignore[arg-type]
def request(self, url: str, *, method: str = "GET", headers: Any = None, body: Any = None, cancel: Any = None, timeout: float = 45.0) -> Any:
assert url.startswith(self.resource + "/v1/")
if url.endswith("/domains") and method == "GET":
data: dict[str, Any] = {"domains": [{"fqdn": "example.eu", "status": "active", "created_at": "2026-01-01T00:00:00Z", "updated_at": "2026-01-01T00:00:00Z"}]}
elif url.endswith("/dns/records/www/A") and method == "PUT":
data = {"name": "www.example.eu", "type": "A", "ttl": 300, "records": ["192.0.2.1"], "read_only": False}
else:
raise AssertionError("unexpected route")
response = io.BytesIO(json.dumps(data).encode())
response.status = 200 # type: ignore[attr-defined]
response.headers = Message() # type: ignore[attr-defined]
response.headers["Content-Type"] = "application/json" # type: ignore[attr-defined]
return response
for profile in ("production", "test"):
sdk = PlatformClient(profile, FixtureTransport(profile)) # type: ignore[arg-type]
domain = sdk.list_domains({})["domains"][0]["fqdn"]
record = sdk.upsert_dns_record({"domain": domain, "name": "www", "type": "A", "body": {"records": ["192.0.2.1"], "ttl": 300}})
assert record["name"] == "www.example.eu"
print(f"{profile}: {record['name']}")
Error catalog · errors.md
# Plattform — Fehler und Wiederholung
Der genaue Fehlerkörper und die operationellen Antworten stehen in `public-openapi.json`. In den öffentlichen Operationen dieser Revision sind die Statuscodes `200`, `201`, `202`, `204`, `400`, `401`, `403`, `404`, `409`, `422`, `500`, `503`, `default` deklariert. Nicht jeder Code gilt für jede Operation.
- `400`/`422`: Eingabe und geforderte Header gegen die konkrete Operation prüfen; keinen veränderten Request unter demselben Idempotency-Key wiederholen.
- `401`: Token, DPoP-Proof, Nonce, Audience und Clientprofil prüfen.
- `403`: Scope, Organisationsrolle und fachliche Zuordnung prüfen; keine breiteren Scopes erraten.
- `404`: Pfad, Ressource und Tenant-Kontext prüfen; keine Existenz fremder Ressourcen ableiten.
- `409`/`412`: Konflikt bzw. ETag-Vorbedingung durch erneutes Lesen und fachliche Entscheidung auflösen.
- `429`: technische Limitantwort und Reset-/Retry-Hinweis beachten.
- `5xx` oder Transportabbruch: Bei Mutationen denselben vom Aufrufer vergebenen Idempotency-Key verwenden, sofern die Operation ihn vorsieht; sonst erst den serverseitigen Zustand lesen. Keine blinde Wiederholung einer nicht-idempotenten Operation.
Problemantworten und Request-ID helfen bei der Diagnose. Keine Tokens, Schlüssel, Dokumentinhalte oder personenbezogenen Daten in Support-Logs kopieren.
Changelog · CHANGELOG.md
# Plattform 2026-10-15-github-archives-release
- Neue unveränderliche Dokumentationsrevision. Die vorige Revision `2026-10-15-go-release` bleibt bytegleich verfügbar; Quell-OpenAPI, öffentlicher Vertrag und klassifizierte Operationen sind unverändert.
- Das [GitHub-Release](https://github.com/dev-null-GmbH/d0-sdk/releases/tag/sdk-2026-10-15) stellt die geprüften TypeScript-Tarballs und Python-Wheels für platform v0.1.0 sowie den Auth-Transport v0.1.0 bereit. Der ZIP-Hash ist `6c11b63a5ce5f24dff79d1f3d33c7879ff48831d66dd9029b37abf073152dd93`; der innere `SHA256SUMS`-Katalog wird vor Installation geprüft. Go v0.1.0 bleibt über den öffentlichen Modul-Proxy verfügbar.
- npm und PyPI sind keine Voraussetzungen für diese Distribution. Die installierten Offline-Beispiele wurden im Release-Build geprüft; Service-Rollout und SDK-Download sind getrennte Nachweise.
SDK guidance · sdk-typescript.md
# Plattform typescript SDK
Paket: `@dev-null-gmbh/platform` v0.1.0, Auth-Transport `@dev-null-gmbh/auth-machine` v0.1.0. MIT-Lizenz; Node.js 24.21 bis unter 27.
Die [qualifizierte GitHub-Release-Datei](https://github.com/dev-null-GmbH/d0-sdk/releases/tag/sdk-2026-10-15) ist die direkte Distribution. Archiv und Prüfsumme herunterladen, dann äußere und innere SHA-256-Werte prüfen (unter Linux kann `sha256sum -c` statt `shasum -a 256 -c` verwendet werden):
```sh
curl -fLO https://github.com/dev-null-GmbH/d0-sdk/releases/download/sdk-2026-10-15/d0-sdk-2026-10-15.zip
curl -fLO https://github.com/dev-null-GmbH/d0-sdk/releases/download/sdk-2026-10-15/d0-sdk-2026-10-15.sha256
shasum -a 256 -c d0-sdk-2026-10-15.sha256
unzip d0-sdk-2026-10-15.zip -d d0-sdk-2026-10-15
(cd d0-sdk-2026-10-15 && shasum -a 256 -c SHA256SUMS)
```
Der äußere ZIP-Hash lautet `6c11b63a5ce5f24dff79d1f3d33c7879ff48831d66dd9029b37abf073152dd93`. Die Archive stammen aus [dem erfolgreichen Main-Build](https://github.com/dev-null-GmbH/d0-sdk/actions/runs/38748901791) bei `d0-sdk@6f2c39612a661ec557e96e5caff093a057e6e1de`. Das Release enthält SDKs und Auth-Transport, keine privaten Services oder Zugangsdaten.
Die beiden geprüften Tarballs lokal im Serverprojekt installieren (keine npm-Registry-Veröffentlichung erforderlich):
```sh
npm install --ignore-scripts --no-audit --no-fund ./d0-sdk-2026-10-15/npm/dev-null-gmbh-auth-machine-0.1.0.tgz ./d0-sdk-2026-10-15/npm/dev-null-gmbh-platform-0.1.0.tgz
```
Das Offline-Beispiel dieser Revision liegt unter `catalog/v1/bundles/platform/2026-10-15-github-archives-release/examples/typescript.mjs`. Das Paket ist für vertrauenswürdige Serveranwendungen gedacht; private Signaturschlüssel gehören nicht in Browser-Code. Öffentliche Operationen und Scopes stehen in `public-openapi.json`.
SDK guidance · sdk-go.md
# Plattform Go SDK
Paket: `github.com/dev-null-GmbH/d0-sdk/platform/go` v0.1.0. Gemeinsamer Maschinen-Auth-Transport: `github.com/dev-null-GmbH/d0-sdk/auth/go` v0.1.0. Beide sind über den öffentlichen Go-Modul-Proxy mit aktivierter Checksum-Datenbank aus frischer, anonymer Umgebung installierbar. Lizenz: MIT.
```sh
go get github.com/dev-null-GmbH/d0-sdk/platform/go@v0.1.0
```
Modul-Tags: `platform/go/v0.1.0` und `auth/go/v0.1.0`, beide auf `d0-sdk@a7b1730310ccd3decafc299382f4e2f48ebefda7`. Die Quellrevision des API-Vertrags bleibt `d0-api@fc447ce3ac35dfa320e273009cb9a3928c3e4690`.
Das unveränderte Offline-Fixture aus `d0-api@fc447ce3ac35dfa320e273009cb9a3928c3e4690:sdk/go/examples/fixture/main.go` liegt unter `catalog/v1/bundles/platform/2026-10-15-github-archives-release/examples/go.go` (SHA-256 `b0c3b28099938c9427f7d0e4e3553d328edbc3c8bfa67911db8fe14a85eb15a7`). Es demonstriert den Client mit festem production-Profil ohne Netzaufruf. Öffentliche Operationen und Scopes stehen ausschließlich in public-openapi.json; interne und nicht implementierte Operationen sind kein SDK-Vertrag.
Die übrigen Sprachpakete sind über das [geprüfte GitHub-Release](https://github.com/dev-null-GmbH/d0-sdk/releases/tag/sdk-2026-10-15) verfügbar. Go benötigt nur den oben gezeigten Modulbezug über den öffentlichen Proxy.
SDK guidance · sdk-python.md
# Plattform python SDK
Paket: `d0-platform` v0.1.0, Auth-Transport `d0-auth-machine` v0.1.0. MIT-Lizenz; Python 3.14.
Die [qualifizierte GitHub-Release-Datei](https://github.com/dev-null-GmbH/d0-sdk/releases/tag/sdk-2026-10-15) ist die direkte Distribution. Archiv und Prüfsumme herunterladen, dann äußere und innere SHA-256-Werte prüfen (unter Linux kann `sha256sum -c` statt `shasum -a 256 -c` verwendet werden):
```sh
curl -fLO https://github.com/dev-null-GmbH/d0-sdk/releases/download/sdk-2026-10-15/d0-sdk-2026-10-15.zip
curl -fLO https://github.com/dev-null-GmbH/d0-sdk/releases/download/sdk-2026-10-15/d0-sdk-2026-10-15.sha256
shasum -a 256 -c d0-sdk-2026-10-15.sha256
unzip d0-sdk-2026-10-15.zip -d d0-sdk-2026-10-15
(cd d0-sdk-2026-10-15 && shasum -a 256 -c SHA256SUMS)
```
Der äußere ZIP-Hash lautet `6c11b63a5ce5f24dff79d1f3d33c7879ff48831d66dd9029b37abf073152dd93`. Die Archive stammen aus [dem erfolgreichen Main-Build](https://github.com/dev-null-GmbH/d0-sdk/actions/runs/38748901791) bei `d0-sdk@6f2c39612a661ec557e96e5caff093a057e6e1de`. Das Release enthält SDKs und Auth-Transport, keine privaten Services oder Zugangsdaten.
Die beiden geprüften Wheels in einer virtuellen Umgebung installieren (keine PyPI-Veröffentlichung erforderlich):
```sh
python3.14 -m venv .venv
.venv/bin/python -m pip install ./d0-sdk-2026-10-15/python/d0_auth_machine-0.1.0-py3-none-any.whl ./d0-sdk-2026-10-15/python/d0_platform-0.1.0-py3-none-any.whl
```
Das Offline-Beispiel dieser Revision liegt unter `catalog/v1/bundles/platform/2026-10-15-github-archives-release/examples/python.py`. Das Paket ist für vertrauenswürdige Serveranwendungen gedacht; private Signaturschlüssel gehören nicht in Browser-Code. Öffentliche Operationen und Scopes stehen in `public-openapi.json`.
Get started
- Organisation und fachliche Berechtigungen in der Console auswählen.
- In d0-auth einen Client für die Plattform registrieren und nur benötigte Scopes erlauben.
- private_key_jwt und DPoP mit der Ressource https://api.d0.eu/platform verwenden.
- Mit GET /platform/v1/domains oder GET /platform/v1/developers/limits beginnen.
Operations
Implemented rows describe supported contract behavior. Product availability above still controls whether the runtime is open to customers. Declared and blocked rows describe contract intent or a release gate.
| Method | Path | Operation | Readiness |
|---|---|---|---|
| GET | /platform/v1/audit/events | platform-listAuditEvents | Implemented |
| GET | /platform/v1/cluster-plans | platform-getClusterCatalog | Implemented |
| POST | /platform/v1/cluster-quote | platform-quoteCluster | Implemented |
| GET | /platform/v1/clusters | platform-listClusters | Implemented |
| DELETE | /platform/v1/clusters/{id} | platform-deleteCluster | Implemented |
| GET | /platform/v1/clusters/{id} | platform-getCluster | Implemented |
| GET | /platform/v1/clusters/{id}/kubeconfig | platform-getClusterKubeconfig | Implemented |
| POST | /platform/v1/clusters/{id}/kubeconfig:rotate | platform-rotateClusterKubeconfig | Implemented |
| POST | /platform/v1/clusters/{id}/resize | platform-resizeCluster | Implemented |
| POST | /platform/v1/clusters/{id}/resume | platform-resumeCluster | Implemented |
| POST | /platform/v1/clusters/{id}/suspend | platform-suspendCluster | Implemented |
| GET | /platform/v1/developers/limits | platform-getDeveloperLimits | Implemented |
| GET | /platform/v1/developers/usage | platform-getDeveloperUsage | Implemented |
| GET | /platform/v1/domains | platform-listDomains | Implemented |
| GET | /platform/v1/domains/{domain} | platform-getDomain | Implemented |
| GET | /platform/v1/domains/{domain}/authcode | platform-getDomainAuthCode | Implemented |
| POST | /platform/v1/domains/{domain}/authcode/reset | platform-resetDomainAuthCode | Implemented |
| GET | /platform/v1/domains/{domain}/contacts | platform-getDomainContacts | Implemented |
| PUT | /platform/v1/domains/{domain}/contacts | platform-updateDomainContacts | Implemented |
| GET | /platform/v1/domains/{domain}/dns/records | platform-listDNSRecords | Implemented |
| DELETE | /platform/v1/domains/{domain}/dns/records/{name}/{type} | platform-deleteDNSRecord | Implemented |
| PUT | /platform/v1/domains/{domain}/dns/records/{name}/{type} | platform-upsertDNSRecord | Implemented |
| PUT | /platform/v1/domains/{domain}/nameservers | platform-setDomainNameservers | Implemented |
| GET | /platform/v1/object-storage | platform-getObjectStorageCatalog | Implemented |
| GET | /platform/v1/object-storage/buckets | platform-listObjectStorageBuckets | Implemented |
| POST | /platform/v1/object-storage/buckets | platform-createObjectStorageBucket | Implemented |
| DELETE | /platform/v1/object-storage/buckets/{id} | platform-deleteObjectStorageBucket | Implemented |
| GET | /platform/v1/object-storage/buckets/{id}/credentials | platform-listObjectStorageCredentials | Implemented |
| POST | /platform/v1/object-storage/buckets/{id}/credentials | platform-createObjectStorageCredential | Implemented |
| DELETE | /platform/v1/object-storage/buckets/{id}/credentials/{credential_id} | platform-deleteObjectStorageCredential | Implemented |
Operation reference
Parameters, request bodies and responses come from the filtered public OpenAPI contract
for this revision. Required fields are marked in each schema’s required array.
30 of 30 operations
GET /platform/v1/audit/eventsExport the tenant's audit trail
Returns the caller tenant's own append-only lifecycle trail across its orders, clusters, and object storage, newest first, for compliance and SIEM export. Scoped to the acting org — never spans tenants. Carries no personal data. Follow next_before as ?before to read older events without offsets shifting when new events arrive.
Parameters
limit · query
Max rows (default 100)
{
"description": "Max rows (default 100)",
"format": "int64",
"maximum": 500,
"minimum": 1,
"type": "integer"
}before · query
Exclusive cursor returned by the preceding page
{
"description": "Exclusive cursor returned by the preceding page",
"maxLength": 1024,
"type": "string"
}DPoP · header · required
Fresh ES256 DPoP proof bound to this method, canonical public URL and access token
{
"type": "string"
}Responses
200 · application/json
OK
Required fields: next_before, events
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ListAuditEventsOutputBody.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"events": {
"description": "The tenant's audit trail across orders, clusters, and object storage, newest first",
"items": {
"additionalProperties": false,
"properties": {
"actor": {
"description": "Who drove the transition (subject or system label); omitted when unattributed",
"type": "string"
},
"created_at": {
"description": "When the transition was recorded",
"format": "date-time",
"type": "string"
},
"detail": {
"additionalProperties": {},
"description": "Non-PII transition metadata (action/note/code)",
"type": "object"
},
"from_state": {
"description": "State before the transition; omitted for the creation event",
"type": "string"
},
"id": {
"description": "Stable event identity including its lifecycle source",
"type": "string"
},
"resource_id": {
"description": "Id of the order, cluster, bucket, or credential",
"type": "string"
},
"resource_type": {
"description": "The resource the event belongs to",
"enum": [
"order",
"cluster",
"object_storage_bucket",
"object_storage_credential"
],
"type": "string"
},
"state_version": {
"description": "Monotonic version of the resource at this transition",
"format": "int64",
"type": "integer"
},
"to_state": {
"description": "State after the transition",
"type": "string"
}
},
"required": [
"id",
"resource_type",
"resource_id",
"to_state",
"state_version",
"created_at"
],
"type": "object"
},
"type": [
"array",
"null"
]
},
"next_before": {
"description": "Exclusive cursor for the next older page; empty when exhausted",
"type": "string"
}
},
"required": [
"next_before",
"events"
],
"type": "object"
}default · application/problem+json
Error
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ErrorModel.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"detail": {
"description": "A human-readable explanation specific to this occurrence of the problem.",
"examples": [
"Property foo is required but is missing."
],
"type": "string"
},
"errors": {
"description": "Optional list of individual error details",
"items": {
"additionalProperties": false,
"properties": {
"location": {
"description": "Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'",
"type": "string"
},
"message": {
"description": "Error message text",
"type": "string"
},
"value": {
"description": "The value at the given location"
}
},
"type": "object"
},
"type": [
"array",
"null"
]
},
"instance": {
"description": "A URI reference that identifies the specific occurrence of the problem.",
"examples": [
"https://example.com/error-log/abc123"
],
"format": "uri",
"type": "string"
},
"status": {
"description": "HTTP status code",
"examples": [
400
],
"format": "int64",
"type": "integer"
},
"title": {
"description": "A short, human-readable summary of the problem type. This value should not change between occurrences of the error.",
"examples": [
"Bad Request"
],
"type": "string"
},
"type": {
"default": "about:blank",
"description": "A URI reference to human-readable documentation for the error.",
"examples": [
"https://example.com/errors/example"
],
"format": "uri",
"type": "string"
}
},
"type": "object"
}GET /platform/v1/cluster-plansGet the cluster catalog
Returns the self-serve calculator catalog: the per-resource rate card, the valid per-axis bounds, and priced example presets. The UI prices a spec locally against the rate card and re-verifies via POST /v1/cluster-quote.
Parameters
DPoP · header · required
Fresh ES256 DPoP proof bound to this method, canonical public URL and access token
{
"type": "string"
}Responses
200 · application/json
OK
Required fields: rates, vcpu, memory_gib, storage_gib, max_memory_per_vcpu, presets, network
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/CatalogBody.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"max_memory_per_vcpu": {
"description": "Max memory GiB per vCPU",
"format": "int64",
"type": "integer"
},
"memory_gib": {
"additionalProperties": false,
"properties": {
"max": {
"format": "int64",
"type": "integer"
},
"min": {
"format": "int64",
"type": "integer"
}
},
"required": [
"min",
"max"
],
"type": "object"
},
"network": {
"additionalProperties": false,
"properties": {
"dedicated_ipv6": {
"description": "Dedicated public IPv6 addresses available for LoadBalancer Services",
"type": "boolean"
},
"public_ipv4_available": {
"description": "Unreserved dedicated public IPv4 stock is available",
"type": "boolean"
}
},
"required": [
"dedicated_ipv6",
"public_ipv4_available"
],
"type": "object"
},
"presets": {
"description": "Suggested specs, priced",
"items": {
"additionalProperties": false,
"properties": {
"name": {
"description": "Preset label (small/medium/large)",
"type": "string"
},
"price": {
"additionalProperties": false,
"properties": {
"amount_cents": {
"description": "Monthly price in minor units",
"format": "int64",
"type": "integer"
},
"currency": {
"description": "ISO 4217 currency",
"type": "string"
},
"interval": {
"description": "Billing interval (monthly)",
"type": "string"
}
},
"required": [
"amount_cents",
"currency",
"interval"
],
"type": "object"
},
"spec": {
"additionalProperties": false,
"properties": {
"memory_gib": {
"description": "Guaranteed memory (GiB)",
"format": "int64",
"type": "integer"
},
"public_ipv4": {
"description": "One dedicated public IPv4 address (EUR 1.50/month)",
"type": "boolean"
},
"storage_gib": {
"description": "Provisioned storage (GiB)",
"format": "int64",
"type": "integer"
},
"vcpu": {
"description": "Guaranteed vCPUs",
"format": "int64",
"type": "integer"
}
},
"required": [
"vcpu",
"memory_gib",
"storage_gib",
"public_ipv4"
],
"type": "object"
}
},
"required": [
"name",
"spec",
"price"
],
"type": "object"
},
"type": [
"array",
"null"
]
},
"rates": {
"additionalProperties": false,
"properties": {
"base_cents": {
"description": "Fixed managed-control-plane fee per month",
"format": "int64",
"type": "integer"
},
"currency": {
"description": "ISO 4217 currency",
"type": "string"
},
"per_memory_gib_cents": {
"description": "Per guaranteed memory GiB / month",
"format": "int64",
"type": "integer"
},
"per_public_ipv4_cents": {
"description": "One dedicated public IPv4 address / month",
"format": "int64",
"type": "integer"
},
"per_storage_gib_cents": {
"description": "Per storage GiB / month",
"format": "int64",
"type": "integer"
},
"per_vcpu_cents": {
"description": "Per guaranteed vCPU / month",
"format": "int64",
"type": "integer"
}
},
"required": [
"currency",
"base_cents",
"per_vcpu_cents",
"per_memory_gib_cents",
"per_storage_gib_cents",
"per_public_ipv4_cents"
],
"type": "object"
},
"storage_gib": {
"additionalProperties": false,
"properties": {
"max": {
"format": "int64",
"type": "integer"
},
"min": {
"format": "int64",
"type": "integer"
}
},
"required": [
"min",
"max"
],
"type": "object"
},
"vcpu": {
"additionalProperties": false,
"properties": {
"max": {
"format": "int64",
"type": "integer"
},
"min": {
"format": "int64",
"type": "integer"
}
},
"required": [
"min",
"max"
],
"type": "object"
}
},
"required": [
"rates",
"vcpu",
"memory_gib",
"storage_gib",
"max_memory_per_vcpu",
"presets",
"network"
],
"type": "object"
}default · application/problem+json
Error
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ErrorModel.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"detail": {
"description": "A human-readable explanation specific to this occurrence of the problem.",
"examples": [
"Property foo is required but is missing."
],
"type": "string"
},
"errors": {
"description": "Optional list of individual error details",
"items": {
"additionalProperties": false,
"properties": {
"location": {
"description": "Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'",
"type": "string"
},
"message": {
"description": "Error message text",
"type": "string"
},
"value": {
"description": "The value at the given location"
}
},
"type": "object"
},
"type": [
"array",
"null"
]
},
"instance": {
"description": "A URI reference that identifies the specific occurrence of the problem.",
"examples": [
"https://example.com/error-log/abc123"
],
"format": "uri",
"type": "string"
},
"status": {
"description": "HTTP status code",
"examples": [
400
],
"format": "int64",
"type": "integer"
},
"title": {
"description": "A short, human-readable summary of the problem type. This value should not change between occurrences of the error.",
"examples": [
"Bad Request"
],
"type": "string"
},
"type": {
"default": "about:blank",
"description": "A URI reference to human-readable documentation for the error.",
"examples": [
"https://example.com/errors/example"
],
"format": "uri",
"type": "string"
}
},
"type": "object"
}POST /platform/v1/cluster-quoteQuote a cluster spec
Prices a candidate spec server-side (the authoritative price). An out-of-bounds spec is 422.
Parameters
DPoP · header · required
Fresh ES256 DPoP proof bound to this method, canonical public URL and access token
{
"type": "string"
}Request body
application/json · required
Required fields: vcpu, memory_gib, storage_gib
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/SpecReqBody.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"memory_gib": {
"description": "Guaranteed memory in GiB (2–256; at most 16×vcpu)",
"examples": [
16
],
"format": "int64",
"maximum": 256,
"minimum": 2,
"type": "integer"
},
"public_ipv4": {
"description": "Add one dedicated public IPv4 address when available",
"type": "boolean"
},
"storage_gib": {
"description": "Provisioned storage in GiB (10–4096)",
"examples": [
100
],
"format": "int64",
"maximum": 4096,
"minimum": 10,
"type": "integer"
},
"vcpu": {
"description": "Guaranteed vCPUs (1–64)",
"examples": [
4
],
"format": "int64",
"maximum": 64,
"minimum": 1,
"type": "integer"
}
},
"required": [
"vcpu",
"memory_gib",
"storage_gib"
],
"type": "object"
} Responses
200 · application/json
OK
Required fields: spec, price
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ClusterQuoteOutputBody.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"price": {
"additionalProperties": false,
"properties": {
"amount_cents": {
"description": "Monthly price in minor units",
"format": "int64",
"type": "integer"
},
"currency": {
"description": "ISO 4217 currency",
"type": "string"
},
"interval": {
"description": "Billing interval (monthly)",
"type": "string"
}
},
"required": [
"amount_cents",
"currency",
"interval"
],
"type": "object"
},
"spec": {
"additionalProperties": false,
"properties": {
"memory_gib": {
"description": "Guaranteed memory (GiB)",
"format": "int64",
"type": "integer"
},
"public_ipv4": {
"description": "One dedicated public IPv4 address (EUR 1.50/month)",
"type": "boolean"
},
"storage_gib": {
"description": "Provisioned storage (GiB)",
"format": "int64",
"type": "integer"
},
"vcpu": {
"description": "Guaranteed vCPUs",
"format": "int64",
"type": "integer"
}
},
"required": [
"vcpu",
"memory_gib",
"storage_gib",
"public_ipv4"
],
"type": "object"
}
},
"required": [
"spec",
"price"
],
"type": "object"
}default · application/problem+json
Error
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ErrorModel.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"detail": {
"description": "A human-readable explanation specific to this occurrence of the problem.",
"examples": [
"Property foo is required but is missing."
],
"type": "string"
},
"errors": {
"description": "Optional list of individual error details",
"items": {
"additionalProperties": false,
"properties": {
"location": {
"description": "Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'",
"type": "string"
},
"message": {
"description": "Error message text",
"type": "string"
},
"value": {
"description": "The value at the given location"
}
},
"type": "object"
},
"type": [
"array",
"null"
]
},
"instance": {
"description": "A URI reference that identifies the specific occurrence of the problem.",
"examples": [
"https://example.com/error-log/abc123"
],
"format": "uri",
"type": "string"
},
"status": {
"description": "HTTP status code",
"examples": [
400
],
"format": "int64",
"type": "integer"
},
"title": {
"description": "A short, human-readable summary of the problem type. This value should not change between occurrences of the error.",
"examples": [
"Bad Request"
],
"type": "string"
},
"type": {
"default": "about:blank",
"description": "A URI reference to human-readable documentation for the error.",
"examples": [
"https://example.com/errors/example"
],
"format": "uri",
"type": "string"
}
},
"type": "object"
}GET /platform/v1/clustersList clusters
Lists the caller tenant's clusters, newest first.
Parameters
DPoP · header · required
Fresh ES256 DPoP proof bound to this method, canonical public URL and access token
{
"type": "string"
}Responses
200 · application/json
OK
Required fields: clusters
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ListClustersOutputBody.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"clusters": {
"description": "The tenant's clusters, newest first",
"items": {
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ClusterBody.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"created_at": {
"description": "RFC 3339 creation time",
"type": "string"
},
"currency": {
"description": "ISO 4217 currency of price_cents",
"type": "string"
},
"endpoint": {
"description": "Cluster API endpoint (when running)",
"type": "string"
},
"id": {
"description": "Cluster ID",
"type": "string"
},
"name": {
"description": "Cluster display name (a DNS label)",
"type": "string"
},
"offering": {
"description": "Cluster placement product: shared_nodes or private_nodes",
"type": "string"
},
"price_cents": {
"description": "Server-side monthly price in minor units",
"format": "int64",
"type": "integer"
},
"public_ipv4_address": {
"description": "Reserved dedicated public IPv4 address",
"type": "string"
},
"ready": {
"description": "Control plane ready + kubeconfig available",
"type": "boolean"
},
"spec": {
"additionalProperties": false,
"properties": {
"memory_gib": {
"description": "Guaranteed memory (GiB)",
"format": "int64",
"type": "integer"
},
"public_ipv4": {
"description": "One dedicated public IPv4 address (EUR 1.50/month)",
"type": "boolean"
},
"storage_gib": {
"description": "Provisioned storage (GiB)",
"format": "int64",
"type": "integer"
},
"vcpu": {
"description": "Guaranteed vCPUs",
"format": "int64",
"type": "integer"
}
},
"required": [
"vcpu",
"memory_gib",
"storage_gib",
"public_ipv4"
],
"type": "object"
},
"state": {
"description": "Cluster state",
"type": "string"
},
"state_version": {
"description": "Optimistic-concurrency version of the state",
"format": "int64",
"type": "integer"
},
"updated_at": {
"description": "RFC 3339 last-update time",
"type": "string"
}
},
"required": [
"id",
"name",
"spec",
"state",
"offering",
"state_version",
"ready",
"created_at",
"updated_at"
],
"type": "object"
},
"type": [
"array",
"null"
]
}
},
"required": [
"clusters"
],
"type": "object"
}default · application/problem+json
Error
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ErrorModel.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"detail": {
"description": "A human-readable explanation specific to this occurrence of the problem.",
"examples": [
"Property foo is required but is missing."
],
"type": "string"
},
"errors": {
"description": "Optional list of individual error details",
"items": {
"additionalProperties": false,
"properties": {
"location": {
"description": "Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'",
"type": "string"
},
"message": {
"description": "Error message text",
"type": "string"
},
"value": {
"description": "The value at the given location"
}
},
"type": "object"
},
"type": [
"array",
"null"
]
},
"instance": {
"description": "A URI reference that identifies the specific occurrence of the problem.",
"examples": [
"https://example.com/error-log/abc123"
],
"format": "uri",
"type": "string"
},
"status": {
"description": "HTTP status code",
"examples": [
400
],
"format": "int64",
"type": "integer"
},
"title": {
"description": "A short, human-readable summary of the problem type. This value should not change between occurrences of the error.",
"examples": [
"Bad Request"
],
"type": "string"
},
"type": {
"default": "about:blank",
"description": "A URI reference to human-readable documentation for the error.",
"examples": [
"https://example.com/errors/example"
],
"format": "uri",
"type": "string"
}
},
"type": "object"
}DELETE /platform/v1/clusters/{id}Delete a cluster
Tears the cluster down (async). Idempotency-Key is required. Returns the cluster now in its deleting state.
Parameters
id · path · required
Cluster ID
{
"description": "Cluster ID",
"type": "string"
}Idempotency-Key · header · required
Required client-chosen key making the action idempotent
{
"description": "Required client-chosen key making the action idempotent",
"type": "string"
}DPoP · header · required
Fresh ES256 DPoP proof bound to this method, canonical public URL and access token
{
"type": "string"
}Responses
202 · application/json
Accepted
Required fields: id, name, spec, state, offering, state_version, ready, created_at, updated_at
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ClusterBody.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"created_at": {
"description": "RFC 3339 creation time",
"type": "string"
},
"currency": {
"description": "ISO 4217 currency of price_cents",
"type": "string"
},
"endpoint": {
"description": "Cluster API endpoint (when running)",
"type": "string"
},
"id": {
"description": "Cluster ID",
"type": "string"
},
"name": {
"description": "Cluster display name (a DNS label)",
"type": "string"
},
"offering": {
"description": "Cluster placement product: shared_nodes or private_nodes",
"type": "string"
},
"price_cents": {
"description": "Server-side monthly price in minor units",
"format": "int64",
"type": "integer"
},
"public_ipv4_address": {
"description": "Reserved dedicated public IPv4 address",
"type": "string"
},
"ready": {
"description": "Control plane ready + kubeconfig available",
"type": "boolean"
},
"spec": {
"additionalProperties": false,
"properties": {
"memory_gib": {
"description": "Guaranteed memory (GiB)",
"format": "int64",
"type": "integer"
},
"public_ipv4": {
"description": "One dedicated public IPv4 address (EUR 1.50/month)",
"type": "boolean"
},
"storage_gib": {
"description": "Provisioned storage (GiB)",
"format": "int64",
"type": "integer"
},
"vcpu": {
"description": "Guaranteed vCPUs",
"format": "int64",
"type": "integer"
}
},
"required": [
"vcpu",
"memory_gib",
"storage_gib",
"public_ipv4"
],
"type": "object"
},
"state": {
"description": "Cluster state",
"type": "string"
},
"state_version": {
"description": "Optimistic-concurrency version of the state",
"format": "int64",
"type": "integer"
},
"updated_at": {
"description": "RFC 3339 last-update time",
"type": "string"
}
},
"required": [
"id",
"name",
"spec",
"state",
"offering",
"state_version",
"ready",
"created_at",
"updated_at"
],
"type": "object"
}default · application/problem+json
Error
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ErrorModel.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"detail": {
"description": "A human-readable explanation specific to this occurrence of the problem.",
"examples": [
"Property foo is required but is missing."
],
"type": "string"
},
"errors": {
"description": "Optional list of individual error details",
"items": {
"additionalProperties": false,
"properties": {
"location": {
"description": "Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'",
"type": "string"
},
"message": {
"description": "Error message text",
"type": "string"
},
"value": {
"description": "The value at the given location"
}
},
"type": "object"
},
"type": [
"array",
"null"
]
},
"instance": {
"description": "A URI reference that identifies the specific occurrence of the problem.",
"examples": [
"https://example.com/error-log/abc123"
],
"format": "uri",
"type": "string"
},
"status": {
"description": "HTTP status code",
"examples": [
400
],
"format": "int64",
"type": "integer"
},
"title": {
"description": "A short, human-readable summary of the problem type. This value should not change between occurrences of the error.",
"examples": [
"Bad Request"
],
"type": "string"
},
"type": {
"default": "about:blank",
"description": "A URI reference to human-readable documentation for the error.",
"examples": [
"https://example.com/errors/example"
],
"format": "uri",
"type": "string"
}
},
"type": "object"
}GET /platform/v1/clusters/{id}Get a cluster
Returns the cluster's status. Scoped to the caller tenant; a cluster owned by another tenant returns 404.
Parameters
id · path · required
Cluster ID
{
"description": "Cluster ID",
"type": "string"
}DPoP · header · required
Fresh ES256 DPoP proof bound to this method, canonical public URL and access token
{
"type": "string"
}Responses
200 · application/json
OK
Required fields: id, name, spec, state, offering, state_version, ready, created_at, updated_at
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ClusterBody.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"created_at": {
"description": "RFC 3339 creation time",
"type": "string"
},
"currency": {
"description": "ISO 4217 currency of price_cents",
"type": "string"
},
"endpoint": {
"description": "Cluster API endpoint (when running)",
"type": "string"
},
"id": {
"description": "Cluster ID",
"type": "string"
},
"name": {
"description": "Cluster display name (a DNS label)",
"type": "string"
},
"offering": {
"description": "Cluster placement product: shared_nodes or private_nodes",
"type": "string"
},
"price_cents": {
"description": "Server-side monthly price in minor units",
"format": "int64",
"type": "integer"
},
"public_ipv4_address": {
"description": "Reserved dedicated public IPv4 address",
"type": "string"
},
"ready": {
"description": "Control plane ready + kubeconfig available",
"type": "boolean"
},
"spec": {
"additionalProperties": false,
"properties": {
"memory_gib": {
"description": "Guaranteed memory (GiB)",
"format": "int64",
"type": "integer"
},
"public_ipv4": {
"description": "One dedicated public IPv4 address (EUR 1.50/month)",
"type": "boolean"
},
"storage_gib": {
"description": "Provisioned storage (GiB)",
"format": "int64",
"type": "integer"
},
"vcpu": {
"description": "Guaranteed vCPUs",
"format": "int64",
"type": "integer"
}
},
"required": [
"vcpu",
"memory_gib",
"storage_gib",
"public_ipv4"
],
"type": "object"
},
"state": {
"description": "Cluster state",
"type": "string"
},
"state_version": {
"description": "Optimistic-concurrency version of the state",
"format": "int64",
"type": "integer"
},
"updated_at": {
"description": "RFC 3339 last-update time",
"type": "string"
}
},
"required": [
"id",
"name",
"spec",
"state",
"offering",
"state_version",
"ready",
"created_at",
"updated_at"
],
"type": "object"
}default · application/problem+json
Error
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ErrorModel.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"detail": {
"description": "A human-readable explanation specific to this occurrence of the problem.",
"examples": [
"Property foo is required but is missing."
],
"type": "string"
},
"errors": {
"description": "Optional list of individual error details",
"items": {
"additionalProperties": false,
"properties": {
"location": {
"description": "Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'",
"type": "string"
},
"message": {
"description": "Error message text",
"type": "string"
},
"value": {
"description": "The value at the given location"
}
},
"type": "object"
},
"type": [
"array",
"null"
]
},
"instance": {
"description": "A URI reference that identifies the specific occurrence of the problem.",
"examples": [
"https://example.com/error-log/abc123"
],
"format": "uri",
"type": "string"
},
"status": {
"description": "HTTP status code",
"examples": [
400
],
"format": "int64",
"type": "integer"
},
"title": {
"description": "A short, human-readable summary of the problem type. This value should not change between occurrences of the error.",
"examples": [
"Bad Request"
],
"type": "string"
},
"type": {
"default": "about:blank",
"description": "A URI reference to human-readable documentation for the error.",
"examples": [
"https://example.com/errors/example"
],
"format": "uri",
"type": "string"
}
},
"type": "object"
}GET /platform/v1/clusters/{id}/kubeconfigGet a cluster's kubeconfig
Returns the cluster's kubeconfig (YAML). Sensitive — the response is marked no-store and every fetch is audited. Scoped to the caller tenant.
Parameters
id · path · required
Cluster ID
{
"description": "Cluster ID",
"type": "string"
}DPoP · header · required
Fresh ES256 DPoP proof bound to this method, canonical public URL and access token
{
"type": "string"
}Responses
200 · application/json
OK
Required fields: kubeconfig
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/KubeconfigOutputBody.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"kubeconfig": {
"description": "Cluster kubeconfig (YAML). Sensitive — never logged.",
"type": "string"
}
},
"required": [
"kubeconfig"
],
"type": "object"
}default · application/problem+json
Error
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ErrorModel.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"detail": {
"description": "A human-readable explanation specific to this occurrence of the problem.",
"examples": [
"Property foo is required but is missing."
],
"type": "string"
},
"errors": {
"description": "Optional list of individual error details",
"items": {
"additionalProperties": false,
"properties": {
"location": {
"description": "Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'",
"type": "string"
},
"message": {
"description": "Error message text",
"type": "string"
},
"value": {
"description": "The value at the given location"
}
},
"type": "object"
},
"type": [
"array",
"null"
]
},
"instance": {
"description": "A URI reference that identifies the specific occurrence of the problem.",
"examples": [
"https://example.com/error-log/abc123"
],
"format": "uri",
"type": "string"
},
"status": {
"description": "HTTP status code",
"examples": [
400
],
"format": "int64",
"type": "integer"
},
"title": {
"description": "A short, human-readable summary of the problem type. This value should not change between occurrences of the error.",
"examples": [
"Bad Request"
],
"type": "string"
},
"type": {
"default": "about:blank",
"description": "A URI reference to human-readable documentation for the error.",
"examples": [
"https://example.com/errors/example"
],
"format": "uri",
"type": "string"
}
},
"type": "object"
}POST /platform/v1/clusters/{id}/kubeconfig:rotateRotate a cluster's kubeconfig
Re-issues the cluster's admin credential and re-seals it (async), invalidating a leaked kubeconfig. Idempotency-Key is required.
Parameters
id · path · required
Cluster ID
{
"description": "Cluster ID",
"type": "string"
}Idempotency-Key · header · required
Required client-chosen key making the action idempotent
{
"description": "Required client-chosen key making the action idempotent",
"type": "string"
}DPoP · header · required
Fresh ES256 DPoP proof bound to this method, canonical public URL and access token
{
"type": "string"
}Responses
202 · application/json
Accepted
Required fields: id, name, spec, state, offering, state_version, ready, created_at, updated_at
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ClusterBody.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"created_at": {
"description": "RFC 3339 creation time",
"type": "string"
},
"currency": {
"description": "ISO 4217 currency of price_cents",
"type": "string"
},
"endpoint": {
"description": "Cluster API endpoint (when running)",
"type": "string"
},
"id": {
"description": "Cluster ID",
"type": "string"
},
"name": {
"description": "Cluster display name (a DNS label)",
"type": "string"
},
"offering": {
"description": "Cluster placement product: shared_nodes or private_nodes",
"type": "string"
},
"price_cents": {
"description": "Server-side monthly price in minor units",
"format": "int64",
"type": "integer"
},
"public_ipv4_address": {
"description": "Reserved dedicated public IPv4 address",
"type": "string"
},
"ready": {
"description": "Control plane ready + kubeconfig available",
"type": "boolean"
},
"spec": {
"additionalProperties": false,
"properties": {
"memory_gib": {
"description": "Guaranteed memory (GiB)",
"format": "int64",
"type": "integer"
},
"public_ipv4": {
"description": "One dedicated public IPv4 address (EUR 1.50/month)",
"type": "boolean"
},
"storage_gib": {
"description": "Provisioned storage (GiB)",
"format": "int64",
"type": "integer"
},
"vcpu": {
"description": "Guaranteed vCPUs",
"format": "int64",
"type": "integer"
}
},
"required": [
"vcpu",
"memory_gib",
"storage_gib",
"public_ipv4"
],
"type": "object"
},
"state": {
"description": "Cluster state",
"type": "string"
},
"state_version": {
"description": "Optimistic-concurrency version of the state",
"format": "int64",
"type": "integer"
},
"updated_at": {
"description": "RFC 3339 last-update time",
"type": "string"
}
},
"required": [
"id",
"name",
"spec",
"state",
"offering",
"state_version",
"ready",
"created_at",
"updated_at"
],
"type": "object"
}default · application/problem+json
Error
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ErrorModel.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"detail": {
"description": "A human-readable explanation specific to this occurrence of the problem.",
"examples": [
"Property foo is required but is missing."
],
"type": "string"
},
"errors": {
"description": "Optional list of individual error details",
"items": {
"additionalProperties": false,
"properties": {
"location": {
"description": "Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'",
"type": "string"
},
"message": {
"description": "Error message text",
"type": "string"
},
"value": {
"description": "The value at the given location"
}
},
"type": "object"
},
"type": [
"array",
"null"
]
},
"instance": {
"description": "A URI reference that identifies the specific occurrence of the problem.",
"examples": [
"https://example.com/error-log/abc123"
],
"format": "uri",
"type": "string"
},
"status": {
"description": "HTTP status code",
"examples": [
400
],
"format": "int64",
"type": "integer"
},
"title": {
"description": "A short, human-readable summary of the problem type. This value should not change between occurrences of the error.",
"examples": [
"Bad Request"
],
"type": "string"
},
"type": {
"default": "about:blank",
"description": "A URI reference to human-readable documentation for the error.",
"examples": [
"https://example.com/errors/example"
],
"format": "uri",
"type": "string"
}
},
"type": "object"
}POST /platform/v1/clusters/{id}/resizeResize a cluster (grow-only)
Grows the cluster to a larger spec (async). Grow-only: a shrink or same-spec is rejected (422). Idempotency-Key is required.
Parameters
id · path · required
Cluster ID
{
"description": "Cluster ID",
"type": "string"
}Idempotency-Key · header · required
Required client-chosen key making the resize idempotent
{
"description": "Required client-chosen key making the resize idempotent",
"type": "string"
}DPoP · header · required
Fresh ES256 DPoP proof bound to this method, canonical public URL and access token
{
"type": "string"
}Request body
application/json · required
Required fields: spec
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ResizeClusterInputBody.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"spec": {
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/SpecReqBody.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"memory_gib": {
"description": "Guaranteed memory in GiB (2–256; at most 16×vcpu)",
"examples": [
16
],
"format": "int64",
"maximum": 256,
"minimum": 2,
"type": "integer"
},
"public_ipv4": {
"description": "Add one dedicated public IPv4 address when available",
"type": "boolean"
},
"storage_gib": {
"description": "Provisioned storage in GiB (10–4096)",
"examples": [
100
],
"format": "int64",
"maximum": 4096,
"minimum": 10,
"type": "integer"
},
"vcpu": {
"description": "Guaranteed vCPUs (1–64)",
"examples": [
4
],
"format": "int64",
"maximum": 64,
"minimum": 1,
"type": "integer"
}
},
"required": [
"vcpu",
"memory_gib",
"storage_gib"
],
"type": "object"
}
},
"required": [
"spec"
],
"type": "object"
} application/octet-stream · required
{
"contentMediaType": "application/octet-stream",
"format": "binary",
"type": "string"
} Responses
202 · application/json
Accepted
Required fields: id, name, spec, state, offering, state_version, ready, created_at, updated_at
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ClusterBody.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"created_at": {
"description": "RFC 3339 creation time",
"type": "string"
},
"currency": {
"description": "ISO 4217 currency of price_cents",
"type": "string"
},
"endpoint": {
"description": "Cluster API endpoint (when running)",
"type": "string"
},
"id": {
"description": "Cluster ID",
"type": "string"
},
"name": {
"description": "Cluster display name (a DNS label)",
"type": "string"
},
"offering": {
"description": "Cluster placement product: shared_nodes or private_nodes",
"type": "string"
},
"price_cents": {
"description": "Server-side monthly price in minor units",
"format": "int64",
"type": "integer"
},
"public_ipv4_address": {
"description": "Reserved dedicated public IPv4 address",
"type": "string"
},
"ready": {
"description": "Control plane ready + kubeconfig available",
"type": "boolean"
},
"spec": {
"additionalProperties": false,
"properties": {
"memory_gib": {
"description": "Guaranteed memory (GiB)",
"format": "int64",
"type": "integer"
},
"public_ipv4": {
"description": "One dedicated public IPv4 address (EUR 1.50/month)",
"type": "boolean"
},
"storage_gib": {
"description": "Provisioned storage (GiB)",
"format": "int64",
"type": "integer"
},
"vcpu": {
"description": "Guaranteed vCPUs",
"format": "int64",
"type": "integer"
}
},
"required": [
"vcpu",
"memory_gib",
"storage_gib",
"public_ipv4"
],
"type": "object"
},
"state": {
"description": "Cluster state",
"type": "string"
},
"state_version": {
"description": "Optimistic-concurrency version of the state",
"format": "int64",
"type": "integer"
},
"updated_at": {
"description": "RFC 3339 last-update time",
"type": "string"
}
},
"required": [
"id",
"name",
"spec",
"state",
"offering",
"state_version",
"ready",
"created_at",
"updated_at"
],
"type": "object"
}default · application/problem+json
Error
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ErrorModel.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"detail": {
"description": "A human-readable explanation specific to this occurrence of the problem.",
"examples": [
"Property foo is required but is missing."
],
"type": "string"
},
"errors": {
"description": "Optional list of individual error details",
"items": {
"additionalProperties": false,
"properties": {
"location": {
"description": "Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'",
"type": "string"
},
"message": {
"description": "Error message text",
"type": "string"
},
"value": {
"description": "The value at the given location"
}
},
"type": "object"
},
"type": [
"array",
"null"
]
},
"instance": {
"description": "A URI reference that identifies the specific occurrence of the problem.",
"examples": [
"https://example.com/error-log/abc123"
],
"format": "uri",
"type": "string"
},
"status": {
"description": "HTTP status code",
"examples": [
400
],
"format": "int64",
"type": "integer"
},
"title": {
"description": "A short, human-readable summary of the problem type. This value should not change between occurrences of the error.",
"examples": [
"Bad Request"
],
"type": "string"
},
"type": {
"default": "about:blank",
"description": "A URI reference to human-readable documentation for the error.",
"examples": [
"https://example.com/errors/example"
],
"format": "uri",
"type": "string"
}
},
"type": "object"
}POST /platform/v1/clusters/{id}/resumeResume a cluster
Un-pauses a suspended cluster (async). Idempotency-Key is required. A cluster suspended for non-payment must have its invoice settled first (409).
Parameters
id · path · required
Cluster ID
{
"description": "Cluster ID",
"type": "string"
}Idempotency-Key · header · required
Required client-chosen key making the action idempotent
{
"description": "Required client-chosen key making the action idempotent",
"type": "string"
}DPoP · header · required
Fresh ES256 DPoP proof bound to this method, canonical public URL and access token
{
"type": "string"
}Responses
202 · application/json
Accepted
Required fields: id, name, spec, state, offering, state_version, ready, created_at, updated_at
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ClusterBody.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"created_at": {
"description": "RFC 3339 creation time",
"type": "string"
},
"currency": {
"description": "ISO 4217 currency of price_cents",
"type": "string"
},
"endpoint": {
"description": "Cluster API endpoint (when running)",
"type": "string"
},
"id": {
"description": "Cluster ID",
"type": "string"
},
"name": {
"description": "Cluster display name (a DNS label)",
"type": "string"
},
"offering": {
"description": "Cluster placement product: shared_nodes or private_nodes",
"type": "string"
},
"price_cents": {
"description": "Server-side monthly price in minor units",
"format": "int64",
"type": "integer"
},
"public_ipv4_address": {
"description": "Reserved dedicated public IPv4 address",
"type": "string"
},
"ready": {
"description": "Control plane ready + kubeconfig available",
"type": "boolean"
},
"spec": {
"additionalProperties": false,
"properties": {
"memory_gib": {
"description": "Guaranteed memory (GiB)",
"format": "int64",
"type": "integer"
},
"public_ipv4": {
"description": "One dedicated public IPv4 address (EUR 1.50/month)",
"type": "boolean"
},
"storage_gib": {
"description": "Provisioned storage (GiB)",
"format": "int64",
"type": "integer"
},
"vcpu": {
"description": "Guaranteed vCPUs",
"format": "int64",
"type": "integer"
}
},
"required": [
"vcpu",
"memory_gib",
"storage_gib",
"public_ipv4"
],
"type": "object"
},
"state": {
"description": "Cluster state",
"type": "string"
},
"state_version": {
"description": "Optimistic-concurrency version of the state",
"format": "int64",
"type": "integer"
},
"updated_at": {
"description": "RFC 3339 last-update time",
"type": "string"
}
},
"required": [
"id",
"name",
"spec",
"state",
"offering",
"state_version",
"ready",
"created_at",
"updated_at"
],
"type": "object"
}default · application/problem+json
Error
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ErrorModel.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"detail": {
"description": "A human-readable explanation specific to this occurrence of the problem.",
"examples": [
"Property foo is required but is missing."
],
"type": "string"
},
"errors": {
"description": "Optional list of individual error details",
"items": {
"additionalProperties": false,
"properties": {
"location": {
"description": "Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'",
"type": "string"
},
"message": {
"description": "Error message text",
"type": "string"
},
"value": {
"description": "The value at the given location"
}
},
"type": "object"
},
"type": [
"array",
"null"
]
},
"instance": {
"description": "A URI reference that identifies the specific occurrence of the problem.",
"examples": [
"https://example.com/error-log/abc123"
],
"format": "uri",
"type": "string"
},
"status": {
"description": "HTTP status code",
"examples": [
400
],
"format": "int64",
"type": "integer"
},
"title": {
"description": "A short, human-readable summary of the problem type. This value should not change between occurrences of the error.",
"examples": [
"Bad Request"
],
"type": "string"
},
"type": {
"default": "about:blank",
"description": "A URI reference to human-readable documentation for the error.",
"examples": [
"https://example.com/errors/example"
],
"format": "uri",
"type": "string"
}
},
"type": "object"
}POST /platform/v1/clusters/{id}/suspendSuspend a cluster
Pauses the cluster's control plane (async). Idempotency-Key is required. Returns the cluster in its suspending/suspended state.
Parameters
id · path · required
Cluster ID
{
"description": "Cluster ID",
"type": "string"
}Idempotency-Key · header · required
Required client-chosen key making the action idempotent
{
"description": "Required client-chosen key making the action idempotent",
"type": "string"
}DPoP · header · required
Fresh ES256 DPoP proof bound to this method, canonical public URL and access token
{
"type": "string"
}Responses
202 · application/json
Accepted
Required fields: id, name, spec, state, offering, state_version, ready, created_at, updated_at
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ClusterBody.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"created_at": {
"description": "RFC 3339 creation time",
"type": "string"
},
"currency": {
"description": "ISO 4217 currency of price_cents",
"type": "string"
},
"endpoint": {
"description": "Cluster API endpoint (when running)",
"type": "string"
},
"id": {
"description": "Cluster ID",
"type": "string"
},
"name": {
"description": "Cluster display name (a DNS label)",
"type": "string"
},
"offering": {
"description": "Cluster placement product: shared_nodes or private_nodes",
"type": "string"
},
"price_cents": {
"description": "Server-side monthly price in minor units",
"format": "int64",
"type": "integer"
},
"public_ipv4_address": {
"description": "Reserved dedicated public IPv4 address",
"type": "string"
},
"ready": {
"description": "Control plane ready + kubeconfig available",
"type": "boolean"
},
"spec": {
"additionalProperties": false,
"properties": {
"memory_gib": {
"description": "Guaranteed memory (GiB)",
"format": "int64",
"type": "integer"
},
"public_ipv4": {
"description": "One dedicated public IPv4 address (EUR 1.50/month)",
"type": "boolean"
},
"storage_gib": {
"description": "Provisioned storage (GiB)",
"format": "int64",
"type": "integer"
},
"vcpu": {
"description": "Guaranteed vCPUs",
"format": "int64",
"type": "integer"
}
},
"required": [
"vcpu",
"memory_gib",
"storage_gib",
"public_ipv4"
],
"type": "object"
},
"state": {
"description": "Cluster state",
"type": "string"
},
"state_version": {
"description": "Optimistic-concurrency version of the state",
"format": "int64",
"type": "integer"
},
"updated_at": {
"description": "RFC 3339 last-update time",
"type": "string"
}
},
"required": [
"id",
"name",
"spec",
"state",
"offering",
"state_version",
"ready",
"created_at",
"updated_at"
],
"type": "object"
}default · application/problem+json
Error
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ErrorModel.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"detail": {
"description": "A human-readable explanation specific to this occurrence of the problem.",
"examples": [
"Property foo is required but is missing."
],
"type": "string"
},
"errors": {
"description": "Optional list of individual error details",
"items": {
"additionalProperties": false,
"properties": {
"location": {
"description": "Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'",
"type": "string"
},
"message": {
"description": "Error message text",
"type": "string"
},
"value": {
"description": "The value at the given location"
}
},
"type": "object"
},
"type": [
"array",
"null"
]
},
"instance": {
"description": "A URI reference that identifies the specific occurrence of the problem.",
"examples": [
"https://example.com/error-log/abc123"
],
"format": "uri",
"type": "string"
},
"status": {
"description": "HTTP status code",
"examples": [
400
],
"format": "int64",
"type": "integer"
},
"title": {
"description": "A short, human-readable summary of the problem type. This value should not change between occurrences of the error.",
"examples": [
"Bad Request"
],
"type": "string"
},
"type": {
"default": "about:blank",
"description": "A URI reference to human-readable documentation for the error.",
"examples": [
"https://example.com/errors/example"
],
"format": "uri",
"type": "string"
}
},
"type": "object"
}GET /platform/v1/developers/limitsEffective organization and caller request limits
Actual shared quota decision for this request. The organization bucket covers all participating product APIs; the client bucket covers the current OAuth client. This request counts toward both limits; the human Console can read an exhausted decision to diagnose throttling. These technical limits are independent of billing and native S3/Kubernetes quotas.
Parameters
DPoP · header · required
Fresh ES256 DPoP proof bound to this method, canonical public URL and access token
{
"type": "string"
}Responses
200 · application/json
OK
Required fields: environment, client_id, observed_at, buckets, over_limit
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/Result.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"buckets": {
"items": {
"additionalProperties": false,
"properties": {
"remaining": {
"format": "int32",
"minimum": 0,
"type": "integer"
},
"requests_per_window": {
"format": "int32",
"minimum": 0,
"type": "integer"
},
"reset_after_seconds": {
"format": "int64",
"type": "integer"
},
"scope": {
"enum": [
"organization",
"client"
],
"type": "string"
},
"window_seconds": {
"format": "int64",
"type": "integer"
}
},
"required": [
"scope",
"requests_per_window",
"window_seconds",
"remaining",
"reset_after_seconds"
],
"type": "object"
},
"type": [
"array",
"null"
]
},
"client_id": {
"type": "string"
},
"environment": {
"enum": [
"production",
"test"
],
"type": "string"
},
"observed_at": {
"format": "date-time",
"type": "string"
},
"over_limit": {
"type": "boolean"
}
},
"required": [
"environment",
"client_id",
"observed_at",
"buckets",
"over_limit"
],
"type": "object"
}default · application/problem+json
Error
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ErrorModel.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"detail": {
"description": "A human-readable explanation specific to this occurrence of the problem.",
"examples": [
"Property foo is required but is missing."
],
"type": "string"
},
"errors": {
"description": "Optional list of individual error details",
"items": {
"additionalProperties": false,
"properties": {
"location": {
"description": "Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'",
"type": "string"
},
"message": {
"description": "Error message text",
"type": "string"
},
"value": {
"description": "The value at the given location"
}
},
"type": "object"
},
"type": [
"array",
"null"
]
},
"instance": {
"description": "A URI reference that identifies the specific occurrence of the problem.",
"examples": [
"https://example.com/error-log/abc123"
],
"format": "uri",
"type": "string"
},
"status": {
"description": "HTTP status code",
"examples": [
400
],
"format": "int64",
"type": "integer"
},
"title": {
"description": "A short, human-readable summary of the problem type. This value should not change between occurrences of the error.",
"examples": [
"Bad Request"
],
"type": "string"
},
"type": {
"default": "about:blank",
"description": "A URI reference to human-readable documentation for the error.",
"examples": [
"https://example.com/errors/example"
],
"format": "uri",
"type": "string"
}
},
"type": "object"
}GET /platform/v1/developers/usageOrganization API usage
Technical request statistics, not billing evidence. UTC day aggregates retained for thirteen months. An unavailable collection pipeline returns 503, never fabricated zero usage.
Parameters
product · query
{
"maxLength": 64,
"type": "string"
}environment · query
{
"default": "production",
"enum": [
"production",
"test"
],
"type": "string"
}client_id · query
{
"maxLength": 128,
"type": "string"
}from · query
{
"format": "date-time",
"type": "string"
}until · query
{
"format": "date-time",
"type": "string"
}DPoP · header · required
Fresh ES256 DPoP proof bound to this method, canonical public URL and access token
{
"type": "string"
}Responses
200 · application/json
OK
Required fields: environment, coverage_from, collection_gaps_24h, covered_products, from, until, observed_at, totals, by_product, daily
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/Usage.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"by_product": {
"items": {
"additionalProperties": false,
"properties": {
"duration_ms": {
"format": "double",
"type": "number"
},
"errors": {
"format": "int64",
"type": "integer"
},
"product": {
"type": "string"
},
"rate_limited": {
"format": "int64",
"type": "integer"
},
"requests": {
"format": "int64",
"type": "integer"
}
},
"required": [
"product",
"requests",
"errors",
"rate_limited",
"duration_ms"
],
"type": "object"
},
"type": [
"array",
"null"
]
},
"collection_gaps_24h": {
"format": "int64",
"type": "integer"
},
"coverage_from": {
"format": "date-time",
"type": "string"
},
"covered_products": {
"items": {
"type": "string"
},
"type": [
"array",
"null"
]
},
"daily": {
"items": {
"additionalProperties": false,
"properties": {
"day": {
"type": "string"
},
"duration_ms": {
"format": "double",
"type": "number"
},
"errors": {
"format": "int64",
"type": "integer"
},
"rate_limited": {
"format": "int64",
"type": "integer"
},
"requests": {
"format": "int64",
"type": "integer"
}
},
"required": [
"day",
"requests",
"errors",
"rate_limited",
"duration_ms"
],
"type": "object"
},
"type": [
"array",
"null"
]
},
"environment": {
"enum": [
"production",
"test"
],
"type": "string"
},
"from": {
"format": "date-time",
"type": "string"
},
"observed_at": {
"format": "date-time",
"type": "string"
},
"totals": {
"additionalProperties": false,
"properties": {
"duration_ms": {
"format": "double",
"type": "number"
},
"errors": {
"format": "int64",
"type": "integer"
},
"rate_limited": {
"format": "int64",
"type": "integer"
},
"requests": {
"format": "int64",
"type": "integer"
}
},
"required": [
"requests",
"errors",
"rate_limited",
"duration_ms"
],
"type": "object"
},
"until": {
"format": "date-time",
"type": "string"
}
},
"required": [
"environment",
"coverage_from",
"collection_gaps_24h",
"covered_products",
"from",
"until",
"observed_at",
"totals",
"by_product",
"daily"
],
"type": "object"
}default · application/problem+json
Error
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ErrorModel.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"detail": {
"description": "A human-readable explanation specific to this occurrence of the problem.",
"examples": [
"Property foo is required but is missing."
],
"type": "string"
},
"errors": {
"description": "Optional list of individual error details",
"items": {
"additionalProperties": false,
"properties": {
"location": {
"description": "Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'",
"type": "string"
},
"message": {
"description": "Error message text",
"type": "string"
},
"value": {
"description": "The value at the given location"
}
},
"type": "object"
},
"type": [
"array",
"null"
]
},
"instance": {
"description": "A URI reference that identifies the specific occurrence of the problem.",
"examples": [
"https://example.com/error-log/abc123"
],
"format": "uri",
"type": "string"
},
"status": {
"description": "HTTP status code",
"examples": [
400
],
"format": "int64",
"type": "integer"
},
"title": {
"description": "A short, human-readable summary of the problem type. This value should not change between occurrences of the error.",
"examples": [
"Bad Request"
],
"type": "string"
},
"type": {
"default": "about:blank",
"description": "A URI reference to human-readable documentation for the error.",
"examples": [
"https://example.com/errors/example"
],
"format": "uri",
"type": "string"
}
},
"type": "object"
}GET /platform/v1/domainsList managed domains
Lists the caller tenant's managed domains, newest first.
Parameters
DPoP · header · required
Fresh ES256 DPoP proof bound to this method, canonical public URL and access token
{
"type": "string"
}Responses
200 · application/json
OK
Required fields: domains
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ListDomainsOutputBody.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"domains": {
"description": "The tenant's managed domains, newest first",
"items": {
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/DomainBody.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"created_at": {
"description": "RFC 3339 creation time",
"type": "string"
},
"expires_at": {
"description": "RFC 3339 expiry, when known",
"type": "string"
},
"fqdn": {
"description": "The managed domain",
"type": "string"
},
"nameservers": {
"description": "Delegation nameservers",
"items": {
"type": "string"
},
"type": [
"array",
"null"
]
},
"status": {
"description": "Domain status",
"type": "string"
},
"updated_at": {
"description": "RFC 3339 last-update time",
"type": "string"
}
},
"required": [
"fqdn",
"status",
"created_at",
"updated_at"
],
"type": "object"
},
"type": [
"array",
"null"
]
}
},
"required": [
"domains"
],
"type": "object"
}default · application/problem+json
Error
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ErrorModel.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"detail": {
"description": "A human-readable explanation specific to this occurrence of the problem.",
"examples": [
"Property foo is required but is missing."
],
"type": "string"
},
"errors": {
"description": "Optional list of individual error details",
"items": {
"additionalProperties": false,
"properties": {
"location": {
"description": "Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'",
"type": "string"
},
"message": {
"description": "Error message text",
"type": "string"
},
"value": {
"description": "The value at the given location"
}
},
"type": "object"
},
"type": [
"array",
"null"
]
},
"instance": {
"description": "A URI reference that identifies the specific occurrence of the problem.",
"examples": [
"https://example.com/error-log/abc123"
],
"format": "uri",
"type": "string"
},
"status": {
"description": "HTTP status code",
"examples": [
400
],
"format": "int64",
"type": "integer"
},
"title": {
"description": "A short, human-readable summary of the problem type. This value should not change between occurrences of the error.",
"examples": [
"Bad Request"
],
"type": "string"
},
"type": {
"default": "about:blank",
"description": "A URI reference to human-readable documentation for the error.",
"examples": [
"https://example.com/errors/example"
],
"format": "uri",
"type": "string"
}
},
"type": "object"
}GET /platform/v1/domains/{domain}Get a managed domain
Returns a managed domain's detail. Scoped to the caller tenant.
Parameters
domain · path · required
The managed domain
{
"description": "The managed domain",
"examples": [
"example.eu"
],
"maxLength": 253,
"minLength": 3,
"pattern": "^[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?)+$",
"type": "string"
}DPoP · header · required
Fresh ES256 DPoP proof bound to this method, canonical public URL and access token
{
"type": "string"
}Responses
200 · application/json
OK
Required fields: fqdn, status, created_at, updated_at
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/DomainBody.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"created_at": {
"description": "RFC 3339 creation time",
"type": "string"
},
"expires_at": {
"description": "RFC 3339 expiry, when known",
"type": "string"
},
"fqdn": {
"description": "The managed domain",
"type": "string"
},
"nameservers": {
"description": "Delegation nameservers",
"items": {
"type": "string"
},
"type": [
"array",
"null"
]
},
"status": {
"description": "Domain status",
"type": "string"
},
"updated_at": {
"description": "RFC 3339 last-update time",
"type": "string"
}
},
"required": [
"fqdn",
"status",
"created_at",
"updated_at"
],
"type": "object"
}default · application/problem+json
Error
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ErrorModel.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"detail": {
"description": "A human-readable explanation specific to this occurrence of the problem.",
"examples": [
"Property foo is required but is missing."
],
"type": "string"
},
"errors": {
"description": "Optional list of individual error details",
"items": {
"additionalProperties": false,
"properties": {
"location": {
"description": "Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'",
"type": "string"
},
"message": {
"description": "Error message text",
"type": "string"
},
"value": {
"description": "The value at the given location"
}
},
"type": "object"
},
"type": [
"array",
"null"
]
},
"instance": {
"description": "A URI reference that identifies the specific occurrence of the problem.",
"examples": [
"https://example.com/error-log/abc123"
],
"format": "uri",
"type": "string"
},
"status": {
"description": "HTTP status code",
"examples": [
400
],
"format": "int64",
"type": "integer"
},
"title": {
"description": "A short, human-readable summary of the problem type. This value should not change between occurrences of the error.",
"examples": [
"Bad Request"
],
"type": "string"
},
"type": {
"default": "about:blank",
"description": "A URI reference to human-readable documentation for the error.",
"examples": [
"https://example.com/errors/example"
],
"format": "uri",
"type": "string"
}
},
"type": "object"
}GET /platform/v1/domains/{domain}/authcodeGet the EPP auth code
Returns the domain's EPP transfer auth code. Scoped to the caller tenant.
Parameters
domain · path · required
The managed domain
{
"description": "The managed domain",
"examples": [
"example.eu"
],
"maxLength": 253,
"minLength": 3,
"pattern": "^[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?)+$",
"type": "string"
}DPoP · header · required
Fresh ES256 DPoP proof bound to this method, canonical public URL and access token
{
"type": "string"
}Responses
200 · application/json
OK
Required fields: auth_code
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/AuthCodeOutputBody.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"auth_code": {
"description": "The EPP transfer auth code",
"type": "string"
}
},
"required": [
"auth_code"
],
"type": "object"
}default · application/problem+json
Error
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ErrorModel.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"detail": {
"description": "A human-readable explanation specific to this occurrence of the problem.",
"examples": [
"Property foo is required but is missing."
],
"type": "string"
},
"errors": {
"description": "Optional list of individual error details",
"items": {
"additionalProperties": false,
"properties": {
"location": {
"description": "Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'",
"type": "string"
},
"message": {
"description": "Error message text",
"type": "string"
},
"value": {
"description": "The value at the given location"
}
},
"type": "object"
},
"type": [
"array",
"null"
]
},
"instance": {
"description": "A URI reference that identifies the specific occurrence of the problem.",
"examples": [
"https://example.com/error-log/abc123"
],
"format": "uri",
"type": "string"
},
"status": {
"description": "HTTP status code",
"examples": [
400
],
"format": "int64",
"type": "integer"
},
"title": {
"description": "A short, human-readable summary of the problem type. This value should not change between occurrences of the error.",
"examples": [
"Bad Request"
],
"type": "string"
},
"type": {
"default": "about:blank",
"description": "A URI reference to human-readable documentation for the error.",
"examples": [
"https://example.com/errors/example"
],
"format": "uri",
"type": "string"
}
},
"type": "object"
}POST /platform/v1/domains/{domain}/authcode/resetReset the EPP auth code
Rotates and returns a new EPP transfer auth code. Scoped to the caller tenant.
Parameters
domain · path · required
The managed domain
{
"description": "The managed domain",
"examples": [
"example.eu"
],
"maxLength": 253,
"minLength": 3,
"pattern": "^[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?)+$",
"type": "string"
}DPoP · header · required
Fresh ES256 DPoP proof bound to this method, canonical public URL and access token
{
"type": "string"
}Responses
200 · application/json
OK
Required fields: auth_code
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/AuthCodeOutputBody.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"auth_code": {
"description": "The EPP transfer auth code",
"type": "string"
}
},
"required": [
"auth_code"
],
"type": "object"
}default · application/problem+json
Error
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ErrorModel.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"detail": {
"description": "A human-readable explanation specific to this occurrence of the problem.",
"examples": [
"Property foo is required but is missing."
],
"type": "string"
},
"errors": {
"description": "Optional list of individual error details",
"items": {
"additionalProperties": false,
"properties": {
"location": {
"description": "Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'",
"type": "string"
},
"message": {
"description": "Error message text",
"type": "string"
},
"value": {
"description": "The value at the given location"
}
},
"type": "object"
},
"type": [
"array",
"null"
]
},
"instance": {
"description": "A URI reference that identifies the specific occurrence of the problem.",
"examples": [
"https://example.com/error-log/abc123"
],
"format": "uri",
"type": "string"
},
"status": {
"description": "HTTP status code",
"examples": [
400
],
"format": "int64",
"type": "integer"
},
"title": {
"description": "A short, human-readable summary of the problem type. This value should not change between occurrences of the error.",
"examples": [
"Bad Request"
],
"type": "string"
},
"type": {
"default": "about:blank",
"description": "A URI reference to human-readable documentation for the error.",
"examples": [
"https://example.com/errors/example"
],
"format": "uri",
"type": "string"
}
},
"type": "object"
}GET /platform/v1/domains/{domain}/contactsRead current domain registrant
Parameters
domain · path · required
The managed domain
{
"description": "The managed domain",
"examples": [
"example.eu"
],
"maxLength": 253,
"minLength": 3,
"pattern": "^[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?)+$",
"type": "string"
}DPoP · header · required
Fresh ES256 DPoP proof bound to this method, canonical public URL and access token
{
"type": "string"
}Responses
200 · application/json
OK
Required fields: first_name, last_name, email, phone, street, city, zipcode, country
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/RegistrantInput.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"city": {
"description": "City",
"type": "string"
},
"company_name": {
"type": "string"
},
"country": {
"description": "ISO 3166-1 alpha-2 country code",
"maxLength": 2,
"minLength": 2,
"type": "string"
},
"email": {
"description": "Registrant contact email",
"format": "email",
"type": "string"
},
"first_name": {
"description": "Registrant given name",
"type": "string"
},
"last_name": {
"description": "Registrant family name",
"type": "string"
},
"phone": {
"description": "Registrant phone in canonical E.164, e.g. +49301234567",
"pattern": "^\\+[1-9][0-9]{1,14}$",
"type": "string"
},
"registration_data": {
"additionalProperties": false,
"properties": {
"customer": {
"additionalProperties": {
"type": "string"
},
"type": "object"
},
"domain": {
"additionalProperties": {
"type": "string"
},
"type": "object"
}
},
"type": "object"
},
"state": {
"type": "string"
},
"street": {
"description": "Street address",
"type": "string"
},
"street_number": {
"type": "string"
},
"zipcode": {
"description": "Postal code",
"type": "string"
}
},
"required": [
"first_name",
"last_name",
"email",
"phone",
"street",
"city",
"zipcode",
"country"
],
"type": "object"
}default · application/problem+json
Error
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ErrorModel.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"detail": {
"description": "A human-readable explanation specific to this occurrence of the problem.",
"examples": [
"Property foo is required but is missing."
],
"type": "string"
},
"errors": {
"description": "Optional list of individual error details",
"items": {
"additionalProperties": false,
"properties": {
"location": {
"description": "Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'",
"type": "string"
},
"message": {
"description": "Error message text",
"type": "string"
},
"value": {
"description": "The value at the given location"
}
},
"type": "object"
},
"type": [
"array",
"null"
]
},
"instance": {
"description": "A URI reference that identifies the specific occurrence of the problem.",
"examples": [
"https://example.com/error-log/abc123"
],
"format": "uri",
"type": "string"
},
"status": {
"description": "HTTP status code",
"examples": [
400
],
"format": "int64",
"type": "integer"
},
"title": {
"description": "A short, human-readable summary of the problem type. This value should not change between occurrences of the error.",
"examples": [
"Bad Request"
],
"type": "string"
},
"type": {
"default": "about:blank",
"description": "A URI reference to human-readable documentation for the error.",
"examples": [
"https://example.com/errors/example"
],
"format": "uri",
"type": "string"
}
},
"type": "object"
}PUT /platform/v1/domains/{domain}/contactsUpdate registrant/contacts
Updates the domain's registrant and contacts at the registry. Personal data — minimized, never logged. Scoped to the caller tenant.
Parameters
domain · path · required
The managed domain
{
"description": "The managed domain",
"examples": [
"example.eu"
],
"maxLength": 253,
"minLength": 3,
"pattern": "^[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?)+$",
"type": "string"
}DPoP · header · required
Fresh ES256 DPoP proof bound to this method, canonical public URL and access token
{
"type": "string"
}Request body
application/json · required
Required fields: registrant
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/UpdateContactsInputBody.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"registrant": {
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/RegistrantInput.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"city": {
"description": "City",
"type": "string"
},
"company_name": {
"type": "string"
},
"country": {
"description": "ISO 3166-1 alpha-2 country code",
"maxLength": 2,
"minLength": 2,
"type": "string"
},
"email": {
"description": "Registrant contact email",
"format": "email",
"type": "string"
},
"first_name": {
"description": "Registrant given name",
"type": "string"
},
"last_name": {
"description": "Registrant family name",
"type": "string"
},
"phone": {
"description": "Registrant phone in canonical E.164, e.g. +49301234567",
"pattern": "^\\+[1-9][0-9]{1,14}$",
"type": "string"
},
"registration_data": {
"additionalProperties": false,
"properties": {
"customer": {
"additionalProperties": {
"type": "string"
},
"type": "object"
},
"domain": {
"additionalProperties": {
"type": "string"
},
"type": "object"
}
},
"type": "object"
},
"state": {
"type": "string"
},
"street": {
"description": "Street address",
"type": "string"
},
"street_number": {
"type": "string"
},
"zipcode": {
"description": "Postal code",
"type": "string"
}
},
"required": [
"first_name",
"last_name",
"email",
"phone",
"street",
"city",
"zipcode",
"country"
],
"type": "object"
}
},
"required": [
"registrant"
],
"type": "object"
} Responses
204
No Content
default · application/problem+json
Error
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ErrorModel.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"detail": {
"description": "A human-readable explanation specific to this occurrence of the problem.",
"examples": [
"Property foo is required but is missing."
],
"type": "string"
},
"errors": {
"description": "Optional list of individual error details",
"items": {
"additionalProperties": false,
"properties": {
"location": {
"description": "Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'",
"type": "string"
},
"message": {
"description": "Error message text",
"type": "string"
},
"value": {
"description": "The value at the given location"
}
},
"type": "object"
},
"type": [
"array",
"null"
]
},
"instance": {
"description": "A URI reference that identifies the specific occurrence of the problem.",
"examples": [
"https://example.com/error-log/abc123"
],
"format": "uri",
"type": "string"
},
"status": {
"description": "HTTP status code",
"examples": [
400
],
"format": "int64",
"type": "integer"
},
"title": {
"description": "A short, human-readable summary of the problem type. This value should not change between occurrences of the error.",
"examples": [
"Bad Request"
],
"type": "string"
},
"type": {
"default": "about:blank",
"description": "A URI reference to human-readable documentation for the error.",
"examples": [
"https://example.com/errors/example"
],
"format": "uri",
"type": "string"
}
},
"type": "object"
}GET /platform/v1/domains/{domain}/dns/recordsList DNS records
Lists the domain's zone records. SOA and the apex NS set are flagged read_only. Scoped to the caller tenant.
Parameters
domain · path · required
The managed domain
{
"description": "The managed domain",
"examples": [
"example.eu"
],
"maxLength": 253,
"minLength": 3,
"pattern": "^[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?)+$",
"type": "string"
}DPoP · header · required
Fresh ES256 DPoP proof bound to this method, canonical public URL and access token
{
"type": "string"
}Responses
200 · application/json
OK
Required fields: records
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ListRecordsOutputBody.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"records": {
"description": "The zone's record sets",
"items": {
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/RecordBody.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"name": {
"description": "Record name (FQDN)",
"type": "string"
},
"read_only": {
"description": "True for platform-managed sets (SOA, apex NS) that cannot be edited",
"type": "boolean"
},
"records": {
"description": "Record contents",
"items": {
"type": "string"
},
"type": [
"array",
"null"
]
},
"ttl": {
"description": "Time-to-live in seconds",
"format": "int64",
"type": "integer"
},
"type": {
"description": "Record type",
"type": "string"
}
},
"required": [
"name",
"type",
"ttl",
"records",
"read_only"
],
"type": "object"
},
"type": [
"array",
"null"
]
}
},
"required": [
"records"
],
"type": "object"
}default · application/problem+json
Error
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ErrorModel.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"detail": {
"description": "A human-readable explanation specific to this occurrence of the problem.",
"examples": [
"Property foo is required but is missing."
],
"type": "string"
},
"errors": {
"description": "Optional list of individual error details",
"items": {
"additionalProperties": false,
"properties": {
"location": {
"description": "Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'",
"type": "string"
},
"message": {
"description": "Error message text",
"type": "string"
},
"value": {
"description": "The value at the given location"
}
},
"type": "object"
},
"type": [
"array",
"null"
]
},
"instance": {
"description": "A URI reference that identifies the specific occurrence of the problem.",
"examples": [
"https://example.com/error-log/abc123"
],
"format": "uri",
"type": "string"
},
"status": {
"description": "HTTP status code",
"examples": [
400
],
"format": "int64",
"type": "integer"
},
"title": {
"description": "A short, human-readable summary of the problem type. This value should not change between occurrences of the error.",
"examples": [
"Bad Request"
],
"type": "string"
},
"type": {
"default": "about:blank",
"description": "A URI reference to human-readable documentation for the error.",
"examples": [
"https://example.com/errors/example"
],
"format": "uri",
"type": "string"
}
},
"type": "object"
}DELETE /platform/v1/domains/{domain}/dns/records/{name}/{type}Delete a DNS record set
Deletes one RRset (name+type); deleting a missing set is a no-op (204). SOA and the apex NS set are not editable (422). Scoped to the caller tenant.
Parameters
domain · path · required
The managed domain
{
"description": "The managed domain",
"examples": [
"example.eu"
],
"maxLength": 253,
"minLength": 3,
"pattern": "^[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?)+$",
"type": "string"
}name · path · required
Record name (relative, '@' for apex, or FQDN)
{
"description": "Record name (relative, '@' for apex, or FQDN)",
"examples": [
"www"
],
"maxLength": 253,
"type": "string"
}type · path · required
Record type, e.g. A, AAAA, CNAME, MX, TXT, NS, CAA, SRV
{
"description": "Record type, e.g. A, AAAA, CNAME, MX, TXT, NS, CAA, SRV",
"examples": [
"A"
],
"pattern": "^[A-Za-z]+$",
"type": "string"
}DPoP · header · required
Fresh ES256 DPoP proof bound to this method, canonical public URL and access token
{
"type": "string"
}Responses
204
No Content
default · application/problem+json
Error
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ErrorModel.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"detail": {
"description": "A human-readable explanation specific to this occurrence of the problem.",
"examples": [
"Property foo is required but is missing."
],
"type": "string"
},
"errors": {
"description": "Optional list of individual error details",
"items": {
"additionalProperties": false,
"properties": {
"location": {
"description": "Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'",
"type": "string"
},
"message": {
"description": "Error message text",
"type": "string"
},
"value": {
"description": "The value at the given location"
}
},
"type": "object"
},
"type": [
"array",
"null"
]
},
"instance": {
"description": "A URI reference that identifies the specific occurrence of the problem.",
"examples": [
"https://example.com/error-log/abc123"
],
"format": "uri",
"type": "string"
},
"status": {
"description": "HTTP status code",
"examples": [
400
],
"format": "int64",
"type": "integer"
},
"title": {
"description": "A short, human-readable summary of the problem type. This value should not change between occurrences of the error.",
"examples": [
"Bad Request"
],
"type": "string"
},
"type": {
"default": "about:blank",
"description": "A URI reference to human-readable documentation for the error.",
"examples": [
"https://example.com/errors/example"
],
"format": "uri",
"type": "string"
}
},
"type": "object"
}PUT /platform/v1/domains/{domain}/dns/records/{name}/{type}Create or replace a DNS record set
Upserts one RRset (name+type). Validated for RFC-correct content and zone structure before it reaches the backend. SOA and the apex NS set are not editable (422). Scoped to the caller tenant.
Parameters
domain · path · required
The managed domain
{
"description": "The managed domain",
"examples": [
"example.eu"
],
"maxLength": 253,
"minLength": 3,
"pattern": "^[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?)+$",
"type": "string"
}name · path · required
Record name (relative, '@' for apex, or FQDN)
{
"description": "Record name (relative, '@' for apex, or FQDN)",
"examples": [
"www"
],
"maxLength": 253,
"type": "string"
}type · path · required
Record type, e.g. A, AAAA, CNAME, MX, TXT, NS, CAA, SRV
{
"description": "Record type, e.g. A, AAAA, CNAME, MX, TXT, NS, CAA, SRV",
"examples": [
"A"
],
"pattern": "^[A-Za-z]+$",
"type": "string"
}DPoP · header · required
Fresh ES256 DPoP proof bound to this method, canonical public URL and access token
{
"type": "string"
}Request body
application/json · required
Required fields: records
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/RecordUpsertBody.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"records": {
"description": "Record contents for this name+type",
"items": {
"type": "string"
},
"minItems": 1,
"type": [
"array",
"null"
]
},
"ttl": {
"description": "Time-to-live in seconds (default 3600)",
"format": "int64",
"maximum": 604800,
"minimum": 60,
"type": "integer"
}
},
"required": [
"records"
],
"type": "object"
} Responses
200 · application/json
OK
Required fields: name, type, ttl, records, read_only
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/RecordBody.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"name": {
"description": "Record name (FQDN)",
"type": "string"
},
"read_only": {
"description": "True for platform-managed sets (SOA, apex NS) that cannot be edited",
"type": "boolean"
},
"records": {
"description": "Record contents",
"items": {
"type": "string"
},
"type": [
"array",
"null"
]
},
"ttl": {
"description": "Time-to-live in seconds",
"format": "int64",
"type": "integer"
},
"type": {
"description": "Record type",
"type": "string"
}
},
"required": [
"name",
"type",
"ttl",
"records",
"read_only"
],
"type": "object"
}default · application/problem+json
Error
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ErrorModel.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"detail": {
"description": "A human-readable explanation specific to this occurrence of the problem.",
"examples": [
"Property foo is required but is missing."
],
"type": "string"
},
"errors": {
"description": "Optional list of individual error details",
"items": {
"additionalProperties": false,
"properties": {
"location": {
"description": "Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'",
"type": "string"
},
"message": {
"description": "Error message text",
"type": "string"
},
"value": {
"description": "The value at the given location"
}
},
"type": "object"
},
"type": [
"array",
"null"
]
},
"instance": {
"description": "A URI reference that identifies the specific occurrence of the problem.",
"examples": [
"https://example.com/error-log/abc123"
],
"format": "uri",
"type": "string"
},
"status": {
"description": "HTTP status code",
"examples": [
400
],
"format": "int64",
"type": "integer"
},
"title": {
"description": "A short, human-readable summary of the problem type. This value should not change between occurrences of the error.",
"examples": [
"Bad Request"
],
"type": "string"
},
"type": {
"default": "about:blank",
"description": "A URI reference to human-readable documentation for the error.",
"examples": [
"https://example.com/errors/example"
],
"format": "uri",
"type": "string"
}
},
"type": "object"
}PUT /platform/v1/domains/{domain}/nameserversSet nameservers
Replaces the domain's nameservers at the registry. Scoped to the caller tenant.
Parameters
domain · path · required
The managed domain
{
"description": "The managed domain",
"examples": [
"example.eu"
],
"maxLength": 253,
"minLength": 3,
"pattern": "^[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?)+$",
"type": "string"
}DPoP · header · required
Fresh ES256 DPoP proof bound to this method, canonical public URL and access token
{
"type": "string"
}Request body
application/json · required
Required fields: nameservers
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/SetNameserversInputBody.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"nameservers": {
"description": "Delegation nameservers",
"items": {
"additionalProperties": false,
"properties": {
"host": {
"description": "Nameserver hostname",
"type": "string"
},
"ipv4": {
"description": "Optional IPv4 glue",
"type": "string"
},
"ipv6": {
"description": "Optional IPv6 glue",
"type": "string"
}
},
"required": [
"host"
],
"type": "object"
},
"maxItems": 13,
"minItems": 1,
"type": [
"array",
"null"
]
}
},
"required": [
"nameservers"
],
"type": "object"
} Responses
204
No Content
default · application/problem+json
Error
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ErrorModel.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"detail": {
"description": "A human-readable explanation specific to this occurrence of the problem.",
"examples": [
"Property foo is required but is missing."
],
"type": "string"
},
"errors": {
"description": "Optional list of individual error details",
"items": {
"additionalProperties": false,
"properties": {
"location": {
"description": "Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'",
"type": "string"
},
"message": {
"description": "Error message text",
"type": "string"
},
"value": {
"description": "The value at the given location"
}
},
"type": "object"
},
"type": [
"array",
"null"
]
},
"instance": {
"description": "A URI reference that identifies the specific occurrence of the problem.",
"examples": [
"https://example.com/error-log/abc123"
],
"format": "uri",
"type": "string"
},
"status": {
"description": "HTTP status code",
"examples": [
400
],
"format": "int64",
"type": "integer"
},
"title": {
"description": "A short, human-readable summary of the problem type. This value should not change between occurrences of the error.",
"examples": [
"Bad Request"
],
"type": "string"
},
"type": {
"default": "about:blank",
"description": "A URI reference to human-readable documentation for the error.",
"examples": [
"https://example.com/errors/example"
],
"format": "uri",
"type": "string"
}
},
"type": "object"
}GET /platform/v1/object-storageObject storage availability and service limits
Parameters
DPoP · header · required
Fresh ES256 DPoP proof bound to this method, canonical public URL and access token
{
"type": "string"
}Responses
200 · application/json
OK
Required fields: enabled, endpoint, region, limits
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/Catalog.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"enabled": {
"type": "boolean"
},
"endpoint": {
"type": "string"
},
"limits": {
"additionalProperties": false,
"properties": {
"max_bucket_bytes": {
"format": "int64",
"type": "integer"
},
"max_buckets": {
"format": "int64",
"type": "integer"
},
"max_credentials_per_bucket": {
"format": "int64",
"type": "integer"
},
"max_total_bytes": {
"format": "int64",
"type": "integer"
}
},
"required": [
"max_buckets",
"max_credentials_per_bucket",
"max_bucket_bytes",
"max_total_bytes"
],
"type": "object"
},
"region": {
"type": "string"
}
},
"required": [
"enabled",
"endpoint",
"region",
"limits"
],
"type": "object"
}default · application/problem+json
Error
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ErrorModel.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"detail": {
"description": "A human-readable explanation specific to this occurrence of the problem.",
"examples": [
"Property foo is required but is missing."
],
"type": "string"
},
"errors": {
"description": "Optional list of individual error details",
"items": {
"additionalProperties": false,
"properties": {
"location": {
"description": "Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'",
"type": "string"
},
"message": {
"description": "Error message text",
"type": "string"
},
"value": {
"description": "The value at the given location"
}
},
"type": "object"
},
"type": [
"array",
"null"
]
},
"instance": {
"description": "A URI reference that identifies the specific occurrence of the problem.",
"examples": [
"https://example.com/error-log/abc123"
],
"format": "uri",
"type": "string"
},
"status": {
"description": "HTTP status code",
"examples": [
400
],
"format": "int64",
"type": "integer"
},
"title": {
"description": "A short, human-readable summary of the problem type. This value should not change between occurrences of the error.",
"examples": [
"Bad Request"
],
"type": "string"
},
"type": {
"default": "about:blank",
"description": "A URI reference to human-readable documentation for the error.",
"examples": [
"https://example.com/errors/example"
],
"format": "uri",
"type": "string"
}
},
"type": "object"
}GET /platform/v1/object-storage/bucketsList organization buckets
Parameters
DPoP · header · required
Fresh ES256 DPoP proof bound to this method, canonical public URL and access token
{
"type": "string"
}Responses
200 · application/json
OK
Required fields: buckets
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ObjectStorageBucketsOutputBody.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"buckets": {
"items": {
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/Bucket.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"created_at": {
"format": "date-time",
"type": "string"
},
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"s3_name": {
"type": "string"
},
"state": {
"type": "string"
}
},
"required": [
"id",
"name",
"s3_name",
"state",
"created_at"
],
"type": "object"
},
"type": [
"array",
"null"
]
}
},
"required": [
"buckets"
],
"type": "object"
}default · application/problem+json
Error
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ErrorModel.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"detail": {
"description": "A human-readable explanation specific to this occurrence of the problem.",
"examples": [
"Property foo is required but is missing."
],
"type": "string"
},
"errors": {
"description": "Optional list of individual error details",
"items": {
"additionalProperties": false,
"properties": {
"location": {
"description": "Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'",
"type": "string"
},
"message": {
"description": "Error message text",
"type": "string"
},
"value": {
"description": "The value at the given location"
}
},
"type": "object"
},
"type": [
"array",
"null"
]
},
"instance": {
"description": "A URI reference that identifies the specific occurrence of the problem.",
"examples": [
"https://example.com/error-log/abc123"
],
"format": "uri",
"type": "string"
},
"status": {
"description": "HTTP status code",
"examples": [
400
],
"format": "int64",
"type": "integer"
},
"title": {
"description": "A short, human-readable summary of the problem type. This value should not change between occurrences of the error.",
"examples": [
"Bad Request"
],
"type": "string"
},
"type": {
"default": "about:blank",
"description": "A URI reference to human-readable documentation for the error.",
"examples": [
"https://example.com/errors/example"
],
"format": "uri",
"type": "string"
}
},
"type": "object"
}POST /platform/v1/object-storage/bucketsCreate organization bucket
Parameters
DPoP · header · required
Fresh ES256 DPoP proof bound to this method, canonical public URL and access token
{
"type": "string"
}Request body
application/json · required
Required fields: name
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ObjectStorageCreateBucketInputBody.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"name": {
"maxLength": 63,
"minLength": 2,
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
} Responses
201 · application/json
Created
Required fields: id, name, s3_name, state, created_at
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/Bucket.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"created_at": {
"format": "date-time",
"type": "string"
},
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"s3_name": {
"type": "string"
},
"state": {
"type": "string"
}
},
"required": [
"id",
"name",
"s3_name",
"state",
"created_at"
],
"type": "object"
}202
Bucket is persisted and provisioning continues
400 · application/problem+json
Bad Request
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ErrorModel.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"detail": {
"description": "A human-readable explanation specific to this occurrence of the problem.",
"examples": [
"Property foo is required but is missing."
],
"type": "string"
},
"errors": {
"description": "Optional list of individual error details",
"items": {
"additionalProperties": false,
"properties": {
"location": {
"description": "Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'",
"type": "string"
},
"message": {
"description": "Error message text",
"type": "string"
},
"value": {
"description": "The value at the given location"
}
},
"type": "object"
},
"type": [
"array",
"null"
]
},
"instance": {
"description": "A URI reference that identifies the specific occurrence of the problem.",
"examples": [
"https://example.com/error-log/abc123"
],
"format": "uri",
"type": "string"
},
"status": {
"description": "HTTP status code",
"examples": [
400
],
"format": "int64",
"type": "integer"
},
"title": {
"description": "A short, human-readable summary of the problem type. This value should not change between occurrences of the error.",
"examples": [
"Bad Request"
],
"type": "string"
},
"type": {
"default": "about:blank",
"description": "A URI reference to human-readable documentation for the error.",
"examples": [
"https://example.com/errors/example"
],
"format": "uri",
"type": "string"
}
},
"type": "object"
}401 · application/problem+json
Unauthorized
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ErrorModel.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"detail": {
"description": "A human-readable explanation specific to this occurrence of the problem.",
"examples": [
"Property foo is required but is missing."
],
"type": "string"
},
"errors": {
"description": "Optional list of individual error details",
"items": {
"additionalProperties": false,
"properties": {
"location": {
"description": "Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'",
"type": "string"
},
"message": {
"description": "Error message text",
"type": "string"
},
"value": {
"description": "The value at the given location"
}
},
"type": "object"
},
"type": [
"array",
"null"
]
},
"instance": {
"description": "A URI reference that identifies the specific occurrence of the problem.",
"examples": [
"https://example.com/error-log/abc123"
],
"format": "uri",
"type": "string"
},
"status": {
"description": "HTTP status code",
"examples": [
400
],
"format": "int64",
"type": "integer"
},
"title": {
"description": "A short, human-readable summary of the problem type. This value should not change between occurrences of the error.",
"examples": [
"Bad Request"
],
"type": "string"
},
"type": {
"default": "about:blank",
"description": "A URI reference to human-readable documentation for the error.",
"examples": [
"https://example.com/errors/example"
],
"format": "uri",
"type": "string"
}
},
"type": "object"
}403 · application/problem+json
Forbidden
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ErrorModel.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"detail": {
"description": "A human-readable explanation specific to this occurrence of the problem.",
"examples": [
"Property foo is required but is missing."
],
"type": "string"
},
"errors": {
"description": "Optional list of individual error details",
"items": {
"additionalProperties": false,
"properties": {
"location": {
"description": "Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'",
"type": "string"
},
"message": {
"description": "Error message text",
"type": "string"
},
"value": {
"description": "The value at the given location"
}
},
"type": "object"
},
"type": [
"array",
"null"
]
},
"instance": {
"description": "A URI reference that identifies the specific occurrence of the problem.",
"examples": [
"https://example.com/error-log/abc123"
],
"format": "uri",
"type": "string"
},
"status": {
"description": "HTTP status code",
"examples": [
400
],
"format": "int64",
"type": "integer"
},
"title": {
"description": "A short, human-readable summary of the problem type. This value should not change between occurrences of the error.",
"examples": [
"Bad Request"
],
"type": "string"
},
"type": {
"default": "about:blank",
"description": "A URI reference to human-readable documentation for the error.",
"examples": [
"https://example.com/errors/example"
],
"format": "uri",
"type": "string"
}
},
"type": "object"
}409 · application/problem+json
Conflict
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ErrorModel.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"detail": {
"description": "A human-readable explanation specific to this occurrence of the problem.",
"examples": [
"Property foo is required but is missing."
],
"type": "string"
},
"errors": {
"description": "Optional list of individual error details",
"items": {
"additionalProperties": false,
"properties": {
"location": {
"description": "Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'",
"type": "string"
},
"message": {
"description": "Error message text",
"type": "string"
},
"value": {
"description": "The value at the given location"
}
},
"type": "object"
},
"type": [
"array",
"null"
]
},
"instance": {
"description": "A URI reference that identifies the specific occurrence of the problem.",
"examples": [
"https://example.com/error-log/abc123"
],
"format": "uri",
"type": "string"
},
"status": {
"description": "HTTP status code",
"examples": [
400
],
"format": "int64",
"type": "integer"
},
"title": {
"description": "A short, human-readable summary of the problem type. This value should not change between occurrences of the error.",
"examples": [
"Bad Request"
],
"type": "string"
},
"type": {
"default": "about:blank",
"description": "A URI reference to human-readable documentation for the error.",
"examples": [
"https://example.com/errors/example"
],
"format": "uri",
"type": "string"
}
},
"type": "object"
}422 · application/problem+json
Unprocessable Entity
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ErrorModel.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"detail": {
"description": "A human-readable explanation specific to this occurrence of the problem.",
"examples": [
"Property foo is required but is missing."
],
"type": "string"
},
"errors": {
"description": "Optional list of individual error details",
"items": {
"additionalProperties": false,
"properties": {
"location": {
"description": "Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'",
"type": "string"
},
"message": {
"description": "Error message text",
"type": "string"
},
"value": {
"description": "The value at the given location"
}
},
"type": "object"
},
"type": [
"array",
"null"
]
},
"instance": {
"description": "A URI reference that identifies the specific occurrence of the problem.",
"examples": [
"https://example.com/error-log/abc123"
],
"format": "uri",
"type": "string"
},
"status": {
"description": "HTTP status code",
"examples": [
400
],
"format": "int64",
"type": "integer"
},
"title": {
"description": "A short, human-readable summary of the problem type. This value should not change between occurrences of the error.",
"examples": [
"Bad Request"
],
"type": "string"
},
"type": {
"default": "about:blank",
"description": "A URI reference to human-readable documentation for the error.",
"examples": [
"https://example.com/errors/example"
],
"format": "uri",
"type": "string"
}
},
"type": "object"
}500 · application/problem+json
Internal Server Error
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ErrorModel.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"detail": {
"description": "A human-readable explanation specific to this occurrence of the problem.",
"examples": [
"Property foo is required but is missing."
],
"type": "string"
},
"errors": {
"description": "Optional list of individual error details",
"items": {
"additionalProperties": false,
"properties": {
"location": {
"description": "Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'",
"type": "string"
},
"message": {
"description": "Error message text",
"type": "string"
},
"value": {
"description": "The value at the given location"
}
},
"type": "object"
},
"type": [
"array",
"null"
]
},
"instance": {
"description": "A URI reference that identifies the specific occurrence of the problem.",
"examples": [
"https://example.com/error-log/abc123"
],
"format": "uri",
"type": "string"
},
"status": {
"description": "HTTP status code",
"examples": [
400
],
"format": "int64",
"type": "integer"
},
"title": {
"description": "A short, human-readable summary of the problem type. This value should not change between occurrences of the error.",
"examples": [
"Bad Request"
],
"type": "string"
},
"type": {
"default": "about:blank",
"description": "A URI reference to human-readable documentation for the error.",
"examples": [
"https://example.com/errors/example"
],
"format": "uri",
"type": "string"
}
},
"type": "object"
}503 · application/problem+json
Service Unavailable
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ErrorModel.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"detail": {
"description": "A human-readable explanation specific to this occurrence of the problem.",
"examples": [
"Property foo is required but is missing."
],
"type": "string"
},
"errors": {
"description": "Optional list of individual error details",
"items": {
"additionalProperties": false,
"properties": {
"location": {
"description": "Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'",
"type": "string"
},
"message": {
"description": "Error message text",
"type": "string"
},
"value": {
"description": "The value at the given location"
}
},
"type": "object"
},
"type": [
"array",
"null"
]
},
"instance": {
"description": "A URI reference that identifies the specific occurrence of the problem.",
"examples": [
"https://example.com/error-log/abc123"
],
"format": "uri",
"type": "string"
},
"status": {
"description": "HTTP status code",
"examples": [
400
],
"format": "int64",
"type": "integer"
},
"title": {
"description": "A short, human-readable summary of the problem type. This value should not change between occurrences of the error.",
"examples": [
"Bad Request"
],
"type": "string"
},
"type": {
"default": "about:blank",
"description": "A URI reference to human-readable documentation for the error.",
"examples": [
"https://example.com/errors/example"
],
"format": "uri",
"type": "string"
}
},
"type": "object"
}DELETE /platform/v1/object-storage/buckets/{id}Delete empty organization bucket
Parameters
id · path · required
{
"type": "string"
}DPoP · header · required
Fresh ES256 DPoP proof bound to this method, canonical public URL and access token
{
"type": "string"
}Responses
202
Deletion is persisted and will be retried
204
No Content
401 · application/problem+json
Unauthorized
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ErrorModel.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"detail": {
"description": "A human-readable explanation specific to this occurrence of the problem.",
"examples": [
"Property foo is required but is missing."
],
"type": "string"
},
"errors": {
"description": "Optional list of individual error details",
"items": {
"additionalProperties": false,
"properties": {
"location": {
"description": "Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'",
"type": "string"
},
"message": {
"description": "Error message text",
"type": "string"
},
"value": {
"description": "The value at the given location"
}
},
"type": "object"
},
"type": [
"array",
"null"
]
},
"instance": {
"description": "A URI reference that identifies the specific occurrence of the problem.",
"examples": [
"https://example.com/error-log/abc123"
],
"format": "uri",
"type": "string"
},
"status": {
"description": "HTTP status code",
"examples": [
400
],
"format": "int64",
"type": "integer"
},
"title": {
"description": "A short, human-readable summary of the problem type. This value should not change between occurrences of the error.",
"examples": [
"Bad Request"
],
"type": "string"
},
"type": {
"default": "about:blank",
"description": "A URI reference to human-readable documentation for the error.",
"examples": [
"https://example.com/errors/example"
],
"format": "uri",
"type": "string"
}
},
"type": "object"
}403 · application/problem+json
Forbidden
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ErrorModel.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"detail": {
"description": "A human-readable explanation specific to this occurrence of the problem.",
"examples": [
"Property foo is required but is missing."
],
"type": "string"
},
"errors": {
"description": "Optional list of individual error details",
"items": {
"additionalProperties": false,
"properties": {
"location": {
"description": "Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'",
"type": "string"
},
"message": {
"description": "Error message text",
"type": "string"
},
"value": {
"description": "The value at the given location"
}
},
"type": "object"
},
"type": [
"array",
"null"
]
},
"instance": {
"description": "A URI reference that identifies the specific occurrence of the problem.",
"examples": [
"https://example.com/error-log/abc123"
],
"format": "uri",
"type": "string"
},
"status": {
"description": "HTTP status code",
"examples": [
400
],
"format": "int64",
"type": "integer"
},
"title": {
"description": "A short, human-readable summary of the problem type. This value should not change between occurrences of the error.",
"examples": [
"Bad Request"
],
"type": "string"
},
"type": {
"default": "about:blank",
"description": "A URI reference to human-readable documentation for the error.",
"examples": [
"https://example.com/errors/example"
],
"format": "uri",
"type": "string"
}
},
"type": "object"
}404 · application/problem+json
Not Found
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ErrorModel.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"detail": {
"description": "A human-readable explanation specific to this occurrence of the problem.",
"examples": [
"Property foo is required but is missing."
],
"type": "string"
},
"errors": {
"description": "Optional list of individual error details",
"items": {
"additionalProperties": false,
"properties": {
"location": {
"description": "Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'",
"type": "string"
},
"message": {
"description": "Error message text",
"type": "string"
},
"value": {
"description": "The value at the given location"
}
},
"type": "object"
},
"type": [
"array",
"null"
]
},
"instance": {
"description": "A URI reference that identifies the specific occurrence of the problem.",
"examples": [
"https://example.com/error-log/abc123"
],
"format": "uri",
"type": "string"
},
"status": {
"description": "HTTP status code",
"examples": [
400
],
"format": "int64",
"type": "integer"
},
"title": {
"description": "A short, human-readable summary of the problem type. This value should not change between occurrences of the error.",
"examples": [
"Bad Request"
],
"type": "string"
},
"type": {
"default": "about:blank",
"description": "A URI reference to human-readable documentation for the error.",
"examples": [
"https://example.com/errors/example"
],
"format": "uri",
"type": "string"
}
},
"type": "object"
}409 · application/problem+json
Conflict
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ErrorModel.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"detail": {
"description": "A human-readable explanation specific to this occurrence of the problem.",
"examples": [
"Property foo is required but is missing."
],
"type": "string"
},
"errors": {
"description": "Optional list of individual error details",
"items": {
"additionalProperties": false,
"properties": {
"location": {
"description": "Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'",
"type": "string"
},
"message": {
"description": "Error message text",
"type": "string"
},
"value": {
"description": "The value at the given location"
}
},
"type": "object"
},
"type": [
"array",
"null"
]
},
"instance": {
"description": "A URI reference that identifies the specific occurrence of the problem.",
"examples": [
"https://example.com/error-log/abc123"
],
"format": "uri",
"type": "string"
},
"status": {
"description": "HTTP status code",
"examples": [
400
],
"format": "int64",
"type": "integer"
},
"title": {
"description": "A short, human-readable summary of the problem type. This value should not change between occurrences of the error.",
"examples": [
"Bad Request"
],
"type": "string"
},
"type": {
"default": "about:blank",
"description": "A URI reference to human-readable documentation for the error.",
"examples": [
"https://example.com/errors/example"
],
"format": "uri",
"type": "string"
}
},
"type": "object"
}422 · application/problem+json
Unprocessable Entity
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ErrorModel.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"detail": {
"description": "A human-readable explanation specific to this occurrence of the problem.",
"examples": [
"Property foo is required but is missing."
],
"type": "string"
},
"errors": {
"description": "Optional list of individual error details",
"items": {
"additionalProperties": false,
"properties": {
"location": {
"description": "Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'",
"type": "string"
},
"message": {
"description": "Error message text",
"type": "string"
},
"value": {
"description": "The value at the given location"
}
},
"type": "object"
},
"type": [
"array",
"null"
]
},
"instance": {
"description": "A URI reference that identifies the specific occurrence of the problem.",
"examples": [
"https://example.com/error-log/abc123"
],
"format": "uri",
"type": "string"
},
"status": {
"description": "HTTP status code",
"examples": [
400
],
"format": "int64",
"type": "integer"
},
"title": {
"description": "A short, human-readable summary of the problem type. This value should not change between occurrences of the error.",
"examples": [
"Bad Request"
],
"type": "string"
},
"type": {
"default": "about:blank",
"description": "A URI reference to human-readable documentation for the error.",
"examples": [
"https://example.com/errors/example"
],
"format": "uri",
"type": "string"
}
},
"type": "object"
}500 · application/problem+json
Internal Server Error
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ErrorModel.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"detail": {
"description": "A human-readable explanation specific to this occurrence of the problem.",
"examples": [
"Property foo is required but is missing."
],
"type": "string"
},
"errors": {
"description": "Optional list of individual error details",
"items": {
"additionalProperties": false,
"properties": {
"location": {
"description": "Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'",
"type": "string"
},
"message": {
"description": "Error message text",
"type": "string"
},
"value": {
"description": "The value at the given location"
}
},
"type": "object"
},
"type": [
"array",
"null"
]
},
"instance": {
"description": "A URI reference that identifies the specific occurrence of the problem.",
"examples": [
"https://example.com/error-log/abc123"
],
"format": "uri",
"type": "string"
},
"status": {
"description": "HTTP status code",
"examples": [
400
],
"format": "int64",
"type": "integer"
},
"title": {
"description": "A short, human-readable summary of the problem type. This value should not change between occurrences of the error.",
"examples": [
"Bad Request"
],
"type": "string"
},
"type": {
"default": "about:blank",
"description": "A URI reference to human-readable documentation for the error.",
"examples": [
"https://example.com/errors/example"
],
"format": "uri",
"type": "string"
}
},
"type": "object"
}503 · application/problem+json
Service Unavailable
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ErrorModel.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"detail": {
"description": "A human-readable explanation specific to this occurrence of the problem.",
"examples": [
"Property foo is required but is missing."
],
"type": "string"
},
"errors": {
"description": "Optional list of individual error details",
"items": {
"additionalProperties": false,
"properties": {
"location": {
"description": "Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'",
"type": "string"
},
"message": {
"description": "Error message text",
"type": "string"
},
"value": {
"description": "The value at the given location"
}
},
"type": "object"
},
"type": [
"array",
"null"
]
},
"instance": {
"description": "A URI reference that identifies the specific occurrence of the problem.",
"examples": [
"https://example.com/error-log/abc123"
],
"format": "uri",
"type": "string"
},
"status": {
"description": "HTTP status code",
"examples": [
400
],
"format": "int64",
"type": "integer"
},
"title": {
"description": "A short, human-readable summary of the problem type. This value should not change between occurrences of the error.",
"examples": [
"Bad Request"
],
"type": "string"
},
"type": {
"default": "about:blank",
"description": "A URI reference to human-readable documentation for the error.",
"examples": [
"https://example.com/errors/example"
],
"format": "uri",
"type": "string"
}
},
"type": "object"
}GET /platform/v1/object-storage/buckets/{id}/credentialsList bucket credentials
Parameters
id · path · required
{
"type": "string"
}DPoP · header · required
Fresh ES256 DPoP proof bound to this method, canonical public URL and access token
{
"type": "string"
}Responses
200 · application/json
OK
Required fields: credentials
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ObjectStorageCredentialsOutputBody.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"credentials": {
"items": {
"additionalProperties": false,
"properties": {
"access_key_id": {
"type": "string"
},
"created_at": {
"format": "date-time",
"type": "string"
},
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"state": {
"type": "string"
},
"write_access": {
"type": "boolean"
}
},
"required": [
"id",
"name",
"write_access",
"state",
"created_at"
],
"type": "object"
},
"type": [
"array",
"null"
]
}
},
"required": [
"credentials"
],
"type": "object"
}default · application/problem+json
Error
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ErrorModel.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"detail": {
"description": "A human-readable explanation specific to this occurrence of the problem.",
"examples": [
"Property foo is required but is missing."
],
"type": "string"
},
"errors": {
"description": "Optional list of individual error details",
"items": {
"additionalProperties": false,
"properties": {
"location": {
"description": "Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'",
"type": "string"
},
"message": {
"description": "Error message text",
"type": "string"
},
"value": {
"description": "The value at the given location"
}
},
"type": "object"
},
"type": [
"array",
"null"
]
},
"instance": {
"description": "A URI reference that identifies the specific occurrence of the problem.",
"examples": [
"https://example.com/error-log/abc123"
],
"format": "uri",
"type": "string"
},
"status": {
"description": "HTTP status code",
"examples": [
400
],
"format": "int64",
"type": "integer"
},
"title": {
"description": "A short, human-readable summary of the problem type. This value should not change between occurrences of the error.",
"examples": [
"Bad Request"
],
"type": "string"
},
"type": {
"default": "about:blank",
"description": "A URI reference to human-readable documentation for the error.",
"examples": [
"https://example.com/errors/example"
],
"format": "uri",
"type": "string"
}
},
"type": "object"
}POST /platform/v1/object-storage/buckets/{id}/credentialsCreate bucket credential; secret returned once
Parameters
id · path · required
{
"type": "string"
}DPoP · header · required
Fresh ES256 DPoP proof bound to this method, canonical public URL and access token
{
"type": "string"
}Request body
application/json · required
Required fields: name, write_access
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ObjectStorageCreateCredentialInputBody.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"name": {
"maxLength": 63,
"minLength": 2,
"type": "string"
},
"write_access": {
"type": "boolean"
}
},
"required": [
"name",
"write_access"
],
"type": "object"
} Responses
201 · application/json
Created
Required fields: credential, secret_access_key
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/CreatedCredential.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"credential": {
"additionalProperties": false,
"properties": {
"access_key_id": {
"type": "string"
},
"created_at": {
"format": "date-time",
"type": "string"
},
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"state": {
"type": "string"
},
"write_access": {
"type": "boolean"
}
},
"required": [
"id",
"name",
"write_access",
"state",
"created_at"
],
"type": "object"
},
"secret_access_key": {
"type": "string"
}
},
"required": [
"credential",
"secret_access_key"
],
"type": "object"
}default · application/problem+json
Error
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ErrorModel.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"detail": {
"description": "A human-readable explanation specific to this occurrence of the problem.",
"examples": [
"Property foo is required but is missing."
],
"type": "string"
},
"errors": {
"description": "Optional list of individual error details",
"items": {
"additionalProperties": false,
"properties": {
"location": {
"description": "Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'",
"type": "string"
},
"message": {
"description": "Error message text",
"type": "string"
},
"value": {
"description": "The value at the given location"
}
},
"type": "object"
},
"type": [
"array",
"null"
]
},
"instance": {
"description": "A URI reference that identifies the specific occurrence of the problem.",
"examples": [
"https://example.com/error-log/abc123"
],
"format": "uri",
"type": "string"
},
"status": {
"description": "HTTP status code",
"examples": [
400
],
"format": "int64",
"type": "integer"
},
"title": {
"description": "A short, human-readable summary of the problem type. This value should not change between occurrences of the error.",
"examples": [
"Bad Request"
],
"type": "string"
},
"type": {
"default": "about:blank",
"description": "A URI reference to human-readable documentation for the error.",
"examples": [
"https://example.com/errors/example"
],
"format": "uri",
"type": "string"
}
},
"type": "object"
}DELETE /platform/v1/object-storage/buckets/{id}/credentials/{credential_id}Revoke bucket credential
Parameters
id · path · required
{
"type": "string"
}credential_id · path · required
{
"type": "string"
}DPoP · header · required
Fresh ES256 DPoP proof bound to this method, canonical public URL and access token
{
"type": "string"
}Responses
202
Revocation is pending gateway confirmation
204
No Content
401 · application/problem+json
Unauthorized
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ErrorModel.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"detail": {
"description": "A human-readable explanation specific to this occurrence of the problem.",
"examples": [
"Property foo is required but is missing."
],
"type": "string"
},
"errors": {
"description": "Optional list of individual error details",
"items": {
"additionalProperties": false,
"properties": {
"location": {
"description": "Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'",
"type": "string"
},
"message": {
"description": "Error message text",
"type": "string"
},
"value": {
"description": "The value at the given location"
}
},
"type": "object"
},
"type": [
"array",
"null"
]
},
"instance": {
"description": "A URI reference that identifies the specific occurrence of the problem.",
"examples": [
"https://example.com/error-log/abc123"
],
"format": "uri",
"type": "string"
},
"status": {
"description": "HTTP status code",
"examples": [
400
],
"format": "int64",
"type": "integer"
},
"title": {
"description": "A short, human-readable summary of the problem type. This value should not change between occurrences of the error.",
"examples": [
"Bad Request"
],
"type": "string"
},
"type": {
"default": "about:blank",
"description": "A URI reference to human-readable documentation for the error.",
"examples": [
"https://example.com/errors/example"
],
"format": "uri",
"type": "string"
}
},
"type": "object"
}403 · application/problem+json
Forbidden
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ErrorModel.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"detail": {
"description": "A human-readable explanation specific to this occurrence of the problem.",
"examples": [
"Property foo is required but is missing."
],
"type": "string"
},
"errors": {
"description": "Optional list of individual error details",
"items": {
"additionalProperties": false,
"properties": {
"location": {
"description": "Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'",
"type": "string"
},
"message": {
"description": "Error message text",
"type": "string"
},
"value": {
"description": "The value at the given location"
}
},
"type": "object"
},
"type": [
"array",
"null"
]
},
"instance": {
"description": "A URI reference that identifies the specific occurrence of the problem.",
"examples": [
"https://example.com/error-log/abc123"
],
"format": "uri",
"type": "string"
},
"status": {
"description": "HTTP status code",
"examples": [
400
],
"format": "int64",
"type": "integer"
},
"title": {
"description": "A short, human-readable summary of the problem type. This value should not change between occurrences of the error.",
"examples": [
"Bad Request"
],
"type": "string"
},
"type": {
"default": "about:blank",
"description": "A URI reference to human-readable documentation for the error.",
"examples": [
"https://example.com/errors/example"
],
"format": "uri",
"type": "string"
}
},
"type": "object"
}404 · application/problem+json
Not Found
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ErrorModel.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"detail": {
"description": "A human-readable explanation specific to this occurrence of the problem.",
"examples": [
"Property foo is required but is missing."
],
"type": "string"
},
"errors": {
"description": "Optional list of individual error details",
"items": {
"additionalProperties": false,
"properties": {
"location": {
"description": "Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'",
"type": "string"
},
"message": {
"description": "Error message text",
"type": "string"
},
"value": {
"description": "The value at the given location"
}
},
"type": "object"
},
"type": [
"array",
"null"
]
},
"instance": {
"description": "A URI reference that identifies the specific occurrence of the problem.",
"examples": [
"https://example.com/error-log/abc123"
],
"format": "uri",
"type": "string"
},
"status": {
"description": "HTTP status code",
"examples": [
400
],
"format": "int64",
"type": "integer"
},
"title": {
"description": "A short, human-readable summary of the problem type. This value should not change between occurrences of the error.",
"examples": [
"Bad Request"
],
"type": "string"
},
"type": {
"default": "about:blank",
"description": "A URI reference to human-readable documentation for the error.",
"examples": [
"https://example.com/errors/example"
],
"format": "uri",
"type": "string"
}
},
"type": "object"
}422 · application/problem+json
Unprocessable Entity
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ErrorModel.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"detail": {
"description": "A human-readable explanation specific to this occurrence of the problem.",
"examples": [
"Property foo is required but is missing."
],
"type": "string"
},
"errors": {
"description": "Optional list of individual error details",
"items": {
"additionalProperties": false,
"properties": {
"location": {
"description": "Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'",
"type": "string"
},
"message": {
"description": "Error message text",
"type": "string"
},
"value": {
"description": "The value at the given location"
}
},
"type": "object"
},
"type": [
"array",
"null"
]
},
"instance": {
"description": "A URI reference that identifies the specific occurrence of the problem.",
"examples": [
"https://example.com/error-log/abc123"
],
"format": "uri",
"type": "string"
},
"status": {
"description": "HTTP status code",
"examples": [
400
],
"format": "int64",
"type": "integer"
},
"title": {
"description": "A short, human-readable summary of the problem type. This value should not change between occurrences of the error.",
"examples": [
"Bad Request"
],
"type": "string"
},
"type": {
"default": "about:blank",
"description": "A URI reference to human-readable documentation for the error.",
"examples": [
"https://example.com/errors/example"
],
"format": "uri",
"type": "string"
}
},
"type": "object"
}500 · application/problem+json
Internal Server Error
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ErrorModel.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"detail": {
"description": "A human-readable explanation specific to this occurrence of the problem.",
"examples": [
"Property foo is required but is missing."
],
"type": "string"
},
"errors": {
"description": "Optional list of individual error details",
"items": {
"additionalProperties": false,
"properties": {
"location": {
"description": "Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'",
"type": "string"
},
"message": {
"description": "Error message text",
"type": "string"
},
"value": {
"description": "The value at the given location"
}
},
"type": "object"
},
"type": [
"array",
"null"
]
},
"instance": {
"description": "A URI reference that identifies the specific occurrence of the problem.",
"examples": [
"https://example.com/error-log/abc123"
],
"format": "uri",
"type": "string"
},
"status": {
"description": "HTTP status code",
"examples": [
400
],
"format": "int64",
"type": "integer"
},
"title": {
"description": "A short, human-readable summary of the problem type. This value should not change between occurrences of the error.",
"examples": [
"Bad Request"
],
"type": "string"
},
"type": {
"default": "about:blank",
"description": "A URI reference to human-readable documentation for the error.",
"examples": [
"https://example.com/errors/example"
],
"format": "uri",
"type": "string"
}
},
"type": "object"
}503 · application/problem+json
Service Unavailable
{
"additionalProperties": false,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/schemas/ErrorModel.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"detail": {
"description": "A human-readable explanation specific to this occurrence of the problem.",
"examples": [
"Property foo is required but is missing."
],
"type": "string"
},
"errors": {
"description": "Optional list of individual error details",
"items": {
"additionalProperties": false,
"properties": {
"location": {
"description": "Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'",
"type": "string"
},
"message": {
"description": "Error message text",
"type": "string"
},
"value": {
"description": "The value at the given location"
}
},
"type": "object"
},
"type": [
"array",
"null"
]
},
"instance": {
"description": "A URI reference that identifies the specific occurrence of the problem.",
"examples": [
"https://example.com/error-log/abc123"
],
"format": "uri",
"type": "string"
},
"status": {
"description": "HTTP status code",
"examples": [
400
],
"format": "int64",
"type": "integer"
},
"title": {
"description": "A short, human-readable summary of the problem type. This value should not change between occurrences of the error.",
"examples": [
"Bad Request"
],
"type": "string"
},
"type": {
"default": "about:blank",
"description": "A URI reference to human-readable documentation for the error.",
"examples": [
"https://example.com/errors/example"
],
"format": "uri",
"type": "string"
}
},
"type": "object"
}