Models#

Shared request and response types used across the v1 API. See the error model for how failures are reported.

ErrorCode#

A stable, machine-readable error code in SCREAMING_SNAKE_CASE. Clients branch on this value, never on the human-readable title/detail prose. The baseline codes below cover the standard HTTP failure categories; endpoint-specific codes (e.g. DEPLOYMENT_NOT_FOUND) are appended to this enum alongside the endpoints that emit them, which is an additive, non-breaking change under the v1 stability policy.

Enum values

Value
VALIDATION_FAILED
UNAUTHENTICATED
PERMISSION_DENIED
NOT_FOUND
METHOD_NOT_ALLOWED
CONFLICT
UNPROCESSABLE
RATE_LIMITED
INTERNAL
SERVICE_UNAVAILABLE
OPERATION_FAILED

Problem#

A structured error body returned for every non-2xx response, following RFC 9457 (Problem Details for HTTP APIs). This is the single error model for the entire v1 API — there are no ad-hoc error shapes.

FieldTypeRequiredDescription
typestringyesA URI identifying the problem type; when dereferenced it points at human-readable documentation for the error.
titlestringyesA short, human-readable summary of the problem type.
statusintegeryesThe HTTP status code, repeated in the body for convenience.
detailstringnoA human-readable explanation specific to this occurrence of the problem.
instancestringnoA URI reference identifying the specific occurrence (typically the request path).
codestringyesA stable, machine-readable error code in SCREAMING_SNAKE_CASE. Clients branch on this value, never on the human-readable title/detail prose. The baseline codes below cover the standard HTTP failure categories; endpoint-specific codes (e.g. DEPLOYMENT_NOT_FOUND) are appended to this enum alongside the endpoints that emit them, which is an additive, non-breaking change under the v1 stability policy.
request_idstringyesThe request identifier, echoed on every response. Include it when contacting support so a request can be traced end-to-end.

Meta#

Response metadata carried alongside the primary data payload. All fields are optional; list endpoints populate next_page_token for cursor pagination.

FieldTypeRequiredDescription
next_page_tokenstringnoOpaque cursor for the next page of a list response. Absent when there are no further results — never present and empty — otherwise pass it back as the page_token query parameter to fetch the next page.

Envelope#

The success envelope wrapping every 2xx response body: the resource or list of resources under data, with optional meta. This is the single success shape for the API — there are no unenveloped success bodies. Endpoints narrow data to a concrete resource via allOf; the base leaves data unconstrained so that composition works.

FieldTypeRequiredDescription
dataobject,arrayyesThe primary response payload — a resource, or an array of resources for list endpoints.
metaobjectnoResponse metadata carried alongside the primary data payload. All fields are optional; list endpoints populate next_page_token for cursor pagination.

UserEmailAddress#

An email address belonging to a user.

FieldTypeRequiredDescription
addressstringyesThe email address.
is_verifiedbooleanyesWhether the address has completed email verification.
is_primarybooleanyesWhether this is the user’s primary address. Exactly one address is primary.

User#

A Hosted user. GET /api/v1/user returns the authenticated user’s profile. v1 returns only public-facing profile fields — the identity provider the account signs in with, session state, and credential metadata are never included.

FieldTypeRequiredDescription
usernamestringyesThe user’s Hosted username (unique handle).
display_namestringnoThe user’s display name. May be empty.
companystringnoThe user’s stated company. May be empty.
email_addressesarrayyesThe user’s email addresses. Returned only for the authenticated user themselves; empty for any other caller.

InstanceType#

A compute instance type a deployment can run on.

FieldTypeRequiredDescription
idstringyesThe identifier POST /api/v1/deployments accepts as instance_type_id.
namestringyesThe display name. A deployment reports this as instance_type_name.
cpusintegernoVirtual CPUs.
memory_gbintegernoMemory, in gigabytes.
descriptionstringnoA human-readable summary of what the instance suits.
hourly_cost_usdnumbernoCost per hour in US dollars. Absent when no hourly price is published for this instance type.

StorageOption#

A storage type a deployment’s volume can use.

