Proxy Your Browser RUM Data


The RUM Browser SDK can be configured to send requests through a proxy. Requests made still need to be forwarded to Datadog.

SDK initialization

When you set the proxyUrl initialization parameter, all RUM data is sent to the specified URL using the POST method (for example,

import { Datacenter, datadogRum } from '@datadog/browser-rum';

    applicationId: '<DATADOG_APPLICATION_ID>',
    clientToken: '<DATADOG_CLIENT_TOKEN>',
    site: '<DATADOG_SITE>',
    proxyUrl: '<YOUR_PROXY_URL>',
 (function(h,o,u,n,d) {
  DD_RUM.onReady(function() {
        clientToken: '<CLIENT_TOKEN>',
        applicationId: '<APPLICATION_ID>',
        proxyUrl: '<YOUR_PROXY_URL>',
window.DD_RUM &&
        clientToken: '<CLIENT_TOKEN>',
        applicationId: '<APPLICATION_ID>',
        proxyUrl: '<YOUR_PROXY_URL>',

Proxy setup

When your proxy receives data from the RUM Browser SDK, it must be forwarded to Datadog. The RUM Browser SDK adds the ddforward query parameter to all POST requests to your proxy. This query parameter contains the URL where all data must be forwarded to.

To successfully proxy request to Datadog:

  1. Add a X-Forwarded-For header containing the request client IP address for accurate geoIP.
  2. Forward the request to the URL set in the ddforward query parameter using the POST method.

Note: The request body must remain unchanged.

Further Reading

Additional helpful documentation, links, and articles: