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).
codeErrorCodeyesA 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.
prev_page_tokenstringnoOpaque cursor for the previous page. Only log retrieval pages in both directions; every other list endpoint moves forward only and omits this. Pass it back as the prev_page_token query parameter.

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.
metaMetanoResponse 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_addressesUserEmailAddress[]yesThe 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.

ConfigSetting#

One database setting and the value this deployment runs it at.

FieldTypeRequiredDescription
keystringyesThe setting’s name.
valuestringyesThe value in effect — the deployment’s override when it has one, otherwise the default. A string even for numeric and boolean settings, as stored.
defaultstringyesThe value this setting takes when not overridden, and what it reverts to if the override is removed.
is_overriddenbooleanyesWhether the deployment has overridden this setting. When false, value equals default.

DeploymentConfig#

A deployment’s effective configuration — every supported setting, with the value it is running at.

Settings are wrapped in an object rather than returned as a bare list so the resource can gain fields without a breaking change.

FieldTypeRequiredDescription
settingsConfigSetting[]yesEvery setting Hosted supports for this deployment, in the order the catalogue reports them.

UpdateDeploymentRequest#

Settings to change on an existing deployment. Every property is optional, but at least one must be present.

Provider-specific private-networking allowlists are deliberately absent: private networking is not part of the Deployment resource in v1.0, and will be settable through its own sub-resource when that lands.

FieldTypeRequiredDescription
disable_automatic_dolt_updatesbooleannoWhether to stop Dolt updating itself during the deployment’s service window. Turn this on to pin the version, then roll it forward deliberately.

Send at least one of these fields.


PatchDeploymentConfigRequest#

The overrides to change. Keys the object omits keep whatever value they have; a key set to null is cleared and reverts to its default.

FieldTypeRequiredDescription
overridesobjectyesSetting key to value, or to null to clear it. Keys are the key values GET reports; values are strings whatever the setting’s underlying type, so a boolean is "true" or "false" and a number is its decimal digits.

ExposeServiceRequest#

Which service to expose or stop exposing. Exactly one property per request: each is applied by its own backend call, so accepting two would risk half-applying a change.

FieldTypeRequiredDescription
remotesapibooleannoWhether to serve the remotesapi endpoint, which is what dolt clone and dolt pull talk to. Requires the deployment to have a WebPKI certificate — 400 otherwise, since a public endpoint with a private CA is unusable.
mcpbooleannoWhether to serve the MCP endpoint.

Send exactly one of these fields.


ExposeAccepted#

Confirmation that a change to an exposed service was accepted. Deliberately minimal, like DisableAccepted: it echoes what was asked for, which is all that is certain at this point. GET the deployment to see whether it has taken effect.

FieldTypeRequiredDescription
ownerstringyesThe user or organization that owns the deployment.
namestringyesThe deployment name.
servicestringyesWhich service the request was about.
requestedbooleanyesThe value that was asked for. Not the deployment’s current value — read expose_remotesapi_endpoint or expose_mcp on the deployment for that.

AddInstanceRequest#

The instance to add to a deployment.

FieldTypeRequiredDescription
instance_type_idstringyesThe id of the instance type, from the deployment options endpoint. Note an instance 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.
volume_size_gbintegeryesThe size of the instance’s storage volume, in gigabytes. Must fall within the selected storage type’s supported range.
backup_idstringnoA backup of this deployment to restore into the new instance, from the backups list. Only valid when the deployment is disabled and this request is restarting it; supplying it otherwise is a 400. Without it a restarted deployment comes up empty.

InstanceDeleteAccepted#

Acknowledges that an instance has been accepted for removal.

FieldTypeRequiredDescription
idstringyesThe instance that is being removed.
statestringyesAlways stopping. The instance is being torn down; it leaves the instances list once that finishes.

LogLine#

One line of a deployment instance’s log output.

FieldTypeRequiredDescription
timestringyesWhen the line was logged.
textstringyesThe line as the instance emitted it, without a trailing newline.

MetricSeries#

One series of a metric. values has one entry per entry in the enclosing timestamps, in the same order.

FieldTypeRequiredDescription
namestringyesThe series’ name for display, unique within the metric.
unitstringnoThe unit the values are in. Absent when Hosted does not record one for the series.
values(number | null)[]yesOne value per timestamp, null where the metric had no datapoint at that moment. A series Hosted collects but has never recorded is all null rather than a shorter array.

MetricData#

One metric’s series over a window, sharing a single time axis.

