---
title: "GET /workspaces/{workspace}/domains/"
method: GET
path: "/workspaces/{workspace}/domains/"
tags: ["workspaces"]
---

# GET /workspaces/{workspace}/domains/

`GET /workspaces/{workspace}/domains/`

## Request

- Base URL: `https://api.cloudsmith.io/v2`
- URL: `https://api.cloudsmith.io/v2/workspaces/{workspace}/domains/`
- Auth: one of:
  - API key in header `X-Api-Key`
  - HTTP basic

List active custom and Cloudsmith-owned domains available to a workspace. Cloudsmith-owned domains are the shared hostnames every workspace can use; custom domains are listed when enabled and validated, regardless of subscription status. Workspace membership is required, including for service accounts. Discovering a domain does not grant repository access.

For client setup, pass both `repository` and `domain_type`, then take the first result as the preferred domain for that repository and purpose. Without `repository`, the response is a workspace-wide inventory: a `REPOSITORY` domain must only be used for the repository named in that entry. The endpoint returns results in preference order: `REPOSITORY` domains come first, then `WORKSPACE` domains, then `GLOBAL` domains. Within each custom domain scope, primary domains come before the rest, then the oldest domain comes first.

Responses contain a `results` array. Follow the `Link` header's `next` relation until absent to discover all domains; an empty array means no domains match the filters. A hostname can appear under multiple domain types. Native types are only listed for package formats enabled for the request. Clients should tolerate new domain types.

This endpoint discovers hostnames, not complete package-manager URLs. URL paths and authentication depend on the format and domain scope; custom domains are not necessarily a hostname-only replacement in an existing URL.

## Path parameters

- `workspace` string, required

## Query parameters

- `domain_name` string
- `domain_scope` 'GLOBAL' | 'WORKSPACE' | 'REPOSITORY'
- `domain_type` 'DOWNLOAD' | 'UPLOAD' | 'CLOUDSMITH_API' | 'NATIVE_SKILLS' | 'NATIVE_CARGO' | 'NATIVE_COMPOSER' | 'NATIVE_CONAN' | 'NATIVE_CONDA' | 'NATIVE_DART' | 'NATIVE_DOCKER' | 'NATIVE_GENERIC' | 'NATIVE_GO' | 'NATIVE_HELM_OCI' | 'NATIVE_HEX' | 'NATIVE_HUGGINGFACE' | 'NATIVE_MAVEN' | 'NATIVE_NIX' | 'NATIVE_NPM' | 'NATIVE_NUGET' | 'NATIVE_PYTHON' | 'NATIVE_RUBY' | 'NATIVE_SWIFT' | 'NATIVE_TERRAFORM' | 'NATIVE_VSX'
- `fields` string
- `page` integer
- `page_size` integer
- `repository` string

## Response `200`

Domains in preference order, with pagination in the headers.

- PaginatedDomainList
  - `results` Domain[], required
    - `domain_name` string, required: The hostname clients address the domain by, without a scheme or path. The same hostname may serve more than one domain type.
    - `domain_type` 'DOWNLOAD' | 'UPLOAD' | 'CLOUDSMITH_API' | 'NATIVE_SKILLS' | 'NATIVE_CARGO' | 'NATIVE_COMPOSER' | 'NATIVE_CONAN' | 'NATIVE_CONDA' | 'NATIVE_DART' | 'NATIVE_DOCKER' | 'NATIVE_GENERIC' | 'NATIVE_GO' | 'NATIVE_HELM_OCI' | 'NATIVE_HEX' | 'NATIVE_HUGGINGFACE' | 'NATIVE_MAVEN' | 'NATIVE_NIX' | 'NATIVE_NPM' | 'NATIVE_NUGET' | 'NATIVE_PYTHON' | 'NATIVE_RUBY' | 'NATIVE_SWIFT' | 'NATIVE_TERRAFORM' | 'NATIVE_VSX', required: * `DOWNLOAD` - Downloads * `UPLOAD` - Uploads * `CLOUDSMITH_API` - Cloudsmith API * `NATIVE_SKILLS` - Native API: AI Skills * `NATIVE_CARGO` - Native API: Cargo * `NATIVE_COMPOSER` - Native API: Composer * `NATIVE_CONAN` - Native API: Conan * `NATIVE_CONDA` - Native API: Conda * `NATIVE_DART` - Native API: Dart * `NATIVE_DOCKER` - Native API: Docker * `NATIVE_GENERIC` - Native API: Generic * `NATIVE_GO` - Native API: Go * `NATIVE_HELM_OCI` - Native API: Helm (OCI) * `NATIVE_HEX` - Native API: Hex * `NATIVE_HUGGINGFACE` - Native API: HuggingFace * `NATIVE_MAVEN` - Native API: Maven * `NATIVE_NIX` - Native API: Nix * `NATIVE_NPM` - Native API: npm * `NATIVE_NUGET` - Native API: NuGet * `NATIVE_PYTHON` - Native API: Python * `NATIVE_RUBY` - Native API: Ruby * `NATIVE_SWIFT` - Native API: Swift * `NATIVE_TERRAFORM` - Native API: Terraform * `NATIVE_VSX` - Native API: VSX
    - `repository` string, nullable, required: The slug of the repository the domain is restricted to, or `null` if it serves the whole workspace.
    - `domain_scope` 'GLOBAL' | 'WORKSPACE' | 'REPOSITORY', required: * `GLOBAL` - Global * `WORKSPACE` - Workspace * `REPOSITORY` - Repository

## Other responses

- `401`
- `403`
- `404`
- `422`: Invalid query parameters.
- `429`

## Changes

- **2026-11-05** `1166a51a1a72`: 1 warning, 1 info
  - added the new `NATIVE_SKILLS` enum value to the `results/items/domain_type/allOf[#/components/schemas/DomainTypeEnum]/` response property for the response status `200`
  - added the new enum value `NATIVE_SKILLS` to the `query` request parameter `domain_type`
- **2026-10-13** `287eea61ef65`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/cloudsmith/apis/cloudsmith-api/changes/workspaces/:workspace/domains/get.md)

---

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