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

# List Environments

> List the project's environments: production first, then the ones the project created, each with its connection mappings and how many users and organizations belong to it.



## OpenAPI

````yaml get /v2/api/projects/{projectId}/environments
openapi: 3.1.0
info:
  title: Upsolve API
  version: 1.5.0
servers:
  - url: https://api.upsolve.ai
security: []
tags: []
paths:
  /v2/api/projects/{projectId}/environments:
    get:
      summary: 'List the project''s environments: production first…'
      description: >-
        List the project's environments: production first, then the ones the
        project created, each with its connection mappings and how many users
        and organizations belong to it.
      operationId: GetV2ApiProjectsProjectIdEnvironments
      parameters:
        - name: apiKey
          in: query
          required: false
          description: >-
            Upsolve API key, generated under Account → Developer settings in the
            Upsolve Hub. Keys are user-scoped: pass organizationId alongside the
            key to select which org to act on.
          schema:
            type: string
            minLength: 1
            description: >-
              Upsolve API key, generated under Account → Developer settings in
              the Upsolve Hub. Keys are user-scoped: pass organizationId
              alongside the key to select which org to act on.
            examples:
              - up_embed_************
          examples:
            example1:
              value: up_embed_************
        - name: organizationId
          in: query
          required: false
          description: >-
            Your Upsolve organization's UUID — the org that owns the API key and
            project. This is NOT a project organization: do not pass a value
            registered via /projects/register-organization, and do not pass an
            `externalId` (only `projectOrganizationId` accepts those). Omit it
            when using an org-bound API key — the org is read from the key and
            any value sent here is ignored. Required only for user-scoped API
            keys (created under Account → Developer settings) and for the
            Supabase JWT path, where the org is ambiguous and membership is
            verified against it.
          schema:
            description: >-
              Your Upsolve organization's UUID — the org that owns the API key
              and project. This is NOT a project organization: do not pass a
              value registered via /projects/register-organization, and do not
              pass an `externalId` (only `projectOrganizationId` accepts those).
              Omit it when using an org-bound API key — the org is read from the
              key and any value sent here is ignored. Required only for
              user-scoped API keys (created under Account → Developer settings)
              and for the Supabase JWT path, where the org is ambiguous and
              membership is verified against it.
            examples:
              - 123e4567-e89b-12d3-a456-426614174000
            type: string
            format: uuid
            pattern: >-
              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$
          examples:
            example1:
              value: 123e4567-e89b-12d3-a456-426614174000
        - name: projectId
          in: path
          required: true
          description: The project the environments belong to.
          schema:
            type: string
            format: uuid
            pattern: >-
              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$
            description: The project the environments belong to.
      responses:
        '200':
          description: GET /v2/api/projects/:projectId/environments Positive response
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    const: success
                  data:
                    type: object
                    properties:
                      environments:
                        type: array
                        items:
                          type: object
                          properties:
                            slug:
                              type: string
                              description: >-
                                The environment's identifier, immutable:
                                `production` or the slug it was created with.
                            name:
                              type: string
                              description: The environment's display name.
                            isDefault:
                              type: boolean
                              description: >-
                                True for production: built in, listed first,
                                cannot be renamed or deleted, and where every
                                user is unless they were put elsewhere.
                            connections:
                              type: array
                              items:
                                type: object
                                properties:
                                  sourceConnectionId:
                                    type: string
                                    description: >-
                                      The production connection this mapping
                                      stands in for: the connection a
                                      workspace's versions target.
                                  connectionId:
                                    type: string
                                    description: >-
                                      The connection that source means in this
                                      environment. May equal the source, for an
                                      environment that shares production's data.
                                  updatedAt:
                                    type:
                                      - string
                                      - 'null'
                                required:
                                  - sourceConnectionId
                                  - connectionId
                                  - updatedAt
                                additionalProperties: false
                              description: >-
                                The environment's connection mappings. Empty for
                                production, which runs every version on the
                                connection it targets.
                            userCount:
                              type: integer
                              minimum: -9007199254740991
                              maximum: 9007199254740991
                              description: >-
                                How many project users belong to this
                                environment, the organization members' own users
                                included.
                            organizationCount:
                              type: integer
                              minimum: -9007199254740991
                              maximum: 9007199254740991
                              description: >-
                                How many project organizations belong to this
                                environment, the members' shadow organization
                                included.
                            memberUserCount:
                              type: integer
                              minimum: -9007199254740991
                              maximum: 9007199254740991
                              description: >-
                                Of `userCount`, the users Upsolve keeps for each
                                organization member (one per member). They are
                                deleted with the environment, so they do not
                                keep it from being deleted.
                            memberOrganizationCount:
                              type: integer
                              minimum: -9007199254740991
                              maximum: 9007199254740991
                              description: >-
                                Of `organizationCount`, the shadow organization
                                holding the members' users. Deleted with the
                                environment.
                            createdAt:
                              type:
                                - string
                                - 'null'
                          required:
                            - slug
                            - name
                            - isDefault
                            - connections
                            - userCount
                            - organizationCount
                            - memberUserCount
                            - memberOrganizationCount
                            - createdAt
                          additionalProperties: false
                        description: >-
                          Production first, then the project's environments by
                          slug.
                      connectionWorkspaceCounts:
                        type: array
                        items:
                          type: object
                          properties:
                            connectionId:
                              type: string
                            workspaceCount:
                              type: number
                              description: >-
                                Workspaces in this project built on the
                                connection, now or by a saved version.
                          required:
                            - connectionId
                            - workspaceCount
                          additionalProperties: false
                        description: >-
                          Each connection workspaces in this project are built
                          on. A connection with workspaces cannot become another
                          connection's database.
                    required:
                      - environments
                      - connectionWorkspaceCounts
                    additionalProperties: false
                required:
                  - status
                  - data
                additionalProperties: false
        '400':
          description: GET /v2/api/projects/:projectId/environments Negative response
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    const: error
                  error:
                    type: object
                    properties:
                      message:
                        type: string
                      code:
                        type: string
                      details:
                        type: object
                        propertyNames:
                          type: string
                        additionalProperties: {}
                    required:
                      - message
                    additionalProperties: false
                required:
                  - status
                  - error
                additionalProperties: false
      security:
        - APIKEY_2: []
components:
  securitySchemes:
    APIKEY_2:
      type: apiKey
      in: query
      name: apiKey

````

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