> ## 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.

> ## Agent Instructions
> For account actions, read https://ohmyho.st/skills/ohmyhost-get-started/SKILL.md and use the authenticated ohmyho.st CLI, local product MCP or supported remote OAuth MCP. Read the current project source binding before choosing GitHub or managed versions. Mintlify search only reads documentation. Preserve the customer’s selected project, environment and authentication provider; keep private application values in the portal or local stdin flow.

# List projects visible to the current authenticated identity

> Returns a stable ULID-ordered page across only the caller's authorized organizations. A session that selected no workspace can see nothing and returns organization_required (409) instead of an empty page; select a workspace and repeat.



## OpenAPI

````yaml /openapi.json get /v1/projects
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:
    get:
      summary: List projects visible to the current authenticated identity
      description: >-
        Returns a stable ULID-ordered page across only the caller's authorized
        organizations. A session that selected no workspace can see nothing and
        returns organization_required (409) instead of an empty page; select a
        workspace and repeat.
      operationId: listProjects
      parameters:
        - $ref: '#/components/parameters/RequestId'
        - $ref: '#/components/parameters/ProjectCursor'
        - $ref: '#/components/parameters/ProjectLimit'
      responses:
        '200':
          description: A tenant-scoped project page.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/XRequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectPage'
        '400':
          $ref: '#/components/responses/Problem'
        '401':
          $ref: '#/components/responses/Problem'
        '403':
          $ref: '#/components/responses/Problem'
        '409':
          $ref: '#/components/responses/Problem'
        '429':
          $ref: '#/components/responses/Problem'
        '503':
          $ref: '#/components/responses/Problem'
components:
  parameters:
    RequestId:
      name: X-Request-Id
      in: header
      description: Optional caller-provided correlation identifier.
      required: false
      schema:
        type: string
        minLength: 1
        maxLength: 128
    ProjectCursor:
      name: cursor
      in: query
      description: Opaque continuation cursor returned by the preceding project page.
      required: false
      schema:
        $ref: '#/components/schemas/Ulid'
    ProjectLimit:
      name: limit
      in: query
      description: Maximum number of projects to return.
      required: false
      schema:
        type: integer
        minimum: 1
        maximum: 100
        default: 50
  headers:
    XRequestId:
      description: Correlates the request with operations, events, logs, and audit records.
      required: true
      schema:
        type: string
        minLength: 1
        maxLength: 128
  schemas:
    ProjectPage:
      type: object
      additionalProperties: false
      required:
        - items
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/Project'
        next_cursor:
          type:
            - string
            - 'null'
          pattern: ^[0-9A-HJKMNP-TV-Z]{26}$
    Ulid:
      type: string
      pattern: ^[0-9A-HJKMNP-TV-Z]{26}$
    Project:
      type: object
      additionalProperties: false
      required:
        - id
        - organization_id
        - name
        - handle
        - data_mode
        - region
        - created_at
      properties:
        id:
          $ref: '#/components/schemas/Ulid'
        organization_id:
          $ref: '#/components/schemas/Ulid'
        name:
          type: string
          minLength: 1
          maxLength: 128
          pattern: ^\S(?:.*\S)?$
        handle:
          type: string
          minLength: 3
          maxLength: 59
          pattern: ^[a-z0-9]+(-[a-z0-9]+){0,4}$
        data_mode:
          $ref: '#/components/schemas/ProjectDataMode'
        region:
          $ref: '#/components/schemas/HostingRegion'
        created_at:
          type: string
          format: date-time
    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
            - organization_required
            - 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
            - mail_capacity_unavailable
            - storage_jurisdiction_conflict
            - shared_data_requires_promotion
            - production_deployment_required
            - framework_conversion_required
            - repository_configuration_missing
            - migration_filename_noncanonical
            - environment_secret_mutation_blocked
            - workers_runtime_incompatible
            - project_handle_invalid
            - project_handle_taken
            - project_handle_unchanged
            - project_rename_blocked
            - payload_too_large
            - rate_limited
            - insufficient_organization_credits
            - paid_plan_required
            - project_budget_exceeded
            - compute_performance_paid_required
            - compute_performance_unavailable
            - database_write_pending
            - database_access_limit
            - compute_change_pending
            - compute_change_conflict
            - billing_purchase_conflict
            - billing_recharge_conflict
            - github_connection_required
            - github_connection_revoked
            - repository_not_installed
            - cloudflare_zone_not_bound
            - cloudflare_authorization_closed
            - project_notes_conflict
            - project_export_not_ready
            - powered_by_flag_required
            - interactive_login_required
            - api_key_creation_uncertain
            - api_key_permissions_unavailable
            - reconciliation_exhausted
            - service_unavailable
            - source_commit_not_found
            - domain_hostname_taken
            - domain_dns_conflict
            - data_change_blocked
            - data_change_in_progress
            - data_change_not_applicable
            - rollback_target_data_changed
            - project_domain_delete_required
        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
    ProjectDataMode:
      type: string
      enum:
        - shared
        - isolated
      default: shared
      description: >-
        Optional at creation, default shared. shared uses one data area across
        Dev/Prod; isolated gives each environment its own database/Auth records
        and file namespace. The four Owner-confirmed data-change actions
        reassign or reset areas without copying data or files and without a
        special change fee; ordinary measured resource consumption still
        applies. A reset or merge removes the named Dev resources. Promotion
        applies pending schema migrations to isolated Prod without copying Dev
        data.
    HostingRegion:
      type: string
      enum:
        - us
        - eu
      default: us
      description: >-
        Chosen when the project is created and immutable afterwards. us
        (default) places the project's database, files, build sandbox and build
        objects in the US; eu places them in the EU. Prices are identical.
        ohmyhost.yaml storage.jurisdiction must equal this value.
  responses:
    Problem:
      description: The request failed.
      headers:
        X-Request-Id:
          $ref: '#/components/headers/XRequestId'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
  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.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.