FieldTypeRequiredDescription
metricstringyesThe metric that was read.
instance_idstringnoThe instance the metric was read from, echoed from instance_id. Absent when the request named none, in which case the deployment’s primary answered.
start_timestringyesThe start of the window, as asked for.
end_timestringyesThe end of the window, as asked for.
period_secondsintegeryesThe seconds between datapoints, chosen from the width of the window. Not the same as the spacing of timestamps, which skips any moment no series had a datapoint for.
timestampsstring[]yesThe time axis every series is laid against, oldest first. A moment no series had a datapoint for is absent from it.
seriesMetricSeries[]yesThe metric’s series. A metric can carry more than one, and they can be in different units.

Metric#

One metric a deployment collects. Read it with GET /api/v1/deployments/{owner}/{deployment}/metrics/{metric}, passing id. display_name is for display, and can change.

FieldTypeRequiredDescription
idstringyesThe metric’s identifier. Today’s values are connections, queries, query_latency, cpu, mem, disk, diskio, network, and replication_lag, but this is a string rather than an enum because Hosted adds metrics without a new API version.
display_namestringyesThe metric’s name for display.

DayOfWeek#

The day of the week a service window falls on, in UTC.

Enum values

Value
sunday
monday
tuesday
wednesday
thursday
friday
saturday

ServiceWindow#

One weekly window in which Hosted may restart the deployment’s instances for maintenance.

FieldTypeRequiredDescription
idstringyesThe window’s identifier, unique within the deployment. A default window has no identifier of its own and reports the nil UUID, 00000000-0000-0000-0000-000000000000.
day_of_weekDayOfWeekyesThe day of the week a service window falls on, in UTC.
start_hour_utcintegeryesThe first hour of the window, in UTC. Inclusive.
end_hour_utcintegeryesThe hour the window ends, in UTC. Exclusive, so a window of 3 to 5 covers 03:00 until 05:00.
is_defaultbooleanyesWhether this is the default window Hosted falls back to rather than one that was configured. true means no maintenance window has been set for this deployment.

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. Absent until the instance has come up and reported its address, so an instance that is still being provisioned has no host. There is no per-instance state on this API; host appearing is what tells you a newly added instance is reachable.
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
cloudCloudProvideryesThe cloud the deployment runs in.
zonesstring[]yesThe zones this cloud supports.
instance_typesInstanceType[]noInstance types available in the requested zone. Absent when zone wasn’t supplied.
storage_optionsStorageOption[]noStorage 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.
cloudCloudProvideryesThe cloud the deployment runs in.
zonestringyesThe cloud region to provision in, as listed by the deployment options.
cluster_typeClusterTypenoThe 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.

OperationType#

What the operation was asked to do. A kind of work this API version has no name for is reported as unknown.

Enum values

Value
reboot_instance
restart_dolt
create_backup
update_dolt
update_config
update_dolt_creds
change_primary
unknown

OperationRef#

A handle on work that was queued, returned in 202 responses. Pass id to GET /api/v1/operations/{id}, or follow href, to find out what became of it.

FieldTypeRequiredDescription
idstringyesThe operation’s identifier.
hrefstringyesAbsolute URL of the endpoint that reports this operation.

DatabaseVersions#

What a deployment’s database engine is running and the versions it can be upgraded or downgraded to.

FieldTypeRequiredDescription
currentstringyesThe version the deployment records, as database_version on the deployment.
availablestring[]yesThe latest versions for the deployment’s cluster_type, followed by versions previously installed on this deployment that are no longer in the latest list. POST on this path accepts these versions, newest first within each source list.

DoltCredentials#

The public half of the dolt creds key pair a deployment authenticates to DoltHub with. The private half lives on the deployment’s instances and is never returned.

FieldTypeRequiredDescription
key_idstringyesThe key pair’s identifier, which is what DoltHub lists the credential under.
public_keystringyesThe public key, to be added to the DoltHub account whose private databases the deployment should reach.

UpdateDatabaseVersionRequest#

The version to roll the deployment’s database engine to.

FieldTypeRequiredDescription
versionstringyesA version the deployment’s cluster_type supports, without a leading v. A version this API does not recognize is rejected rather than queued.

OperationErrorCode#

Which way an operation failed. Separate from ErrorCode, which classifies HTTP failures: an operation that failed is reported in a 200, and the request to read it succeeded.

Enum values

Value
EXPIRED
FAILED
INTERNAL

OperationStatus#

Where the operation has got to. succeeded and failed are final; the others mean the answer is not in yet.

Enum values

Value
queued
running
succeeded
failed

Operation#

Work Hosted carries out in the background, and what became of it.

