---
title: "List Services By EnvironmentId"
method: GET
path: "/environment/{environmentId}/services"
tags: ["Environment Main Calls"]
---

# List Services By EnvironmentId

`GET /environment/{environmentId}/services`

## Request

- Base URL: `https://api.qovery.com`
- URL: `https://api.qovery.com/environment/{environmentId}/services`
- Auth: one of:
  - API key in header `Authorization`
  - HTTP bearer
- TypeScript: <https://skmtc.dev/qovery/apis/qovery-api/docs/environment/:environmentId/services/get.ts> (a function with typed inputs; its response is checked against the schema)

## Response `200`

Service List

- object
  - `results` union[]
    - union
      - object
        - `id` string, uuid, required
        - `created_at` string, date-time, required
        - `updated_at` string, date-time
        - `storage` object[]
          - `id` string, uuid, required
          - `type` 'FAST_SSD', required
          - `size` integer, required: unit is GB
          - `mount_point` string, required
        - `environment` ReferenceObject, required
          - `id` string, uuid, required
        - `git_repository` ApplicationGitRepository
          - `has_access` boolean
          - `provider` 'BITBUCKET' | 'GITHUB' | 'GITLAB', required
          - `owner` string, required
          - `url` string, uri, required
          - `name` string, required: repository name
          - `branch` string
          - `root_path` string
          - `deployed_commit_id` string: Git commit ID corresponding to the deployed version of the app
          - `deployed_commit_date` string, date-time: Git commit date corresponding to the deployed version of the app
          - `deployed_commit_contributor` string: Git commit user corresponding to the deployed version of the app
          - `deployed_commit_tag` string
          - `git_token_id` string, nullable
          - `git_token_name` string, nullable
        - `maximum_cpu` integer: Maximum cpu that can be allocated to the application based on organization cluster configuration. unit is millicores (m). 1000m = 1 cpu
        - `maximum_memory` integer: Maximum memory that can be allocated to the application based on organization cluster configuration. unit is MB. 1024 MB = 1GB
        - `maximun_gpu` integer
        - `name` string, required: name is case insensitive
        - `description` string: give a description to this application
        - `build_mode` 'DOCKER': `DOCKER` requires `dockerfile_path`
        - `dockerfile_path` string, nullable: The path of the associated Dockerfile. Only if you are using build_mode = DOCKER
        - `cpu` integer: unit is millicores (m). 1000m = 1 cpu
        - `memory` integer: unit is MB. 1024 MB = 1GB
        - `gpu` integer
        - `min_running_instances` integer: Minimum number of instances running. This resource auto-scale based on the CPU and Memory consumption. Note: 0 means that there is no application running.
        - `max_running_instances` integer: Maximum number of instances running. This resource auto-scale based on the CPU and Memory consumption. Note: -1 means that there is no limit.
        - `healthchecks` Healthcheck, required
          - `readiness_probe` Probe, nullable
            - `type` object
              - …
            - `initial_delay_seconds` integer
            - `period_seconds` integer
            - `timeout_seconds` integer
            - `success_threshold` integer
            - `failure_threshold` integer
          - `liveness_probe` Probe, nullable
            - `type` object
              - …
            - `initial_delay_seconds` integer
            - `period_seconds` integer
            - `timeout_seconds` integer
            - `success_threshold` integer
            - `failure_threshold` integer
        - `auto_preview` boolean: Specify if the environment preview option is activated or not for this application. If activated, a preview environment will be automatically cloned at each pull request. If not specified, it takes the value of the `auto_preview` property from the associated environment.
        - `ports` ServicePort[]
          - `id` string, uuid, required
          - `name` string
          - `internal_port` integer, required: The listening port of your service.
          - `external_port` integer: The exposed port for your service. This is optional. If not set a default port will be used.
          - `publicly_accessible` boolean, required: Expose the port to the world
          - `is_default` boolean: is the default port to use for domain
          - `protocol` 'HTTP' | 'GRPC' | 'TCP' | 'UDP', required
          - `public_path` string: Indicate the path or regex that must match for traffic to be accepted on your service i.e: /api/ will only accept http calls that start with /api/ Only valid for publicly_accessible HTTP or GRPC ports.
          - `public_path_rewrite` string: Indicate the new path that will be used to reach your service after replacement i.e: public_path -> /(.*) public_path_rewrite -> /api/$1 will append /api/ on all externaly requested url when reaching the service external/use url -> example.com/foobar -> url seen by the service -> example.com/api/foobar Only valid for publicly_accessible HTTP or GRPC ports.
        - `arguments` string[]
        - `entrypoint` string: optional entrypoint when launching container
        - `auto_deploy` boolean: Specify if the application will be automatically updated after receiving a new commit.
        - `annotations_groups` OrganizationAnnotationsGroupResponse[]
          - `id` string, uuid, required
          - `created_at` string, date-time, required
          - `updated_at` string, date-time
          - `name` string, required
          - `annotations` Annotation[], required
            - `key` string, required
            - `value` string, required
          - `scopes` OrganizationAnnotationsGroupScopeEnum[], required
        - `labels_groups` OrganizationLabelsGroupResponse[]
          - `id` string, uuid, required
          - `created_at` string, date-time, required
          - `updated_at` string, date-time
          - `name` string, required
          - `labels` Label[], required
            - `key` string, required
            - `value` string, required
            - `propagate_to_cloud_provider` boolean, required
        - `icon_uri` string, uri, required: Icon URI representing the application.
        - `service_type` 'APPLICATION' | 'DATABASE' | 'CONTAINER' | 'JOB' | 'HELM' | 'TERRAFORM', required: type of the service (application, database, job, ...)
        - `docker_target_build_stage` string, nullable: The target build stage in the Dockerfile to build
      - object
        - `id` string, uuid, required
        - `created_at` string, date-time, required
        - `updated_at` string, date-time
        - `storage` object[]
          - `id` string, uuid, required
          - `type` 'FAST_SSD', required
          - `size` integer, required: unit is GB
          - `mount_point` string, required
        - `image_name` string, required: The image name pattern differs according to chosen container registry provider: * `ECR`: `repository` * `SCALEWAY_CR`: `namespace/image` * `DOCKER_HUB`: `image` or `repository/image` * `PUBLIC_ECR`: `registry_alias/repository`
        - `tag` string, required: tag of the image container
        - `registry_id` string: tag of the image container
        - `registry` ContainerRegistryProviderDetailsResponse, required
          - `id` string, uuid, required
          - `name` string, required
          - `url` string, required: URL of the container registry
          - `kind` 'ECR' | 'SCALEWAY_CR' | 'DOCKER_HUB' | 'GITHUB_CR' | 'GITHUB_ENTERPRISE_CR' | 'GITLAB_CR' | 'PUBLIC_ECR' | 'DOCR' | 'GENERIC_CR' | 'GCP_ARTIFACT_REGISTRY' | 'AZURE_CR', required: The type of your container registry
        - `environment` ReferenceObject, required
          - `id` string, uuid, required
        - `maximum_cpu` integer, required: Maximum cpu that can be allocated to the container based on organization cluster configuration. unit is millicores (m). 1000m = 1 cpu
        - `maximum_memory` integer, required: Maximum memory that can be allocated to the container based on organization cluster configuration. unit is MB. 1024 MB = 1GB
        - `maximum_gpu` integer, required: Maximum memory that can be allocated to the container based on organization cluster configuration. unit is MB. 1024 MB = 1GB
        - `name` string, required: name is case insensitive
        - `description` string: give a description to this container
        - `arguments` string[]
        - `entrypoint` string: optional entrypoint when launching container
        - `cpu` integer, required: unit is millicores (m). 1000m = 1 cpu
        - `memory` integer, required: unit is MB. 1024 MB = 1GB
        - `gpu` integer, required
        - `min_running_instances` integer, required: Minimum number of instances running. This resource auto-scale based on the CPU and Memory consumption. Note: 0 means that there is no container running.
        - `max_running_instances` integer, required: Maximum number of instances running. This resource auto-scale based on the CPU and Memory consumption. Note: -1 means that there is no limit.
        - `healthchecks` Healthcheck, required
          - `readiness_probe` Probe, nullable
            - `type` object
              - …
            - `initial_delay_seconds` integer
            - `period_seconds` integer
            - `timeout_seconds` integer
            - `success_threshold` integer
            - `failure_threshold` integer
          - `liveness_probe` Probe, nullable
            - `type` object
              - …
            - `initial_delay_seconds` integer
            - `period_seconds` integer
            - `timeout_seconds` integer
            - `success_threshold` integer
            - `failure_threshold` integer
        - `auto_preview` boolean, required: Indicates if the 'environment preview option' is enabled for this container. If enabled, a preview environment will be automatically cloned when `/preview` endpoint is called. If not specified, it takes the value of the `auto_preview` property from the associated environment.
        - `ports` ServicePort[]
          - `id` string, uuid, required
          - `name` string
          - `internal_port` integer, required: The listening port of your service.
          - `external_port` integer: The exposed port for your service. This is optional. If not set a default port will be used.
          - `publicly_accessible` boolean, required: Expose the port to the world
          - `is_default` boolean: is the default port to use for domain
          - `protocol` 'HTTP' | 'GRPC' | 'TCP' | 'UDP', required
          - `public_path` string: Indicate the path or regex that must match for traffic to be accepted on your service i.e: /api/ will only accept http calls that start with /api/ Only valid for publicly_accessible HTTP or GRPC ports.
          - `public_path_rewrite` string: Indicate the new path that will be used to reach your service after replacement i.e: public_path -> /(.*) public_path_rewrite -> /api/$1 will append /api/ on all externaly requested url when reaching the service external/use url -> example.com/foobar -> url seen by the service -> example.com/api/foobar Only valid for publicly_accessible HTTP or GRPC ports.
        - `auto_deploy` boolean: Specify if the container will be automatically updated after receiving a new image tag. The new image tag shall be communicated via the "Auto Deploy container" endpoint https://api-doc.qovery.com/#tag/Containers/operation/autoDeployContainerEnvironments
        - `annotations_groups` OrganizationAnnotationsGroupResponse[]
          - `id` string, uuid, required
          - `created_at` string, date-time, required
          - `updated_at` string, date-time
          - `name` string, required
          - `annotations` Annotation[], required
            - `key` string, required
            - `value` string, required
          - `scopes` OrganizationAnnotationsGroupScopeEnum[], required
        - `labels_groups` OrganizationLabelsGroupResponse[]
          - `id` string, uuid, required
          - `created_at` string, date-time, required
          - `updated_at` string, date-time
          - `name` string, required
          - `labels` Label[], required
            - `key` string, required
            - `value` string, required
            - `propagate_to_cloud_provider` boolean, required
        - `icon_uri` string, uri, required: Icon URI representing the container.
        - `service_type` 'APPLICATION' | 'DATABASE' | 'CONTAINER' | 'JOB' | 'HELM' | 'TERRAFORM', required: type of the service (application, database, job, ...)
      - object
        - `id` string, uuid, required
        - `created_at` string, date-time, required
        - `updated_at` string, date-time
        - `name` string, required: name is case insensitive
        - `description` string: give a description to this database
        - `type` 'MONGODB' | 'MYSQL' | 'POSTGRESQL' | 'REDIS', required
        - `version` string, required
        - `mode` 'CONTAINER' | 'MANAGED', required
        - `accessibility` 'PRIVATE' | 'PUBLIC'
        - `cpu` integer: unit is millicores (m). 1000m = 1 cpu This field will be ignored for managed DB (instance type will be used instead).
        - `instance_type` string: Database instance type to be used for this database. The list of values can be retrieved via the endpoint /{CloudProvider}/managedDatabase/instanceType/{region}/{dbType}. This field is null for container DB.
        - `memory` integer: unit is MB. 1024 MB = 1GB This field will be ignored for managed DB (instance type will be used instead). Default value is linked to the database type: - MANAGED: `100` - CONTAINER - POSTGRES: `100` - REDIS: `100` - MYSQL: `512` - MONGODB: `256`
        - `storage` integer: unit is GB
        - `annotations_groups` object[]
          - `id` string, uuid, required
          - `created_at` string, date-time, required
          - `updated_at` string, date-time
          - `name` string, required
          - `annotations` Annotation[], required
            - `key` string, required
            - `value` string, required
          - `scopes` OrganizationAnnotationsGroupScopeEnum[], required
        - `labels_groups` object[]
          - `id` string, uuid, required
          - `created_at` string, date-time, required
          - `updated_at` string, date-time
          - `name` string, required
          - `labels` Label[], required
            - `key` string, required
            - `value` string, required
            - `propagate_to_cloud_provider` boolean, required
        - `icon_uri` string, uri, required: Icon URI representing the database.
        - `environment` ReferenceObject, required
          - `id` string, uuid, required
        - `host` string
        - `port` integer
        - `maximum_cpu` integer: Maximum cpu that can be allocated to the database based on organization cluster configuration. unit is millicores (m). 1000m = 1 cpu
        - `maximum_memory` integer: Maximum memory that can be allocated to the database based on organization cluster configuration. unit is MB. 1024 MB = 1GB
        - `disk_encrypted` boolean: indicates if the database disk is encrypted or not
        - `service_type` 'APPLICATION' | 'DATABASE' | 'CONTAINER' | 'JOB' | 'HELM' | 'TERRAFORM', required: type of the service (application, database, job, ...)
      - object
        - `id` string, uuid, required
        - `created_at` string, date-time, required
        - `updated_at` string, date-time
        - `environment` ReferenceObject, required
          - `id` string, uuid, required
        - `name` string, required: name is case insensitive
        - `description` string
        - `timeout_sec` integer: Maximum number of seconds allowed for helm to run before killing it and mark it as failed
        - `auto_preview` boolean, required: Indicates if the 'environment preview option' is enabled. If enabled, a preview environment will be automatically cloned when `/preview` endpoint is called. If not specified, it takes the value of the `auto_preview` property from the associated environment.
        - `auto_deploy` boolean, required: Specify if the service will be automatically updated after receiving a new image tag or a new commit according to the source type.
        - `ports` union[]
          - union
            - HelmPortResponseWithServiceName
              - …
            - HelmPortResponseWithServiceSelectors
              - …
        - `source` union, required
          - object
            - `git` HelmSourceGitResponse, required
              - …
          - object
            - `repository` HelmSourceRepositoryResponse, required
              - …
        - `arguments` string[], required: The extra arguments to pass to helm
        - `allow_cluster_wide_resources` boolean, required: If we should allow the chart to deploy object outside his specified namespace. Setting this flag to true, requires special rights
        - `values_override` object, required: Specify helm values you want to set or override
          - `set` array[]: The input is in json array format: [ [$KEY,$VALUE], [...] ]
            - string[]
          - `set_string` array[]: The input is in json array format: [ [$KEY,$VALUE], [...] ]
            - string[]
          - `set_json` array[]: The input is in json array format: [ [$KEY,$VALUE], [...] ]
            - string[]
          - `file` object, nullable
            - `raw` object, nullable
              - …
            - `git` object, nullable
              - …
        - `icon_uri` string, uri, required: Icon URI representing the helm service.
        - `service_type` 'APPLICATION' | 'DATABASE' | 'CONTAINER' | 'JOB' | 'HELM' | 'TERRAFORM', required: type of the service (application, database, job, ...)
      - LifecycleJobResponse
        - `id` string, uuid, required
        - `created_at` string, date-time, required
        - `updated_at` string, date-time
        - `environment` ReferenceObject, required
          - `id` string, uuid, required
        - `maximum_cpu` integer, required: Maximum cpu that can be allocated to the job based on organization cluster configuration. unit is millicores (m). 1000m = 1 cpu
        - `maximum_memory` integer, required: Maximum memory that can be allocated to the job based on organization cluster configuration. unit is MB. 1024 MB = 1GB
        - `maximum_gpu` integer, required: Maximum memory that can be allocated to the job based on organization cluster configuration. unit is MB. 1024 MB = 1GB
        - `name` string, required: name is case insensitive
        - `description` string
        - `cpu` integer, required: unit is millicores (m). 1000m = 1 cpu
        - `memory` integer, required: unit is MB. 1024 MB = 1GB
        - `gpu` integer, required
        - `max_nb_restart` integer: Maximum number of restart allowed before the job is considered as failed 0 means that no restart/crash of the job is allowed
        - `max_duration_seconds` integer: Maximum number of seconds allowed for the job to run before killing it and mark it as failed
        - `auto_preview` boolean, required: Indicates if the 'environment preview option' is enabled for this container. If enabled, a preview environment will be automatically cloned when `/preview` endpoint is called. If not specified, it takes the value of the `auto_preview` property from the associated environment.
        - `port` integer, nullable: Port where to run readiness and liveliness probes checks. The port will not be exposed externally
        - `source` union, required
          - object
            - `image` ContainerSource, required
              - …
          - object
            - `docker` JobSourceDockerResponse, required
              - …
        - `healthchecks` Healthcheck, required
          - `readiness_probe` Probe, nullable
            - `type` object
              - …
            - `initial_delay_seconds` integer
            - `period_seconds` integer
            - `timeout_seconds` integer
            - `success_threshold` integer
            - `failure_threshold` integer
          - `liveness_probe` Probe, nullable
            - `type` object
              - …
            - `initial_delay_seconds` integer
            - `period_seconds` integer
            - `timeout_seconds` integer
            - `success_threshold` integer
            - `failure_threshold` integer
        - `auto_deploy` boolean: Specify if the job will be automatically updated after receiving a new image tag or a new commit according to the source type. The new image tag shall be communicated via the "Auto Deploy job" endpoint https://api-doc.qovery.com/#tag/Jobs/operation/autoDeployJobEnvironments
        - `icon_uri` string, uri, required: Icon URI representing the job.
        - `service_type` 'APPLICATION' | 'DATABASE' | 'CONTAINER' | 'JOB' | 'HELM' | 'TERRAFORM', required: type of the service (application, database, job, ...)
        - `job_type` 'LIFECYCLE' | 'CRON', required: type of job
        - `schedule` object, required
          - `on_start` object
            - `arguments` string[]
            - `entrypoint` string: optional entrypoint when launching container
          - `on_stop` object
            - `arguments` string[]
            - `entrypoint` string: optional entrypoint when launching container
          - `on_delete` object
            - `arguments` string[]
            - `entrypoint` string: optional entrypoint when launching container
          - `lifecycle_type` 'GENERIC' | 'TERRAFORM' | 'CLOUDFORMATION'
        - `annotations_groups` OrganizationAnnotationsGroupResponse[]
          - `id` string, uuid, required
          - `created_at` string, date-time, required
          - `updated_at` string, date-time
          - `name` string, required
          - `annotations` Annotation[], required
            - `key` string, required
            - `value` string, required
          - `scopes` OrganizationAnnotationsGroupScopeEnum[], required
        - `labels_groups` OrganizationLabelsGroupResponse[]
          - `id` string, uuid, required
          - `created_at` string, date-time, required
          - `updated_at` string, date-time
          - `name` string, required
          - `labels` Label[], required
            - `key` string, required
            - `value` string, required
            - `propagate_to_cloud_provider` boolean, required
      - CronJobResponse
        - `id` string, uuid, required
        - `created_at` string, date-time, required
        - `updated_at` string, date-time
        - `environment` ReferenceObject, required
          - `id` string, uuid, required
        - `maximum_cpu` integer, required: Maximum cpu that can be allocated to the job based on organization cluster configuration. unit is millicores (m). 1000m = 1 cpu
        - `maximum_memory` integer, required: Maximum memory that can be allocated to the job based on organization cluster configuration. unit is MB. 1024 MB = 1GB
        - `maximum_gpu` integer, required: Maximum memory that can be allocated to the job based on organization cluster configuration. unit is MB. 1024 MB = 1GB
        - `name` string, required: name is case insensitive
        - `description` string
        - `cpu` integer, required: unit is millicores (m). 1000m = 1 cpu
        - `memory` integer, required: unit is MB. 1024 MB = 1GB
        - `gpu` integer, required
        - `max_nb_restart` integer: Maximum number of restart allowed before the job is considered as failed 0 means that no restart/crash of the job is allowed
        - `max_duration_seconds` integer: Maximum number of seconds allowed for the job to run before killing it and mark it as failed
        - `auto_preview` boolean, required: Indicates if the 'environment preview option' is enabled for this container. If enabled, a preview environment will be automatically cloned when `/preview` endpoint is called. If not specified, it takes the value of the `auto_preview` property from the associated environment.
        - `port` integer, nullable: Port where to run readiness and liveliness probes checks. The port will not be exposed externally
        - `source` union, required
          - object
            - `image` ContainerSource, required
              - …
          - object
            - `docker` JobSourceDockerResponse, required
              - …
        - `healthchecks` Healthcheck, required
          - `readiness_probe` Probe, nullable
            - `type` object
              - …
            - `initial_delay_seconds` integer
            - `period_seconds` integer
            - `timeout_seconds` integer
            - `success_threshold` integer
            - `failure_threshold` integer
          - `liveness_probe` Probe, nullable
            - `type` object
              - …
            - `initial_delay_seconds` integer
            - `period_seconds` integer
            - `timeout_seconds` integer
            - `success_threshold` integer
            - `failure_threshold` integer
        - `auto_deploy` boolean: Specify if the job will be automatically updated after receiving a new image tag or a new commit according to the source type. The new image tag shall be communicated via the "Auto Deploy job" endpoint https://api-doc.qovery.com/#tag/Jobs/operation/autoDeployJobEnvironments
        - `icon_uri` string, uri, required: Icon URI representing the job.
        - `service_type` 'APPLICATION' | 'DATABASE' | 'CONTAINER' | 'JOB' | 'HELM' | 'TERRAFORM', required: type of the service (application, database, job, ...)
        - `job_type` 'LIFECYCLE' | 'CRON', required: type of job
        - `schedule` object, required
          - `cronjob` object, required
            - `arguments` string[]
            - `entrypoint` string: optional entrypoint when launching container
            - `timezone` string, required: tz identifier at which the schedule at will be executed
            - `scheduled_at` string, cron, required: Can only be set if the event is CRON. Represent the cron format for the job schedule without seconds. For example: `* * * * *` represent the cron to launch the job every minute. See https://crontab.guru/ to WISIWIG interface. Timezone is UT
        - `annotations_groups` OrganizationAnnotationsGroupResponse[]
          - `id` string, uuid, required
          - `created_at` string, date-time, required
          - `updated_at` string, date-time
          - `name` string, required
          - `annotations` Annotation[], required
            - `key` string, required
            - `value` string, required
          - `scopes` OrganizationAnnotationsGroupScopeEnum[], required
        - `labels_groups` OrganizationLabelsGroupResponse[]
          - `id` string, uuid, required
          - `created_at` string, date-time, required
          - `updated_at` string, date-time
          - `name` string, required
          - `labels` Label[], required
            - `key` string, required
            - `value` string, required
            - `propagate_to_cloud_provider` boolean, required
      - object: A Terraform service
        - `id` string, uuid, required
        - `created_at` string, date-time, required
        - `updated_at` string, date-time
        - `name` string, required: name is case insensitive
        - `description` string
        - `timeout_sec` integer, required
        - `auto_approve` boolean, required
        - `auto_deploy` boolean, required
        - `terraform_files_source` object
          - `git` object
            - `git_repository` ApplicationGitRepository
              - …
        - `icon_uri` string, uri, required: Icon URI representing the terraform service.
        - `service_type` 'APPLICATION' | 'DATABASE' | 'CONTAINER' | 'JOB' | 'HELM' | 'TERRAFORM', required: type of the service (application, database, job, ...)
        - `terraform_variables_source` TerraformVariablesSourceResponse, required
          - `tf_var_file_paths` string[], required
        - `provider` 'TERRAFORM', required
        - `backend` union, required: Configuration for Terraform backend - exactly one backend type must be specified
          - object
            - `kubernetes` TerraformBackendKubernetes, required: Kubernetes-specific backend configuration
          - object
            - `user_provided` TerraformBackendUserProvided, required: User-provided backend configuration
        - `provider_version` TerraformProviderVersion, required
          - `read_from_terraform_block` boolean
          - `explicit_version` string, required
        - `job_resources` TerraformJobResourcesResponse, required
          - `cpu_milli` integer, required
          - `ram_mib` integer, required
          - `gpu` integer, required
          - `storage_gib` integer, required
        - `environment` ReferenceObject, required
          - `id` string, uuid, required
        - `use_cluster_credentials` boolean, required
        - `action_extra_arguments` object, required: The key represent the action command name i.e: "plan" The value represent the extra arguments to pass to this command i.e: {"apply", ["-lock=false"]} is going to prepend `-lock=false` to terraform apply commands

---

[API](https://skmtc.dev/qovery/apis/qovery-api.md) - [All operations](https://skmtc.dev/qovery/apis/qovery-api/llms.txt) - [OpenAPI document](https://skmtc.dev/qovery/apis/qovery-api/revisions/93c4960a44ba?raw)
