Restart database
POSThttps://api.instacloud.com/projects/{projectId}/database/restart
Token scope: account · org · project — read-only tokens refused (not a GET).
Restart the postgres server (insta-db only) so settings written with ALTER SYSTEM that need a restart (wal_level, max_wal_senders, max_replication_slots, …) take effect. Connections drop while it restarts. Waits for the restart to finish. pending: true means it was still in progress when the wait ran out — GET .../database/instance reads running throughout, so confirm with SHOW <setting> instead. A suspended database stays suspended — its next connection starts it with the new settings. Gated — deploy.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
branch | query | string | no | branch name (default branch if omitted) |
group | query | string | no | postgres service name (default: the sole postgres service) |
projectId | path | string | yes |
Responses
200
Default Response
| Field | Type | Required | Description |
|---|---|---|---|
id | string | no | |
name | string | no | |
state | string | no | |
routeKey | string | no | |
host | string | no | |
port | integer | no | |
connectionPooling | boolean | no | |
deletionProtection | boolean | no | |
scaleToZero | boolean | no | |
idleTimeoutSecs | integer | no | |
volumeSize | string | no | the service's volume (block disk) size |
volumeGib | number | no | |
storageSize | string | no | DEPRECATED alias of volumeSize — dropped next release |
storageGiB | number | no | DEPRECATED alias of volumeGib — dropped next release |
enabledExtensions | string[] | no | |
cpuMilli | integer | no | current cpu ceiling in millicores (2000 = 2 vCPU) |
memoryMib | integer | no | current memory ceiling in MiB |
cap | object | no | this plan's maximum for the ceilings — render sliders with their plan-limit markers. These are the caller's own tier caps and they move with the plan (and with env overrides per deployment), so read them from THIS field rather than assuming a tier's numbers; the parenthetical example that used to live here said 'pro 4 vCPU/4Gi/10Gi' and was stale on all three by the time anyone noticed. |
cap.cpuMilli | integer | yes | |
cap.memoryMib | integer | yes | |
cap.volumeGib | integer | yes | |
pending | boolean | no | true when the provider accepted the change asynchronously and it has not been applied yet — the ceiling/volume fields are then the PRE-change values. Re-read (GET) to see the applied state. Absent when the change was applied synchronously. |
publicAccess | boolean | no | postgres (insta-db) — false: the public endpoint refuses every connection (SQLSTATE 28000) and the database is not reachable from the internet; only the private network lane connects. Change it with PUT .../services/{serviceId}/access. Absent when the provider does not report it. |
privateAccess | boolean | no | postgres (insta-db) — true: the database has a private network connection string (privateConnString, and DATABASE_PRIVATE_URL in the service credentials) for compute services on the insta-compute provider. Change it with PATCH .../database/settings {privateAccess}. Absent when the provider does not report it. |
privateConnString | string | no | the connection string over the private network lane, WITHOUT the password (the full URL is DATABASE_PRIVATE_URL in the service credentials). Present only while privateAccess is on. |
privateLane | object | no | GET .../database/instance only — this deployment's private-lane switches, so a UI can render the toggles without a probing write |
privateLane.enabled | boolean | yes | the private network access toggle and closing public access are available on this deployment; false: both answer 409 {code: private_lane_disabled} |
privateLane.console | boolean | yes | the platform console reaches databases over the private network lane; false: it uses the public endpoint, so it cannot browse a database whose public access is closed |
warnings | string[] | no | what this change will break and how to fix it (e.g. compute services bound to DATABASE_PRIVATE_URL when private access is turned off). Advisory: the change was applied. |
202
Default Response
| Field | Type | Required | Description |
|---|---|---|---|
status | "approval_required" | no | |
approvalId | string | no | |
action | string | no | the gated action, or a comma-joined compound set — prefer `actions` |
actions | string[] | no | every capability this approval covers |
message | string | no | |
url | string | no | the console page where a project admin reviews this request |
nextActions | object[] | no | |
nextActions.op | string | yes | Neutral logical action id, e.g. "service.add" — NOT an operationId or a CLI/MCP tool name; each client maps it to its own surface. |
nextActions.reason | string | yes | Natural-language, human/LLM-facing "why do this now". |
nextActions.args | object | no | Suggested, flat named arguments; "<placeholder>"s where a value is unknown. |
nextActions.gated | boolean | no | True if the action passes a governance gate. |
400
Default Response
| Field | Type | Required | Description |
|---|---|---|---|
error | string | yes |
403
Default Response
| Field | Type | Required | Description |
|---|---|---|---|
error | string | yes |
404
Default Response
| Field | Type | Required | Description |
|---|---|---|---|
error | string | yes |
409
Default Response
| Field | Type | Required | Description |
|---|---|---|---|
error | string | yes |
502
Default Response
| Field | Type | Required | Description |
|---|---|---|---|
error | string | yes |