---
title: List subject types
description: Datadog, the leading service for cloud-scale monitoring.
breadcrumbs: Docs > API Reference > Experiments
---

> For the complete documentation index, see [llms.txt](https://docs.datadoghq.com/llms.txt).

{% callout %}
# Important note for users on the following Datadog sites: app.ddog-gov.com, us2.ddog-gov.com

{% alert level="danger" %}
This product is not supported for your selected [Datadog site](https://docs.datadoghq.com/getting_started/site.md). ({% placeholder "user-datadog-site-name" /%}).
{% /alert %}

{% /callout %}

# List subject types{% #list-subject-types %}

{% tab title="v2" %}

| Datadog site      | API endpoint                                                       |
| ----------------- | ------------------------------------------------------------------ |
| ap1.datadoghq.com | GET https://api.ap1.datadoghq.com/api/v2/experiments/subject-types |
| ap2.datadoghq.com | GET https://api.ap2.datadoghq.com/api/v2/experiments/subject-types |
| app.datadoghq.eu  | GET https://api.datadoghq.eu/api/v2/experiments/subject-types      |
| app.ddog-gov.com  | GET https://api.ddog-gov.com/api/v2/experiments/subject-types      |
| us2.ddog-gov.com  | GET https://api.us2.ddog-gov.com/api/v2/experiments/subject-types  |
| uk1.datadoghq.com | GET https://api.uk1.datadoghq.com/api/v2/experiments/subject-types |
| app.datadoghq.com | GET https://api.datadoghq.com/api/v2/experiments/subject-types     |
| us3.datadoghq.com | GET https://api.us3.datadoghq.com/api/v2/experiments/subject-types |
| us5.datadoghq.com | GET https://api.us5.datadoghq.com/api/v2/experiments/subject-types |

### Overview

List subject types. Returns a paginated list of the subject types defined for the organization. This endpoint requires the `product_analytics_settings_read` permission.

OAuth apps require the `product_analytics_settings_read` authorization [scope](https://docs.datadoghq.com/api/latest/scopes.md#experiments) to access this endpoint.



### Arguments

#### Query Strings

| Name         | Type    | Description                                                                                                                                                                                             |
| ------------ | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| include      | string  | Set to `counts` to add experiment_count, exposure_source_count, metric_sql_model_count and protocol_count to each subject type. Each costs an extra query, so they are omitted unless asked for.        |
| page[limit]  | integer | Maximum number of results to return. Defaults to 25 when omitted, and is capped at 50 (larger values are clamped to 50). The response includes meta.page (with total) and pagination links.             |
| page[offset] | integer | Number of results to skip for pagination. Defaults to 0 when omitted.                                                                                                                                   |
| search       | string  | Find subject types whose names contain the search text, regardless of case.                                                                                                                             |
| sort         | string  | Sort fields: name, created_at, or updated_at. Use a comma-separated list in priority order, for example name,-created_at. Prefix each field with `-` for descending. Defaults to created_at descending. |

### Response

{% tab title="200" %}
OK
{% tab title="Model" %}
List of subject type resources with pagination information.

| Parent field | Field                       | Type      | Description                                                         |
| ------------ | --------------------------- | --------- | ------------------------------------------------------------------- |
|              | data [*required*]      | [object]  | Resources returned in this response.                                |
| data         | attributes                  | object    | Details of the subject type.                                        |
| attributes   | created_at                  | date-time | Time when this resource was created.                                |
| attributes   | experiment_count            | int64     | Number of experiments that reference this resource.                 |
| attributes   | exposure_source_count       | int64     | Number of exposure sources that reference this subject type.        |
| attributes   | is_default                  | boolean   | Whether this is the organization's default subject type.            |
| attributes   | metric_sql_model_count      | int64     | Number of metric SQL models that reference this subject type.       |
| attributes   | migration_metadata          |           | Metadata retained for resources imported from another system.       |
| attributes   | name                        | string    | Display name of the subject type.                                   |
| attributes   | product_analytics_attribute | string    | Product Analytics attribute used to identify subjects of this type. |
| attributes   | protocol_count              | int64     | Number of protocols that reference this subject type.               |
| attributes   | updated_at                  | date-time | Time when this resource was last updated.                           |
| attributes   | warehouse_column_names      | [string]  | Warehouse columns that identify subjects of this type.              |
| data         | id [*required*]        | uuid      | ID of the subject type.                                             |
| data         | type [*required*]      | enum      | Subject types resource type. Allowed enum values: `subject-types`   |
|              | links                       | object    | Links for navigating a paginated result set.                        |
| links        | first                       | string    | URL of the first page of results.                                   |
| links        | last                        | string    | URL of the last page of results.                                    |
| links        | next                        | string    | URL of the next page of results.                                    |
| links        | prev                        | string    | URL of the previous page of results.                                |
| links        | self                        | string    | URL of the current page of results.                                 |
|              | meta                        | object    | Pagination information for a list response.                         |
| meta         | page                        | object    | Result counts and offsets for a page of results.                    |
| page         | first_offset                | int64     | Offset of the first page of results.                                |
| page         | last_offset                 | int64     | Offset of the last page of results.                                 |
| page         | limit                       | int64     | Maximum number of results returned in one page.                     |
| page         | next_offset                 | int64     | Offset of the next page of results.                                 |
| page         | offset                      | int64     | Number of results skipped before this page.                         |
| page         | prev_offset                 | int64     | Offset of the previous page of results.                             |
| page         | total                       | int64     | Total number of matching results across all pages.                  |
| page         | type                        | string    | Pagination method used for this result set.                         |

{% /tab %}

{% tab title="Example" %}

```json
{
  "data": [
    {
      "attributes": {
        "created_at": "2024-01-01T12:00:00Z",
        "is_default": true,
        "name": "User",
        "product_analytics_attribute": "@usr.id",
        "updated_at": "2024-01-01T12:00:00Z",
        "warehouse_column_names": [
          "user_id",
          "customer_id"
        ]
      },
      "id": "550e8400-e29b-41d4-a716-446655440010",
      "type": "subject-types"
    }
  ]
}
```

{% /tab %}

{% /tab %}

{% tab title="400" %}
Invalid query parameter: bad page[offset]/page[limit], or unknown sort field.
{% tab title="Model" %}
API error response.

| Parent field | Field                    | Type     | Description                                                                     |
| ------------ | ------------------------ | -------- | ------------------------------------------------------------------------------- |
|              | errors [*required*] | [object] | A list of errors.                                                               |
| errors       | detail                   | string   | A human-readable explanation specific to this occurrence of the error.          |
| errors       | meta                     | object   | Non-standard meta-information about the error                                   |
| errors       | source                   | object   | References to the source of the error.                                          |
| source       | header                   | string   | A string indicating the name of a single request header which caused the error. |
| source       | parameter                | string   | A string indicating which URI query parameter caused the error.                 |
| source       | pointer                  | string   | A JSON pointer to the value in the request document that caused the error.      |
| errors       | status                   | string   | Status code of the response.                                                    |
| errors       | title                    | string   | Short human-readable summary of the error.                                      |

{% /tab %}

{% tab title="Example" %}

```json
{
  "errors": [
    {
      "detail": "Missing required attribute in body",
      "meta": {},
      "source": {
        "header": "Authorization",
        "parameter": "limit",
        "pointer": "/data/attributes/title"
      },
      "status": "400",
      "title": "Bad Request"
    }
  ]
}
```

{% /tab %}

{% /tab %}

{% tab title="401" %}
Missing or invalid authentication (dd-api-key + dd-application-key headers, or a valid user session).
{% tab title="Model" %}
API error response.

| Parent field | Field                    | Type     | Description                                                                     |
| ------------ | ------------------------ | -------- | ------------------------------------------------------------------------------- |
|              | errors [*required*] | [object] | A list of errors.                                                               |
| errors       | detail                   | string   | A human-readable explanation specific to this occurrence of the error.          |
| errors       | meta                     | object   | Non-standard meta-information about the error                                   |
| errors       | source                   | object   | References to the source of the error.                                          |
| source       | header                   | string   | A string indicating the name of a single request header which caused the error. |
| source       | parameter                | string   | A string indicating which URI query parameter caused the error.                 |
| source       | pointer                  | string   | A JSON pointer to the value in the request document that caused the error.      |
| errors       | status                   | string   | Status code of the response.                                                    |
| errors       | title                    | string   | Short human-readable summary of the error.                                      |

{% /tab %}

{% tab title="Example" %}

```json
{
  "errors": [
    {
      "detail": "Missing required attribute in body",
      "meta": {},
      "source": {
        "header": "Authorization",
        "parameter": "limit",
        "pointer": "/data/attributes/title"
      },
      "status": "400",
      "title": "Bad Request"
    }
  ]
}
```

{% /tab %}

{% /tab %}

{% tab title="403" %}
Authenticated caller lacks the product_analytics_settings_read permission.
{% tab title="Model" %}
API error response.

| Parent field | Field                    | Type     | Description                                                                     |
| ------------ | ------------------------ | -------- | ------------------------------------------------------------------------------- |
|              | errors [*required*] | [object] | A list of errors.                                                               |
| errors       | detail                   | string   | A human-readable explanation specific to this occurrence of the error.          |
| errors       | meta                     | object   | Non-standard meta-information about the error                                   |
| errors       | source                   | object   | References to the source of the error.                                          |
| source       | header                   | string   | A string indicating the name of a single request header which caused the error. |
| source       | parameter                | string   | A string indicating which URI query parameter caused the error.                 |
| source       | pointer                  | string   | A JSON pointer to the value in the request document that caused the error.      |
| errors       | status                   | string   | Status code of the response.                                                    |
| errors       | title                    | string   | Short human-readable summary of the error.                                      |

{% /tab %}

{% tab title="Example" %}

```json
{
  "errors": [
    {
      "detail": "Missing required attribute in body",
      "meta": {},
      "source": {
        "header": "Authorization",
        "parameter": "limit",
        "pointer": "/data/attributes/title"
      },
      "status": "400",
      "title": "Bad Request"
    }
  ]
}
```

{% /tab %}

{% /tab %}

{% tab title="429" %}
Too many requests
{% tab title="Model" %}
API error response.

| Field                    | Type     | Description       |
| ------------------------ | -------- | ----------------- |
| errors [*required*] | [string] | A list of errors. |

{% /tab %}

{% tab title="Example" %}

```json
{
  "errors": [
    "Bad Request"
  ]
}
```

{% /tab %}

{% /tab %}

### Code Example

##### 
                  \# Use a Personal Access Token or Service Access Token export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"  \# Curl command curl -X GET "https://api.datadoghq.com/api/v2/experiments/subject-types" \
-H "Accept: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" 
                
{% /tab %}
