Upload source maps

This endpoint is in Preview and may introduce breaking changes. If you have any feedback, contact Datadog support.

POST https://sourcemap-intake.ap1.datadoghq.com/api/v2/srcmaphttps://sourcemap-intake.ap2.datadoghq.com/api/v2/srcmaphttps://sourcemap-intake.datadoghq.eu/api/v2/srcmaphttps://sourcemap-intake.ddog-gov.com/api/v2/srcmaphttps://sourcemap-intake.datadoghq.com/api/v2/srcmaphttps://sourcemap-intake.us3.datadoghq.com/api/v2/srcmaphttps://sourcemap-intake.us5.datadoghq.com/api/v2/srcmapNot supported in the GOV2 region

Overview

Upload source maps, symbol files, and mapping files to Datadog for error deobfuscation. This endpoint enables you to upload various types of debug symbols for RUM Error Tracking, allowing Datadog to display readable stack traces instead of minified or obfuscated code.

Request format:

Each request is a multipart/form-data upload containing two parts:

  1. event — a JSON-encoded string with the upload metadata (type, service, version, etc.)
  2. One or more binary file fields (for example, source_map, symbols_archive)

Supported upload types (set via event.type):

  • js_sourcemap: JavaScript source maps for browser applications
  • react_native_sourcemap: React Native source maps for mobile applications
  • jvm_mapping_file: ProGuard/R8 mapping files for Android crash deobfuscation
  • ios_symbols: dSYM files for iOS crash symbolication
  • flutter_symbol_file: Flutter symbol files
  • ndk_symbol_file: Android NDK symbol files for native crashes
  • il2cpp_mapping_file: IL2CPP mapping files for Unity
  • elf_symbol_file: ELF symbol files for Linux/Unix
  • pe_symbol_file: PE/PDB symbol files for Windows
  • repository: Repository metadata for source code linking

Limits:

  • Maximum file size: 500 MB

Note: For most use cases, Datadog recommends using the Datadog CLI (datadog-ci) which provides a simplified interface for uploading source maps.

Request

Body Data (required)

Expand All

Field

Type

Description

Option 1

object

Multipart form data for uploading JavaScript source maps for browser RUM applications.

event [required]

object

Metadata for a JavaScript source map upload, sent as a JSON-encoded event field.

cli_version

string

Version of the CLI used for upload (max 50 characters).

git_commit_sha

string

Git commit SHA (40 lowercase hex characters).

git_repository_url

string

Git repository URL (max 2048 characters).

minified_url [required]

string

URL of the minified JavaScript file (1-2048 characters).

overwrite

boolean

Whether to overwrite existing source map.

project_path

string

Path to the project root (max 500 characters).

service [required]

string

Service name (1-200 characters).

type [required]

enum

Must be js_sourcemap. Allowed enum values: js_sourcemap

version [required]

string

Version of the service (1-200 characters).

minified_file [required]

binary

The minified JavaScript file.

repository

binary

Repository metadata file (optional).

source_map [required]

binary

The source map file.

Option 2

object

Multipart form data for uploading React Native source maps for mobile applications.

event [required]

object

Metadata for a React Native source map upload, sent as a JSON-encoded event field.

build_number

string

Build number (max 200 characters).

bundle_name [required]

string

Name of the JavaScript bundle (1-200 characters).

bundle_version

string

Bundle version (max 200 characters).

cli_version

string

Version of the CLI used for upload (max 50 characters).

debug_id

string

Debug identifier for the source map file.

platform [required]

enum

Target platform for mobile source maps. Allowed enum values: android,ios

project_path

string

Path to the project root (max 500 characters).

service [required]

string

Service name (1-200 characters).

type [required]

enum

Must be react_native_sourcemap. Allowed enum values: react_native_sourcemap

version [required]

string

Version of the service (1-200 characters).

minified_file

binary

The minified JavaScript bundle (optional).

repository

binary

Repository metadata file (optional).

source_map [required]

binary

The source map file.

Option 3

object

Multipart form data for uploading ProGuard or R8 mapping files for Android crash deobfuscation.

event [required]

object

Metadata for a ProGuard or R8 mapping file upload, sent as a JSON-encoded event field.

build_id

string

Build identifier for the mapping file.

overwrite

boolean

Whether to overwrite existing mapping file.

service [required]

string

Service name (1-200 characters).

type [required]

enum

Must be jvm_mapping_file. Allowed enum values: jvm_mapping_file

variant

string

Build variant (max 200 characters).

version [required]

string

Version of the service (1-200 characters).

jvm_mapping_file [required]

binary

The ProGuard/R8 mapping file.

repository

binary

Repository metadata file (optional).

Option 4

object

Multipart form data for uploading dSYM files for iOS crash symbolication.

event [required]

object

Metadata for an iOS dSYM file upload, sent as a JSON-encoded event field.

