---
title: Create a new RUM application
description: Create a new RUM application in your organization.
breadcrumbs: Docs > API > Create a new RUM application
---

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

# Create a new RUM application

## v2 (latest)

| Datadog site      | API endpoint                                               |
| ----------------- | ---------------------------------------------------------- |
| app.datadoghq.com | POST https://api.datadoghq.com/api/v2/rum/applications     |
| us3.datadoghq.com | POST https://api.us3.datadoghq.com/api/v2/rum/applications |
| us5.datadoghq.com | POST https://api.us5.datadoghq.com/api/v2/rum/applications |
| app.datadoghq.eu  | POST https://api.datadoghq.eu/api/v2/rum/applications      |
| ap1.datadoghq.com | POST https://api.ap1.datadoghq.com/api/v2/rum/applications |
| ap2.datadoghq.com | POST https://api.ap2.datadoghq.com/api/v2/rum/applications |
| uk1.datadoghq.com | POST https://api.uk1.datadoghq.com/api/v2/rum/applications |
| app.ddog-gov.com  | POST https://api.ddog-gov.com/api/v2/rum/applications      |
| us2.ddog-gov.com  | POST https://api.us2.ddog-gov.com/api/v2/rum/applications  |

### Overview

Create a new RUM application in your organization.

This endpoint requires the `rum_apps_write` permission.

### Request

#### Body Data (required)

