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/srcmap https://sourcemap-intake.ap2.datadoghq.com/api/v2/srcmap https://sourcemap-intake.datadoghq.eu/api/v2/srcmap https://sourcemap-intake.ddog-gov.com/api/v2/srcmap https://sourcemap-intake.datadoghq.com/api/v2/srcmap https://sourcemap-intake.us3.datadoghq.com/api/v2/srcmap https://sourcemap-intake.us5.datadoghq.com/api/v2/srcmap Not 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:
event — a JSON-encoded string with the upload metadata (type, service, version, etc.)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 applicationsreact_native_sourcemap: React Native source maps for mobile applicationsjvm_mapping_file: ProGuard/R8 mapping files for Android crash deobfuscationios_symbols: dSYM files for iOS crash symbolicationflutter_symbol_file: Flutter symbol filesndk_symbol_file: Android NDK symbol files for native crashesil2cpp_mapping_file: IL2CPP mapping files for Unityelf_symbol_file: ELF symbol files for Linux/Unixpe_symbol_file: PE/PDB symbol files for Windowsrepository: Repository metadata for source code linkingLimits:
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
Multipart form data for uploading JavaScript source maps for browser RUM applications.
Metadata for a JavaScript source map upload, sent as a JSON-encoded event field.
Version of the CLI used for upload (max 50 characters).
Git commit SHA (40 lowercase hex characters).
Git repository URL (max 2048 characters).
URL of the minified JavaScript file (1-2048 characters).
Whether to overwrite existing source map.
Path to the project root (max 500 characters).
Service name (1-200 characters).
Must be js_sourcemap.
Allowed enum values: js_sourcemap
Version of the service (1-200 characters).
The minified JavaScript file.
Repository metadata file (optional).
Multipart form data for uploading React Native source maps for mobile applications.
Metadata for a React Native source map upload, sent as a JSON-encoded event field.
Build number (max 200 characters).
Name of the JavaScript bundle (1-200 characters).
Bundle version (max 200 characters).
Version of the CLI used for upload (max 50 characters).
Debug identifier for the source map file.
Target platform for mobile source maps.
Allowed enum values: android,ios
Path to the project root (max 500 characters).
Service name (1-200 characters).
Must be react_native_sourcemap.
Allowed enum values: react_native_sourcemap
Version of the service (1-200 characters).
The minified JavaScript bundle (optional).
Repository metadata file (optional).
Multipart form data for uploading ProGuard or R8 mapping files for Android crash deobfuscation.
Metadata for a ProGuard or R8 mapping file upload, sent as a JSON-encoded event field.
Build identifier for the mapping file.
Whether to overwrite existing mapping file.
Service name (1-200 characters).
Must be jvm_mapping_file.
Allowed enum values: jvm_mapping_file
Build variant (max 200 characters).
Version of the service (1-200 characters).
jvm_mapping_file [required ]
The ProGuard/R8 mapping file.
Repository metadata file (optional).
Multipart form data for uploading dSYM files for iOS crash symbolication.
Metadata for an iOS dSYM file upload, sent as a JSON-encoded event field.
Must be ios_symbols.
Allowed enum values: ios_symbols
Comma-separated list of dSYM UUIDs (min 1 character).
symbols_archive [required ]
The dSYM archive file (.zip).
Multipart form data for uploading Flutter symbol files for crash symbolication.
Metadata for a Flutter symbol file upload, sent as a JSON-encoded event field.
CPU architecture (1-200 characters).
Version of the CLI used for upload (max 50 characters).
Target platform (1-200 characters).
Service name (1-200 characters).
Must be flutter_symbol_file.
Allowed enum values: flutter_symbol_file
Build variant (1-200 characters).
Version of the service (1-200 characters).
flutter_symbol_file [required ]
Multipart form data for uploading Android NDK symbol files for native crash symbolication.
Metadata for an Android NDK symbol file upload, sent as a JSON-encoded event field.
CPU architecture (1-200 characters).
Build ID (1-200 characters).
Original filename (max 500 characters).
Must be ndk_symbol_file.
Allowed enum values: ndk_symbol_file
ndk_symbol_file [required ]
Multipart form data for uploading IL2CPP mapping files for Unity crash symbolication.
Metadata for a Unity IL2CPP mapping file upload, sent as a JSON-encoded event field.
Build ID (1-200 characters).
Must be il2cpp_mapping_file.
Allowed enum values: il2cpp_mapping_file
il2cpp_mapping_file [required ]
Multipart form data for uploading ELF symbol files for Linux/Unix crash symbolication.
elf_symbol_file [required ]
Metadata for an ELF symbol file upload, sent as a JSON-encoded event field.
CPU architecture (max 200 characters).
Version of the CLI used for upload (max 50 characters).
File hash (32 hex characters, or empty).
Original filename (max 500 characters).
GNU Build ID (16+ hex characters, or empty).
Go Build ID (or redacted, or empty).
Origin identifier (max 200 characters).
Origin version (max 200 characters).
Whether to overwrite existing symbol file.
Symbol source (max 200 characters).
Must be elf_symbol_file.
Allowed enum values: elf_symbol_file
Multipart form data for uploading PE/PDB symbol files for Windows crash symbolication.
Metadata for a PE/PDB symbol file upload, sent as a JSON-encoded event field.
CPU architecture (1-200 characters).
Version of the CLI used for upload (max 50 characters).
Original filename (max 500 characters).
Origin identifier (max 200 characters).
Origin version (max 200 characters).
Whether to overwrite existing symbol file.
Must be pe_symbol_file.
Allowed enum values: pe_symbol_file
pe_symbol_file [required ]
Multipart form data for uploading repository metadata for source code linking.
Metadata for a repository upload, sent as a JSON-encoded event field.
Version of the CLI used for upload (max 50 characters).
git_commit_sha [required ]
Git commit SHA (40 lowercase hex characters).
git_repository_url [required ]
Git repository URL (max 2048 characters).
Must be repository.
Allowed enum values: repository
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
Data envelope for source map upload response.
Unique identifier for the uploaded source map.
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
Data envelope for source map upload response.
Unique identifier for the uploaded source map.
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.
{
"errors" : [
"Missing required field: service"
]
} Unauthorized - Invalid or missing API key.
Error response for source map upload.
{
"errors" : [
"Missing required field: service"
]
} Forbidden - Insufficient permissions.
Error response for source map upload.
{
"errors" : [
"Missing required field: service"
]
} Not Found - The requested resource was not found.
Error response for source map upload.
{
"errors" : [
"Missing required field: service"
]
} Request Timeout - The request took too long to complete.
Error response for source map upload.
{
"errors" : [
"Missing required field: service"
]
} Payload Too Large - File size exceeds the 500 MB limit.
Error response for source map upload.
{
"errors" : [
"Missing required field: service"
]
} Too Many Requests - Rate limit exceeded.
Error response for source map upload.
{
"errors" : [
"Missing required field: service"
]
} Service Unavailable - The service is temporarily unavailable.
Error response for source map upload.
{
"errors" : [
"Missing required field: service"
]
} Code Example Copy
## 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} " \