type [required]

enum

Must be ios_symbols. Allowed enum values: ios_symbols

uuids [required]

string

Comma-separated list of dSYM UUIDs (min 1 character).

symbols_archive [required]

binary

The dSYM archive file (.zip).

Option 5

object

Multipart form data for uploading Flutter symbol files for crash symbolication.

event [required]

object

Metadata for a Flutter symbol file upload, sent as a JSON-encoded event field.

arch [required]

string

CPU architecture (1-200 characters).

cli_version

string

Version of the CLI used for upload (max 50 characters).

platform [required]

string

Target platform (1-200 characters).

service [required]

string

Service name (1-200 characters).

type [required]

enum

Must be flutter_symbol_file. Allowed enum values: flutter_symbol_file

variant [required]

string

Build variant (1-200 characters).

version [required]

string

Version of the service (1-200 characters).

flutter_symbol_file [required]

binary

The Flutter symbol file.

Option 6

object

Multipart form data for uploading Android NDK symbol files for native crash symbolication.

event [required]

object

Metadata for an Android NDK symbol file upload, sent as a JSON-encoded event field.

arch [required]

string

CPU architecture (1-200 characters).

build_id [required]

string

Build ID (1-200 characters).

filename

string

Original filename (max 500 characters).

type [required]

enum

Must be ndk_symbol_file. Allowed enum values: ndk_symbol_file

ndk_symbol_file [required]

binary

The NDK symbol file.

Option 7

object

Multipart form data for uploading IL2CPP mapping files for Unity crash symbolication.

event [required]

object

Metadata for a Unity IL2CPP mapping file upload, sent as a JSON-encoded event field.

build_id [required]

string

Build ID (1-200 characters).

type [required]

enum

Must be il2cpp_mapping_file. Allowed enum values: il2cpp_mapping_file

il2cpp_mapping_file [required]

binary

The IL2CPP mapping file.

Option 8

object

Multipart form data for uploading ELF symbol files for Linux/Unix crash symbolication.

elf_symbol_file [required]

binary

The ELF symbol file.

event [required]

object

Metadata for an ELF symbol file upload, sent as a JSON-encoded event field.

arch

string

CPU architecture (max 200 characters).

cli_version

string

Version of the CLI used for upload (max 50 characters).

file_hash

string

File hash (32 hex characters, or empty).

filename

string

Original filename (max 500 characters).

gnu_build_id

string

GNU Build ID (16+ hex characters, or empty).

go_build_id

string

Go Build ID (or redacted, or empty).

origin

string

Origin identifier (max 200 characters).

origin_version

string

Origin version (max 200 characters).

overwrite

boolean

Whether to overwrite existing symbol file.

symbol_source

string

Symbol source (max 200 characters).

type [required]

enum

Must be elf_symbol_file. Allowed enum values: elf_symbol_file

Option 9

object

Multipart form data for uploading PE/PDB symbol files for Windows crash symbolication.

event [required]

object

Metadata for a PE/PDB symbol file upload, sent as a JSON-encoded event field.

arch [required]

string

CPU architecture (1-200 characters).

cli_version

string

Version of the CLI used for upload (max 50 characters).

filename

string

Original filename (max 500 characters).

origin

string

Origin identifier (max 200 characters).

origin_version

string

Origin version (max 200 characters).

overwrite

boolean

Whether to overwrite existing symbol file.

pdb_age [required]

int64

PDB age (>= 0).

pdb_sig [required]

string

PDB signature GUID.

type [required]

enum

Must be pe_symbol_file. Allowed enum values: pe_symbol_file

pe_symbol_file [required]

binary

The PDB symbol file.

Option 10

object

Multipart form data for uploading repository metadata for source code linking.

event [required]

object

Metadata for a repository upload, sent as a JSON-encoded event field.

cli_version

string

Version of the CLI used for upload (max 50 characters).

git_commit_sha [required]

string

Git commit SHA (40 lowercase hex characters).

git_repository_url [required]

string

Git repository URL (max 2048 characters).

type [required]

enum

Must be repository. Allowed enum values: repository

repository [required]

binary

Repository metadata file.

{
  "event": {
    "cli_version": "string",
    "git_commit_sha": "string",
    "git_repository_url": "string",
    "minified_url": "https://example.com/static/js/main.min.js",
    "overwrite": false,
    "project_path": "string",
    "service": "my-web-app",
    "type": "js_sourcemap",
    "version": "1.2.3"
  },
  "minified_file": "main.min.js",
  "repository": "string",
  "source_map": "main.min.js.map"
}

Response

OK

Response for source map upload.

Expand All

Field

Type

Description

data

object

Data envelope for source map upload response.

id

string

Unique identifier for the uploaded source map.

type

enum

Type of the response. Allowed enum values: sourcemap_upload