{% tabs %}
{% tab label="Model" %}
| Parent field | Field                             | Type    | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| ------------ | --------------------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|              | data [*required*]                 | object  | RUM application creation.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| data         | attributes [*required*]           | object  | RUM application creation attributes.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| attributes   | create_default_retention_filters  | boolean | Whether to create the default retention filters when the application is created: `Sessions with errors` and `Sessions`, each with a 100% retention rate. Set to `false` to create the application without them, for example when you add your own retention filters right after creating it. Until you add retention filters, the application only retains sessions matched by its [permanent retention filters](https://docs.datadoghq.com/real_user_monitoring/rum_without_limits/retention_filters.md#permanent-retention-filters). This setting doesn't affect permanent retention filters (sessions with forced replays, Synthetics sessions and RUM-APM flat sampling). Default: `true`. |
| attributes   | name [*required*]                 | string  | Name of the RUM application.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| attributes   | product_analytics_retention_state | enum    | Controls the retention policy for Product Analytics data derived from RUM events. Allowed enum values: `MAX`, `NONE`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| attributes   | rum_event_processing_state        | enum    | Configures which RUM events are processed and stored for the application. Allowed enum values: `ALL`, `ERROR_FOCUSED_MODE`, `NONE`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| attributes   | type                              | string  | Type of the RUM application. Supported values are `browser`, `ios`, `android`, `react-native`, `flutter`, `roku`, `electron`, `unity`, `kotlin-multiplatform`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| data         | type [*required*]                 | enum    | RUM application creation type. Allowed enum values: `rum_application_create`. Default: `rum_application_create`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
{% /tab %}

{% tab label="Example" %}
**Create a new RUM application returns "Created" response**

```json
{
  "data": {
    "attributes": {
      "name": "test-rum-5c67ebb32077e1d9",
      "type": "ios"
    },
    "type": "rum_application_create"
  }
}
```

**Create a new RUM application with Product Scales returns "Created" response**

```json
{
  "data": {
    "attributes": {
      "name": "test-rum-with-product-scales-5c67ebb32077e1d9",
      "type": "browser",
      "rum_event_processing_state": "ERROR_FOCUSED_MODE",
      "product_analytics_retention_state": "NONE"
    },
    "type": "rum_application_create"
  }
}
```

**Create a new RUM application without default retention filters returns "Created" response**

```json
{
  "data": {
    "attributes": {
      "name": "test-rum-no-default-rf-5c67ebb32077e1d9",
      "type": "browser",
      "create_default_retention_filters": false
    },
    "type": "rum_application_create"
  }
}
```
{% /tab %}
{% /tabs %}

### Response

{% tabs %}
{% tab label="201" %}
Created

{% tabs %}
{% tab label="Model" %}
RUM application response.

| Parent field                      | Field                                    | Type     | Description                                                                                                                                                              |
| --------------------------------- | ---------------------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|                                   | data                                     | object   | RUM application.                                                                                                                                                         |
| data                              | attributes [*required*]                  | object   | RUM application attributes.                                                                                                                                              |
| attributes                        | api_key_id                               | int32    | ID of the API key associated with the application.                                                                                                                       |
| attributes                        | apm_rum_flat_sampling_replay_enabled     | boolean  | Indicates if flat sampling of Session Replay for APM-correlated RUM sessions is enabled.                                                                                 |
| attributes                        | apm_rum_flat_sampling_replay_sample_rate | double   | Sample rate (0-100) of Session Replay for APM-correlated RUM sessions when flat sampling is enabled.                                                                     |
| attributes                        | application_id [*required*]              | string   | ID of the RUM application.                                                                                                                                               |
| attributes                        | client_token [*required*]                | string   | Client token of the RUM application.                                                                                                                                     |
| attributes                        | created_at [*required*]                  | int64    | Timestamp in ms of the creation date.                                                                                                                                    |
| attributes                        | created_by_handle [*required*]           | string   | Handle of the creator user.                                                                                                                                              |
| attributes                        | disabled_at                              | int64    | Timestamp in ms of the date the RUM application was disabled. Only present if the application was disabled.                                                              |
| attributes                        | disabled_by_handle                       | string   | Handle of the user who disabled the RUM application. Only present if the application was disabled.                                                                       |
| attributes                        | error_tracking_exclusion_filter_enabled  | boolean  | Indicates if Error Tracking exclusion filters are enabled for the application.                                                                                           |
| attributes                        | external_feeds                           | [string] | Non-native ingestion paths the RUM application sends its data through. `otel` means the application sends RUM data through OpenTelemetry instead of the Datadog RUM SDK. |
| attributes                        | hash                                     | string   | Hash of the RUM application. Optional.                                                                                                                                   |
| attributes                        | is_active                                | boolean  | Indicates if the RUM application is active.                                                                                                                              |
| attributes                        | name [*required*]                        | string   | Name of the RUM application.                                                                                                                                             |
| attributes                        | ootb_metrics_installed                   | boolean  | Indicates if the out-of-the-box RUM metrics are installed for the application.                                                                                           |
| attributes                        | org_id [*required*]                      | int32    | Org ID of the RUM application.                                                                                                                                           |
| attributes                        | product_analytics_preview_disabled       | boolean  | Indicates that the Product Analytics preview is disabled for the application. Only present (and `true`) when the Product Analytics retention state is not preview.       |
| attributes                        | product_analytics_replay_sample_rate     | int32    | Sample rate (0-100) of Session Replay for Product Analytics sessions.                                                                                                    |
| attributes                        | product_scales                           | object   | Product Scales configuration for the RUM application.                                                                                                                    |
| product_scales                    | product_analytics_retention_scale        | object   | Product Analytics retention scale configuration.                                                                                                                         |
| product_analytics_retention_scale | last_modified_at                         | int64    | Timestamp in milliseconds when this scale was last modified.                                                                                                             |
| product_analytics_retention_scale | state                                    | enum     | Controls the retention policy for Product Analytics data derived from RUM events. Allowed enum values: `MAX`, `NONE`.                                                    |
| product_scales                    | rum_event_processing_scale               | object   | RUM event processing scale configuration.                                                                                                                                |
| rum_event_processing_scale        | last_modified_at                         | int64    | Timestamp in milliseconds when this scale was last modified.                                                                                                             |
| rum_event_processing_scale        | state                                    | enum     | Configures which RUM events are processed and stored for the application. Allowed enum values: `ALL`, `ERROR_FOCUSED_MODE`, `NONE`.                                      |
| attributes                        | remote_config_id                         | string   | ID of the RUM SDK remote configuration for the application, if one exists.                                                                                               |
| attributes                        | short_name                               | string   | Short name of the RUM application.                                                                                                                                       |
| attributes                        | tags                                     | [string] | List of tags associated with the RUM application.                                                                                                                        |
| attributes                        | type [*required*]                        | string   | Type of the RUM application. Supported values are `browser`, `ios`, `android`, `react-native`, `flutter`, `roku`, `electron`, `unity`, `kotlin-multiplatform`.           |
| attributes                        | updated_at [*required*]                  | int64    | Timestamp in ms of the last update date.                                                                                                                                 |
| attributes                        | updated_by_handle [*required*]           | string   | Handle of the updater user.                                                                                                                                              |
| data                              | id [*required*]                          | string   | RUM application ID.                                                                                                                                                      |
| data                              | type [*required*]                        | enum     | RUM application response type. Allowed enum values: `rum_application`. Default: `rum_application`.                                                                       |
{% /tab %}

{% tab label="Example" %}
```json
{
  "data": {
    "attributes": {
      "api_key_id": 123456789,
      "apm_rum_flat_sampling_replay_enabled": false,
      "apm_rum_flat_sampling_replay_sample_rate": 0,
      "application_id": "abcd1234-0000-0000-abcd-1234abcd5678",
      "client_token": "abcd1234efgh5678ijkl90abcd1234efgh0",
      "created_at": 1659479836169,
      "created_by_handle": "john.doe",
      "disabled_at": 1659479836169,
      "disabled_by_handle": "jane.doe",
      "error_tracking_exclusion_filter_enabled": false,
      "external_feeds": [
        "otel"
      ],
      "hash": "string",
      "is_active": true,
      "name": "my_rum_application",
      "ootb_metrics_installed": true,
      "org_id": 999,
      "product_analytics_preview_disabled": true,
      "product_analytics_replay_sample_rate": 0,
      "product_scales": {
        "product_analytics_retention_scale": {
          "last_modified_at": 1747922145974,
          "state": "MAX"
        },
        "rum_event_processing_scale": {
          "last_modified_at": 1721897494108,
          "state": "ALL"
        }
      },
      "remote_config_id": "abc12345-1234-5678-abcd-ef1234567890",
      "short_name": "my_rum_application",
      "tags": [
        "team:rum"
      ],
      "type": "browser",
      "updated_at": 1659479836169,
      "updated_by_handle": "jane.doe"
    },
    "id": "abcd1234-0000-0000-abcd-1234abcd5678",
    "type": "rum_application"
  }
}
```
{% /tab %}
{% /tabs %}
{% /tab %}

{% tab label="400" %}
Bad Request

{% tabs %}
{% tab label="Model" %}
API error response.

| Field               | Type     | Description       |
| ------------------- | -------- | ----------------- |
| errors [*required*] | [string] | A list of errors. |
{% /tab %}

{% tab label="Example" %}
```json
{
  "errors": [
    "Bad Request"
  ]
}
```
{% /tab %}
{% /tabs %}
{% /tab %}

{% tab label="429" %}
Too many requests

{% tabs %}
{% tab label="Model" %}
API error response.

| Field               | Type     | Description       |
| ------------------- | -------- | ----------------- |
| errors [*required*] | [string] | A list of errors. |
{% /tab %}

{% tab label="Example" %}
```json
{
  "errors": [
    "Bad Request"
  ]
}
```
{% /tab %}
{% /tabs %}
{% /tab %}
{% /tabs %}

### Code Example

{% tabs %}
{% tab label="Curl" %}
```bash
# Set your Datadog site and credentials
export DD_SITE="datadoghq.com" # Or us3.datadoghq.com, us5.datadoghq.com, datadoghq.eu, ap1.datadoghq.com, ap2.datadoghq.com, uk1.datadoghq.com, ddog-gov.com, us2.ddog-gov.com
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"

curl -X POST "https://api.${DD_SITE}/api/v2/rum/applications" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
  "data": {
    "attributes": {
      "name": "test-rum-5c67ebb32077e1d9",
      "type": "ios"
    },
    "type": "rum_application_create"
  }
}
EOF
```

```bash
# Set your Datadog site and credentials
export DD_SITE="datadoghq.com" # Or us3.datadoghq.com, us5.datadoghq.com, datadoghq.eu, ap1.datadoghq.com, ap2.datadoghq.com, uk1.datadoghq.com, ddog-gov.com, us2.ddog-gov.com
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"

curl -X POST "https://api.${DD_SITE}/api/v2/rum/applications" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
  "data": {
    "attributes": {
      "name": "test-rum-with-product-scales-5c67ebb32077e1d9",
      "type": "browser",
      "rum_event_processing_state": "ERROR_FOCUSED_MODE",
      "product_analytics_retention_state": "NONE"
    },
    "type": "rum_application_create"
  }
}
EOF
```

```bash
# Set your Datadog site and credentials
export DD_SITE="datadoghq.com" # Or us3.datadoghq.com, us5.datadoghq.com, datadoghq.eu, ap1.datadoghq.com, ap2.datadoghq.com, uk1.datadoghq.com, ddog-gov.com, us2.ddog-gov.com
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"

curl -X POST "https://api.${DD_SITE}/api/v2/rum/applications" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
  "data": {
    "attributes": {
      "name": "test-rum-no-default-rf-5c67ebb32077e1d9",
      "type": "browser",
      "create_default_retention_filters": false
    },
    "type": "rum_application_create"
  }
}
EOF
```
{% /tab %}

{% tab label="Go" %}
```go
// Create a new RUM application returns "OK" response

package main

import (
	"context"
	"encoding/json"
	"fmt"
	"os"

	"github.com/DataDog/datadog-api-client-go/v2/api/datadog"
	"github.com/DataDog/datadog-api-client-go/v2/api/datadogV2"
)

func main() {
	body := datadogV2.RUMApplicationCreateRequest{
		Data: datadogV2.RUMApplicationCreate{
			Attributes: datadogV2.RUMApplicationCreateAttributes{
				Name: "test-rum-5c67ebb32077e1d9",
				Type: datadog.PtrString("ios"),
			},
			Type: datadogV2.RUMAPPLICATIONCREATETYPE_RUM_APPLICATION_CREATE,
		},
	}
	ctx := datadog.NewDefaultContext(context.Background())
	ctx = context.WithValue(ctx, datadog.ContextAccessToken, os.Getenv("DD_BEARER_TOKEN"))
	configuration := datadog.NewConfiguration()
	apiClient := datadog.NewAPIClient(configuration)
	api := datadogV2.NewRUMApi(apiClient)
	resp, r, err := api.CreateRUMApplication(ctx, body)

	if err != nil {
		fmt.Fprintf(os.Stderr, "Error when calling `RUMApi.CreateRUMApplication`: %v\n", err)
		fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
	}

	responseContent, _ := json.MarshalIndent(resp, "", "  ")
	fmt.Fprintf(os.Stdout, "Response from `RUMApi.CreateRUMApplication`:\n%s\n", responseContent)
}
```

#### Instructions

First [install the library and its dependencies](https://docs.datadoghq.com/api/latest.md?code-lang=go) and then save the example to `main.go` and run following commands:

```bash
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"
```
{% /tab %}

{% tab label="Java" %}
```java
// Create a new RUM application returns "OK" response

import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v2.api.RumApi;
import com.datadog.api.client.v2.model.RUMApplicationCreate;
import com.datadog.api.client.v2.model.RUMApplicationCreateAttributes;
import com.datadog.api.client.v2.model.RUMApplicationCreateRequest;
import com.datadog.api.client.v2.model.RUMApplicationCreateType;
import com.datadog.api.client.v2.model.RUMApplicationResponse;

public class Example {
  public static void main(String[] args) {
    ApiClient defaultClient = ApiClient.getDefaultApiClient();
    defaultClient.setAccessToken(System.getenv("DD_BEARER_TOKEN"));
    RumApi apiInstance = new RumApi(defaultClient);

    RUMApplicationCreateRequest body =
        new RUMApplicationCreateRequest()
            .data(
                new RUMApplicationCreate()
                    .attributes(
                        new RUMApplicationCreateAttributes()
                            .name("test-rum-5c67ebb32077e1d9")
                            .type("ios"))
                    .type(RUMApplicationCreateType.RUM_APPLICATION_CREATE));

    try {
      RUMApplicationResponse result = apiInstance.createRUMApplication(body);
      System.out.println(result);
    } catch (ApiException e) {
      System.err.println("Exception when calling RumApi#createRUMApplication");
      System.err.println("Status code: " + e.getCode());
      System.err.println("Reason: " + e.getResponseBody());
      System.err.println("Response headers: " + e.getResponseHeaders());
      e.printStackTrace();
    }
  }
}
```

#### Instructions

First [install the library and its dependencies](https://docs.datadoghq.com/api/latest.md?code-lang=java) and then save the example to `Example.java` and run following commands:

```bash
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"
```
{% /tab %}

{% tab label="Python" %}
```python
"""
Create a new RUM application returns "OK" response
"""

from os import environ
from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v2.api.rum_api import RUMApi
from datadog_api_client.v2.model.rum_application_create import RUMApplicationCreate
from datadog_api_client.v2.model.rum_application_create_attributes import RUMApplicationCreateAttributes
from datadog_api_client.v2.model.rum_application_create_request import RUMApplicationCreateRequest
from datadog_api_client.v2.model.rum_application_create_type import RUMApplicationCreateType

body = RUMApplicationCreateRequest(
    data=RUMApplicationCreate(
        attributes=RUMApplicationCreateAttributes(
            name="test-rum-5c67ebb32077e1d9",
            type="ios",
        ),
        type=RUMApplicationCreateType.RUM_APPLICATION_CREATE,
    ),
)

configuration = Configuration()
configuration.access_token = environ["DD_BEARER_TOKEN"]
with ApiClient(configuration) as api_client:
    api_instance = RUMApi(api_client)
    response = api_instance.create_rum_application(body=body)

    print(response)
```

#### Instructions

First [install the library and its dependencies](https://docs.datadoghq.com/api/latest.md?code-lang=python) and then save the example to `example.py` and run following commands:

```bash
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"
```
{% /tab %}

{% tab label="Ruby" %}
```ruby
# Create a new RUM application returns "OK" response

require "datadog_api_client"
DatadogAPIClient.configure do |config|
  config.access_token = ENV["DD_BEARER_TOKEN"]
end
api_instance = DatadogAPIClient::V2::RUMAPI.new

body = DatadogAPIClient::V2::RUMApplicationCreateRequest.new({
  data: DatadogAPIClient::V2::RUMApplicationCreate.new({
    attributes: DatadogAPIClient::V2::RUMApplicationCreateAttributes.new({
      name: "test-rum-5c67ebb32077e1d9",
      type: "ios",
    }),
    type: DatadogAPIClient::V2::RUMApplicationCreateType::RUM_APPLICATION_CREATE,
  }),
})
p api_instance.create_rum_application(body)
```

#### Instructions

First [install the library and its dependencies](https://docs.datadoghq.com/api/latest.md?code-lang=ruby) and then save the example to `example.rb` and run following commands:

```bash
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" ruby "example.rb"
```
{% /tab %}

{% tab label="Rust" %}
```rust
// Create a new RUM application returns "OK" response
use datadog_api_client::datadog;
use datadog_api_client::datadogV2::api_rum::RUMAPI;
use datadog_api_client::datadogV2::model::RUMApplicationCreate;
use datadog_api_client::datadogV2::model::RUMApplicationCreateAttributes;
use datadog_api_client::datadogV2::model::RUMApplicationCreateRequest;
use datadog_api_client::datadogV2::model::RUMApplicationCreateType;

#[tokio::main]
async fn main() {
    let body = RUMApplicationCreateRequest::new(RUMApplicationCreate::new(
        RUMApplicationCreateAttributes::new("test-rum-5c67ebb32077e1d9".to_string())
            .type_("ios".to_string()),
        RUMApplicationCreateType::RUM_APPLICATION_CREATE,
    ));
    let configuration = datadog::Configuration::new();
    let api = RUMAPI::with_config(configuration);
    let resp = api.create_rum_application(body).await;
    if let Ok(value) = resp {
        println!("{:#?}", value);
    } else {
        println!("{:#?}", resp.unwrap_err());
    }
}
```

#### Instructions

First [install the library and its dependencies](https://docs.datadoghq.com/api/latest.md?code-lang=rust) and then save the example to `src/main.rs` and run following commands:

```bash
DD_SITE="datadoghq.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo run
```
{% /tab %}

{% tab label="TypeScript" %}
```typescript
/**
 * Create a new RUM application returns "OK" response
 */

import { client, v2 } from "@datadog/datadog-api-client";

const configuration = client.createConfiguration({
  authMethods: {
    AuthZ: {
      accessToken: process.env.DD_BEARER_TOKEN as string,
    },
  },
});
const apiInstance = new v2.RUMApi(configuration);

const params: v2.RUMApiCreateRUMApplicationRequest = {
  body: {
    data: {
      attributes: {
        name: "test-rum-5c67ebb32077e1d9",
        type: "ios",
      },
      type: "rum_application_create",
    },
  },
};

apiInstance
  .createRUMApplication(params)
  .then((data: v2.RUMApplicationResponse) => {
    console.log(
      "API called successfully. Returned data: " + JSON.stringify(data)
    );
  })
  .catch((error: any) => console.error(error));
```

#### Instructions

First [install the library and its dependencies](https://docs.datadoghq.com/api/latest.md?code-lang=typescript) and then save the example to `example.ts` and run following commands:

```bash
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" npx tsx "example.ts"
```
{% /tab %}
{% /tabs %}
