> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ohmyho.st/llms.txt
> Use this file to discover all available pages before exploring further.

# Read actual managed database compute configuration

> Project readers can observe current Dev or Prod compute without receiving provider IDs or credentials and without executing SQL or waking the database. Explicitly shared data resolves to the same physical database for both environments. A null database means the owned environment has no confirmed managed placement. Provider failures return a problem, never invented defaults. Configuration describes observed settings, not a completed resize operation. suspend_timeout_seconds is the configured provider value; 0 means provider default and -1 means never suspend.



## OpenAPI

````yaml /openapi.json get /v1/projects/{project_id}/database/compute
openapi: 3.1.2
info:
  title: ohmyho.st API
  version: 0.0.0
  description: >-
    Public REST API for ohmyho.st hosting, projects, domains, email, credits and
    exports.
servers:
  - url: https://app.ohmyho.st
    description: Production control API
  - url: https://dev.app.ohmyho.st
    description: Development control API
security:
  - BearerAuth: []
paths:
  /v1/projects/{project_id}/database/compute:
    get:
      summary: Read actual managed database compute configuration
      description: >-
        Project readers can observe current Dev or Prod compute without
        receiving provider IDs or credentials and without executing SQL or
        waking the database. Explicitly shared data resolves to the same
        physical database for both environments. A null database means the owned
        environment has no confirmed managed placement. Provider failures return
        a problem, never invented defaults. Configuration describes observed
        settings, not a completed resize operation. suspend_timeout_seconds is
        the configured provider value; 0 means provider default and -1 means
        never suspend.
      operationId: getDatabaseCompute
      parameters:
        - $ref: '#/components/parameters/ProjectId'
        - $ref: '#/components/parameters/RequestId'
        - name: environment
          in: query
          schema:
            type: string
            enum:
              - dev
              - prod
            default: dev
      responses:
        '200':
          description: Fresh, tenant-scoped compute observation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DatabaseCompute'
        '400':
          $ref: '#/components/responses/Problem'
        '401':
          $ref: '#/components/responses/Problem'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '429':
          $ref: '#/components/responses/Problem'
        '503':
          $ref: '#/components/responses/Problem'
components:
  parameters:
    ProjectId:
      name: project_id
      in: path
      description: Project identifier.
      required: true
      schema:
        $ref: '#/components/schemas/Ulid'
    RequestId:
      name: X-Request-Id
      in: header
      description: Optional caller-provided correlation identifier.
      required: false
      schema:
        type: string
        minLength: 1
        maxLength: 128
  schemas:
    DatabaseCompute:
      type: object
      additionalProperties: false
      required:
        - project_id
        - environment
        - data_mode
        - observed_at
        - database
      properties:
        project_id:
          $ref: '#/components/schemas/Ulid'
        environment:
          type: string
          enum:
            - dev
            - prod
        data_mode:
          type: string
          enum:
            - shared
            - isolated
        observed_at:
          type: string
          format: date-time
        database:
          oneOf:
            - type: 'null'
            - type: object
              additionalProperties: false
              required:
                - min_cu
                - max_cu
                - min_memory_gb
                - max_memory_gb
                - suspend_timeout_seconds
                - state
                - pending_state
                - disabled
                - region
              properties:
                min_cu:
                  type: number
                  minimum: 0.25
                max_cu:
                  type: number
                  minimum: 0.25
                min_memory_gb:
                  type: number
                  minimum: 1
                max_memory_gb:
                  type: number
                  minimum: 1
                suspend_timeout_seconds:
                  type: integer
                  minimum: -1
                  maximum: 604800
                  description: >-
                    Configured timeout: 0 is provider default; -1 disables
                    suspension.
                state:
                  type: string
                  enum:
                    - init
                    - active
                    - idle
                pending_state:
                  type:
                    - string
                    - 'null'
                  enum:
                    - init
                    - active
                    - idle
                    - null
                disabled:
                  type: boolean
                region:
                  type: string
                  pattern: ^aws-[a-z0-9]+(?:-[a-z0-9]+)*-[0-9]+$
    Ulid:
      type: string
      pattern: ^[0-9A-HJKMNP-TV-Z]{26}$
    ProblemDetails:
      type: object
      description: RFC 9457 Problem Details extended with stable ohmyhost recovery fields.
      additionalProperties: false
      required:
        - type
        - title
        - status
        - code
        - request_id
        - retryable
        - suggested_action
      properties:
        type:
          type: string
          format: uri-reference
        title:
          type: string
          minLength: 1
        status:
          type: integer
          minimum: 400
          maximum: 599
        detail:
          type: string
        instance:
          type: string
          format: uri-reference
        code:
          type: string
          enum:
            - invalid_request
            - unauthenticated
            - forbidden
            - resource_not_found
            - idempotency_key_reused
            - project_handle_unavailable
            - project_identity_unavailable
            - deployment_plan_expired
            - deployment_plan_incompatible
            - confirmation_expired
            - confirmation_invalid
            - etag_mismatch
            - promotion_source_stale
            - promotion_target_stale
            - promotion_invalid_target
            - mail_domain_conflict
            - mail_domain_required
            - framework_conversion_required
            - migration_filename_noncanonical
            - environment_secret_mutation_blocked
            - container_runtime_required
            - payload_too_large
            - rate_limited
            - insufficient_organization_credits
            - paid_plan_required
            - project_budget_exceeded
            - compute_performance_paid_required
            - compute_performance_unavailable
            - compute_change_pending
            - compute_change_conflict
            - billing_purchase_conflict
            - cloudflare_authorization_closed
            - project_notes_conflict
            - project_export_not_ready
            - interactive_login_required
            - api_key_creation_uncertain
            - api_key_permissions_unavailable
            - reconciliation_exhausted
            - service_unavailable
        request_id:
          type: string
          minLength: 1
          maxLength: 128
        retryable:
          type: boolean
        retry_after_seconds:
          type: integer
          minimum: 1
          maximum: 86400
          description: >-
            Optional machine-readable retry delay for a rate limit, matching
            Retry-After.
        suggested_action:
          type: string
          minLength: 1
  responses:
    Problem:
      description: The request failed.
      headers:
        X-Request-Id:
          $ref: '#/components/headers/XRequestId'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
    ResourceNotFound:
      description: >-
        The resource does not exist or is not visible to the authenticated
        principal.
      headers:
        X-Request-Id:
          $ref: '#/components/headers/XRequestId'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
          examples:
            resourceNotFound:
              value:
                type: https://docs.ohmyho.st/errors/resource-not-found
                title: Resource not found
                status: 404
                code: resource_not_found
                request_id: req_01J00000000000000000000000
                retryable: false
                suggested_action: Check the resource identifier and your access scope.
  headers:
    XRequestId:
      description: Correlates the request with operations, events, logs, and audit records.
      required: true
      schema:
        type: string
        minLength: 1
        maxLength: 128
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: >-
        WorkOS access JWT or a user-owned WorkOS API key. User keys are bound to
        one organization and restricted to their enabled product permissions.
        Session-only onboarding and session revocation require an interactive
        access JWT. No cookie session is assumed.

````