FieldTypeRequiredDescription
idstringyesThe identifier POST /api/v1/deployments accepts as volume_type_id.
namestringyesThe display name. A deployment reports this as volume_type_name.
descriptionstringnoA human-readable summary of the storage type.
min_size_gbintegernoSmallest volume size this type supports, in gigabytes. volume_size_gb on a create request must be at least this.
max_size_gbintegernoLargest volume size this type supports, in gigabytes.
monthly_cost_usd_per_gbnumbernoCost per gigabyte per month, in US dollars.

DeploymentInstance#

One instance backing a deployment. A deployment has a primary and, when it has read replicas, one instance per replica.

FieldTypeRequiredDescription
idstringyesThe instance’s identifier, unique within the deployment.
indexintegeryesThe instance’s position in the deployment. 0 is the first instance; replicas take the following indices.
is_primarybooleanyesWhether this instance is currently the primary. Exactly one instance of a started deployment is primary, and which one can change over the deployment’s life.
hoststringnoThe hostname for this specific instance. Connect to the deployment’s own host unless you mean to address one instance directly.
instance_type_namestringnoThe display name of this instance’s type.
volume_type_namestringnoThe display name of this instance’s storage type.
volume_size_gbintegernoThe size of this instance’s storage volume, in gigabytes.
hourly_cost_usdnumbernoThis instance’s cost per hour, in US dollars. A deployment’s total is the sum across its instances.

DeploymentOptions#

The options available for creating a deployment, narrowed by the query parameters supplied. instance_types and storage_options are absent until enough of the chain has been supplied to determine them.

FieldTypeRequiredDescription
cloudstringyesThe cloud the deployment runs in.
zonesarrayyesThe zones this cloud supports.
instance_typesarraynoInstance types available in the requested zone. Absent when zone wasn’t supplied.
storage_optionsarraynoStorage types compatible with the requested instance_type_id. Absent when zone and instance_type_id weren’t both supplied.

CreateDeploymentRequest#

The provisioning parameters for a new deployment.

v1.0 exposes the core parameters only. Restoring from a backup, cloning an existing deployment, workbench user settings, and private networking are all settable on the internal API but are not part of this request; each is its own feature with its own contract, and adding them is additive. The internal deployment test flag is deliberately not exposed at all.

FieldTypeRequiredDescription
ownerstringyesThe user or organization that will own the deployment. The caller must have permission to create deployments for it. 3–32 characters of letters, digits, hyphens, and underscores.
namestringyesThe deployment name, unique within the owner. 3–32 characters of letters, digits, hyphens, and underscores.
cloudstringyesThe cloud the deployment runs in.
zonestringyesThe cloud region to provision in, as listed by the deployment options.
cluster_typestringnoThe database engine the deployment runs. mysql_with_dolt_replicas is a MySQL primary with Dolt read replicas.
instance_type_idstringyesThe id of the instance type, from the deployment options endpoint. Note a deployment reports instance_type_name on a read — the id and the display name are different values.
volume_type_idstringyesThe id of the storage type, from the deployment options endpoint. As with instance_type_id, this is the id rather than the display name.
volume_size_gbintegeryesThe size of the storage volume, in gigabytes. Must fall within the selected storage type’s supported range.
replicasintegernoThe number of read replicas. Defaults to 0 when omitted.
webpki_certbooleannoServe a publicly-trusted (WebPKI) TLS certificate rather than a Hosted-issued one. Defaults to false when omitted.
expose_remotesapi_endpointbooleannoExpose a Dolt remotes API endpoint. Defaults to false when omitted.
expose_mcpbooleannoExpose an MCP endpoint. Defaults to false when omitted.
expose_statsbooleannoExpose a statistics endpoint. Defaults to false when omitted.

DeploymentState#

The deployment’s lifecycle state. starting covers both initial provisioning and a restart; poll this field to observe a create or a resize reaching started.

Enum values

Value
starting
started
stopping
stopped

CloudProvider#

The cloud the deployment runs in.

Enum values

Value
aws
gcp
azure

ClusterType#

The database engine the deployment runs. mysql_with_dolt_replicas is a MySQL primary with Dolt read replicas.

Enum values

Value
dolt
doltgres
mysql_with_dolt_replicas

DeploymentRole#

The authenticated caller’s role on this deployment. Always present on a read, since a caller without at least read access cannot retrieve the deployment at all.

Enum values

Value
admin
writer
reader
reader_and_pulls

DeploymentSummary#

A deployment as it appears in a list.