{
  "data": {
    "id": "sourcemap-upload-id",
    "type": "sourcemap_upload"
  }
}

Accepted - the request has been accepted for processing.

Response for source map upload.

Expand All

Field

Type

Description

data

object

Data envelope for source map upload response.

id

string

Unique identifier for the uploaded source map.

type

enum

Type of the response. Allowed enum values: sourcemap_upload

{
  "data": {
    "id": "sourcemap-upload-id",
    "type": "sourcemap_upload"
  }
}

Bad Request - Invalid request body or missing required fields.

Error response for source map upload.

Expand All

Field

Type

Description

errors

[string]

A list of errors.

{
  "errors": [
    "Missing required field: service"
  ]
}

Unauthorized - Invalid or missing API key.

Error response for source map upload.

Expand All

Field

Type

Description

errors

[string]

A list of errors.

{
  "errors": [
    "Missing required field: service"
  ]
}

Forbidden - Insufficient permissions.

Error response for source map upload.

Expand All

Field

Type

Description

errors

[string]

A list of errors.

{
  "errors": [
    "Missing required field: service"
  ]
}

Not Found - The requested resource was not found.

Error response for source map upload.

Expand All

Field

Type

Description

errors

[string]

A list of errors.

{
  "errors": [
    "Missing required field: service"
  ]
}

Request Timeout - The request took too long to complete.

Error response for source map upload.

Expand All

Field

Type

Description

errors

[string]

A list of errors.

{
  "errors": [
    "Missing required field: service"
  ]
}

Payload Too Large - File size exceeds the 500 MB limit.

Error response for source map upload.

Expand All

Field

Type

Description

errors

[string]

A list of errors.

{
  "errors": [
    "Missing required field: service"
  ]
}

Too Many Requests - Rate limit exceeded.

Error response for source map upload.

Expand All

Field

Type

Description

errors

[string]

A list of errors.

{
  "errors": [
    "Missing required field: service"
  ]
}

Service Unavailable - The service is temporarily unavailable.

Error response for source map upload.

Expand All

Field

Type

Description

errors

[string]

A list of errors.

{
  "errors": [
    "Missing required field: service"
  ]
}

Code Example

                  ## JavaScript Source Map Upload
# 