FieldTypeRequiredDescription
idstringyesThe operation’s identifier, as returned by the endpoint that queued the work.
typeOperationTypeyesWhat the operation was asked to do. A kind of work this API version has no name for is reported as unknown.
statusOperationStatusyesWhere the operation has got to. succeeded and failed are final; the others mean the answer is not in yet.
cancelablebooleanyesWhether the operation can be canceled. Always false: Hosted cannot recall work it has queued.
errorobjectnoWhy the operation failed. Present only when status is failed, and reported as a code rather than a message.
created_atstringyesWhen the work was queued.
updated_atstringnoWhen the status last changed. Absent on an operation that is still queued, which has not changed since it was created.

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

Backup#

A stored backup of a deployment’s databases.

FieldTypeRequiredDescription
idstringyesThe backup’s identifier, unique within the deployment. Derived from the time it was taken.
databasesstring[]yesThe databases captured in this backup. Empty if the deployment had none at the time.
size_bytesintegernoThe backup’s size in bytes. Absent until it has been measured, which happens asynchronously after the backup is taken — so a recent backup legitimately has no size yet.
instance_indexintegeryesThe index of the deployment instance the backup was taken from.
created_atstringyesWhen the backup was taken.

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.
stateDeploymentStateyesThe deployment’s lifecycle state. starting covers both initial provisioning and a restart; poll this field to observe a create or a resize reaching started.
cloudCloudProvideryesThe cloud the deployment runs in.
zonestringyesThe cloud region the deployment runs in.
cluster_typeClusterTypeyesThe 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.

DisableAccepted#

Confirmation that a deployment’s shutdown was accepted. Deliberately minimal: it reports only what is certain once the shutdown commits. GET the deployment for its full state.

FieldTypeRequiredDescription
ownerstringyesThe user or organization that owns the deployment.
namestringyesThe deployment name.
stateDeploymentStateyesThe deployment’s lifecycle state. starting covers both initial provisioning and a restart; poll this field to observe a create or a resize reaching started.

PullState#

Where a pull request is in its life. merged is terminal and set once Hosted has recorded the merge; closed means it was abandoned without merging.

Enum values

Value
open
closed
merged

PullActivity#

Something that happened to a pull request. branch_deleted is recorded when a branch the pull request uses is deleted, including when a successful merge deletes the source branch. database_dropped is recorded when the pull request’s database is dropped.

Enum values

Value
opened
merged
closed
branch_deleted
database_dropped

PullActivityLogEntry#

One entry in a pull request’s activity log.

FieldTypeRequiredDescription
idstringyesThe entry’s identifier, unique within the pull request.
activityPullActivityyesSomething that happened to a pull request. branch_deleted is recorded when a branch the pull request uses is deleted, including when a successful merge deletes the source branch. database_dropped is recorded when the pull request’s database is dropped.
userstringyesThe username the activity is attributed to. Empty when Hosted recorded the activity rather than a person.
logged_atstringyes

CreatePullCommentRequest#

A comment to add to a pull request.

FieldTypeRequiredDescription
commentstringyesThe comment body.

PullComment#

A comment on a pull request.

FieldTypeRequiredDescription
idstringyesThe comment’s identifier, unique within the pull request.
authorstringyesThe username of the user who wrote the comment.
commentstringyesThe comment body.
created_atstringyes
updated_atstringyesEqual to created_at until the comment is edited.

Pull#

A proposal to merge one branch into another within a deployment’s database.

FieldTypeRequiredDescription
idstringyesThe pull request’s identifier, unique within the deployment.
databasestringyesThe database the pull request belongs to.
titlestringyes
descriptionstringnoAbsent when the pull request has no description.
from_branchstringyesThe branch being merged, as a bare branch name.
to_branchstringyesThe branch being merged into, as a bare branch name.
statePullStateyesWhere a pull request is in its life. merged is terminal and set once Hosted has recorded the merge; closed means it was abandoned without merging.
creatorstringyesThe username of the user who opened the pull request.
created_atstringyes
comment_countintegeryesHow many comments the pull request has.
after_merge_commitstringnoThe commit the merge produced. Present only once state is merged.

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.
stateDeploymentStateyesThe deployment’s lifecycle state. starting covers both initial provisioning and a restart; poll this field to observe a create or a resize reaching started.
cloudCloudProvideryesThe cloud the deployment runs in.
zonestringyesThe cloud region the deployment runs in.
cluster_typeClusterTypeyesThe 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_roleDeploymentRoleyesThe 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.
disabled_atstringnoWhen the deployment is scheduled to shut down. Absent unless it has been disabled.
disabled_bystringnoThe username of the user who disabled the deployment. Absent unless it has been disabled.