This is deliberately not the same shape as Deployment. The list RPC returns a narrower record — it omits connection details, the caller’s role, and the creation audit fields, and it adds the last-backup figures shown in fleet views. Read the deployment itself for the full resource. As with Deployment, database credentials are never included.

FieldTypeRequiredDescription
ownerstringyesThe user or organization that owns the deployment.
namestringyesThe deployment name, unique within the owner.
statestringyesThe deployment’s lifecycle state. starting covers both initial provisioning and a restart; poll this field to observe a create or a resize reaching started.
cloudstringyesThe cloud the deployment runs in.
zonestringyesThe cloud region the deployment runs in.
cluster_typestringyesThe database engine the deployment runs. mysql_with_dolt_replicas is a MySQL primary with Dolt read replicas.
instance_type_namestringnoThe display name of the deployment’s instance type.
volume_type_namestringnoThe display name of the deployment’s storage type.
volume_size_gbintegernoThe size of the deployment’s storage volume, in gigabytes.
replicasintegernoThe number of read replicas. 0 for a single-instance deployment.
database_versionstringnoThe version of the database engine the deployment is running — a Dolt version for a dolt cluster, a Doltgres version for a doltgres one.
hourly_cost_usdnumbernoThe deployment’s current cost per hour, in US dollars.
webpki_certbooleannoWhether the deployment serves a publicly-trusted (WebPKI) TLS certificate.
last_backup_size_bytesintegernoSize of the most recent backup, in bytes. Absent when no backup has been taken or its size has not been computed yet.
last_backup_timestringnoWhen the most recent backup was taken. Absent when no backup has been taken.

Deployment#

A Hosted Dolt deployment.

v1 returns configuration and lifecycle state only. The deployment’s database credentials are deliberately not part of this resource — they are issued and rotated through the deployment credentials endpoints, so that reading a deployment is never a credential-disclosing operation.

Provider-specific private-networking configuration (AWS PrivateLink, GCP Private Service Connect, Azure Private Link) is not included in v1.0. Each carries its own endpoint collection and provisioning state, and will land as its own sub-resource; adding it is additive under the stability policy.

FieldTypeRequiredDescription
ownerstringyesThe user or organization that owns the deployment.
namestringyesThe deployment name, unique within the owner.
statestringyesThe deployment’s lifecycle state. starting covers both initial provisioning and a restart; poll this field to observe a create or a resize reaching started.
cloudstringyesThe cloud the deployment runs in.
zonestringyesThe cloud region the deployment runs in.
cluster_typestringyesThe database engine the deployment runs. mysql_with_dolt_replicas is a MySQL primary with Dolt read replicas.
instance_type_namestringnoThe display name of the deployment’s instance type. Note this is the name, not the id that POST /api/v1/deployments accepts; both are listed by the deployment options endpoint.
volume_type_namestringnoThe display name of the deployment’s storage type. As with instance_type_name, this is the name rather than the id used to create a deployment.
volume_size_gbintegernoThe size of the deployment’s storage volume, in gigabytes.
replicasintegernoThe number of read replicas. 0 for a single-instance deployment.
database_versionstringnoThe version of the database engine the deployment is running — a Dolt version for a dolt cluster, a Doltgres version for a doltgres one.
hoststringnoThe hostname clients connect to. Empty until the deployment reaches started.
portintegernoThe port clients connect to.
hourly_cost_usdnumbernoThe deployment’s current cost per hour, in US dollars.
webpki_certbooleannoWhether the deployment serves a publicly-trusted (WebPKI) TLS certificate rather than a Hosted-issued one.
expose_remotesapi_endpointbooleannoWhether the deployment exposes a Dolt remotes API endpoint.
expose_mcpbooleannoWhether the deployment exposes an MCP endpoint.
expose_statsbooleannoWhether the deployment exposes a statistics endpoint.
disable_automatic_dolt_updatesbooleannoWhether automatic Dolt version updates are disabled for this deployment.
caller_rolestringyesThe authenticated caller’s role on this deployment. Always present on a read, since a caller without at least read access cannot retrieve the deployment at all.
created_bystringnoThe username of the user who created the deployment.
created_atstringyesWhen the deployment was created.
destroy_atstringnoWhen the deployment is scheduled to be destroyed. Absent unless a destroy has been scheduled.
destroyed_bystringnoThe username of the user who destroyed the deployment. Absent unless it has been destroyed.