# Curl command
curl -X POST "https://sourcemap-intake.ap1.datadoghq.com"https://sourcemap-intake.ap2.datadoghq.com"https://sourcemap-intake.datadoghq.eu"https://sourcemap-intake.ddog-gov.com"https://sourcemap-intake.datadoghq.com"https://sourcemap-intake.us3.datadoghq.com"https://sourcemap-intake.us5.datadoghq.com/api/v2/srcmap" \ -H "Accept: application/json" \ -H "Content-Type: multipart/form-data" \ -H "DD-API-KEY: ${DD_API_KEY}" \
## ELF Symbol File Upload # Upload an ELF symbol file for Linux/Unix crash symbolication.
# Curl command
curl -X POST "https://sourcemap-intake.ap1.datadoghq.com"https://sourcemap-intake.ap2.datadoghq.com"https://sourcemap-intake.datadoghq.eu"https://sourcemap-intake.ddog-gov.com"https://sourcemap-intake.datadoghq.com"https://sourcemap-intake.us3.datadoghq.com"https://sourcemap-intake.us5.datadoghq.com/api/v2/srcmap" \ -H "Accept: application/json" \ -H "Content-Type: multipart/form-data" \ -H "DD-API-KEY: ${DD_API_KEY}" \
## Flutter Symbol File Upload # Upload a Flutter symbol file for crash symbolication.
# Curl command
curl -X POST "https://sourcemap-intake.ap1.datadoghq.com"https://sourcemap-intake.ap2.datadoghq.com"https://sourcemap-intake.datadoghq.eu"https://sourcemap-intake.ddog-gov.com"https://sourcemap-intake.datadoghq.com"https://sourcemap-intake.us3.datadoghq.com"https://sourcemap-intake.us5.datadoghq.com/api/v2/srcmap" \ -H "Accept: application/json" \ -H "Content-Type: multipart/form-data" \ -H "DD-API-KEY: ${DD_API_KEY}" \
## Unity IL2CPP Mapping File Upload # Upload a Unity IL2CPP mapping file for crash symbolication.
# Curl command
curl -X POST "https://sourcemap-intake.ap1.datadoghq.com"https://sourcemap-intake.ap2.datadoghq.com"https://sourcemap-intake.datadoghq.eu"https://sourcemap-intake.ddog-gov.com"https://sourcemap-intake.datadoghq.com"https://sourcemap-intake.us3.datadoghq.com"https://sourcemap-intake.us5.datadoghq.com/api/v2/srcmap" \ -H "Accept: application/json" \ -H "Content-Type: multipart/form-data" \ -H "DD-API-KEY: ${DD_API_KEY}" \
## iOS dSYM Upload # Upload a dSYM archive for iOS crash symbolication.
# Curl command
curl -X POST "https://sourcemap-intake.ap1.datadoghq.com"https://sourcemap-intake.ap2.datadoghq.com"https://sourcemap-intake.datadoghq.eu"https://sourcemap-intake.ddog-gov.com"https://sourcemap-intake.datadoghq.com"https://sourcemap-intake.us3.datadoghq.com"https://sourcemap-intake.us5.datadoghq.com/api/v2/srcmap" \ -H "Accept: application/json" \ -H "Content-Type: multipart/form-data" \ -H "DD-API-KEY: ${DD_API_KEY}" \
## JavaScript Source Map Upload # Upload a JavaScript source map for browser RUM applications.
# Curl command
curl -X POST "https://sourcemap-intake.ap1.datadoghq.com"https://sourcemap-intake.ap2.datadoghq.com"https://sourcemap-intake.datadoghq.eu"https://sourcemap-intake.ddog-gov.com"https://sourcemap-intake.datadoghq.com"https://sourcemap-intake.us3.datadoghq.com"https://sourcemap-intake.us5.datadoghq.com/api/v2/srcmap" \ -H "Accept: application/json" \ -H "Content-Type: multipart/form-data" \ -H "DD-API-KEY: ${DD_API_KEY}" \
## ProGuard/R8 Mapping File Upload # Upload a ProGuard or R8 mapping file for Android crash deobfuscation.
# Curl command
curl -X POST "https://sourcemap-intake.ap1.datadoghq.com"https://sourcemap-intake.ap2.datadoghq.com"https://sourcemap-intake.datadoghq.eu"https://sourcemap-intake.ddog-gov.com"https://sourcemap-intake.datadoghq.com"https://sourcemap-intake.us3.datadoghq.com"https://sourcemap-intake.us5.datadoghq.com/api/v2/srcmap" \ -H "Accept: application/json" \ -H "Content-Type: multipart/form-data" \ -H "DD-API-KEY: ${DD_API_KEY}" \
## Android NDK Symbol File Upload # Upload an Android NDK symbol file for native crash symbolication.
# Curl command
curl -X POST "https://sourcemap-intake.ap1.datadoghq.com"https://sourcemap-intake.ap2.datadoghq.com"https://sourcemap-intake.datadoghq.eu"https://sourcemap-intake.ddog-gov.com"https://sourcemap-intake.datadoghq.com"https://sourcemap-intake.us3.datadoghq.com"https://sourcemap-intake.us5.datadoghq.com/api/v2/srcmap" \ -H "Accept: application/json" \ -H "Content-Type: multipart/form-data" \ -H "DD-API-KEY: ${DD_API_KEY}" \
## Windows PE/PDB Symbol File Upload # Upload a PE/PDB symbol file for Windows crash symbolication.
# Curl command
curl -X POST "https://sourcemap-intake.ap1.datadoghq.com"https://sourcemap-intake.ap2.datadoghq.com"https://sourcemap-intake.datadoghq.eu"https://sourcemap-intake.ddog-gov.com"https://sourcemap-intake.datadoghq.com"https://sourcemap-intake.us3.datadoghq.com"https://sourcemap-intake.us5.datadoghq.com/api/v2/srcmap" \ -H "Accept: application/json" \ -H "Content-Type: multipart/form-data" \ -H "DD-API-KEY: ${DD_API_KEY}" \
## React Native Source Map Upload # Upload a React Native source map for mobile applications.
# Curl command
curl -X POST "https://sourcemap-intake.ap1.datadoghq.com"https://sourcemap-intake.ap2.datadoghq.com"https://sourcemap-intake.datadoghq.eu"https://sourcemap-intake.ddog-gov.com"https://sourcemap-intake.datadoghq.com"https://sourcemap-intake.us3.datadoghq.com"https://sourcemap-intake.us5.datadoghq.com/api/v2/srcmap" \ -H "Accept: application/json" \ -H "Content-Type: multipart/form-data" \ -H "DD-API-KEY: ${DD_API_KEY}" \
## Repository Metadata Upload # Upload repository metadata for source code linking.
# Curl command
curl -X POST "https://sourcemap-intake.ap1.datadoghq.com"https://sourcemap-intake.ap2.datadoghq.com"https://sourcemap-intake.datadoghq.eu"https://sourcemap-intake.ddog-gov.com"https://sourcemap-intake.datadoghq.com"https://sourcemap-intake.us3.datadoghq.com"https://sourcemap-intake.us5.datadoghq.com/api/v2/srcmap" \ -H "Accept: application/json" \ -H "Content-Type: multipart/form-data" \ -H "DD-API-KEY: ${DD_API_KEY}" \