Skip to main content

Add symbol

Enterprise

This endpoint is part of Countly Enterprise. To get access, contact sales or compare versions. Existing customers can reach the support portal with questions.

Endpoint

/i/crash_symbols/add_symbol

Overview

Uploads a symbol/mapping file for dashboard-managed symbolication.

Authentication

Pass api_key or auth_token as a query parameter, or send countly-token as a header. See Authentication.

Permissions

  • Required permission: Create on the crashes feature

Request Parameters

ParameterTypeRequiredDescription
app_idStringYesApplication identifier
platformStringYesPlatform (android, ios, javascript, android_native, etc.)
buildStringYesBuild identifier; supports comma-separated list or JSON array string
symbolsFileYes for single-file uploadsUploaded file
symbols[]File ArrayYes for JavaScript multi-file uploadsMultiple source map files
noteStringNoNote saved in symbol document
sym_tool_verStringNoSymbol tool version
api_keyStringYes (or auth_token)API key authentication
auth_tokenStringYes (or api_key)Auth token authentication

Examples

Example 1: Upload single Android mapping file

curl -X POST "https://your-server.com/i/crash_symbols/add_symbol" \
-F "api_key=YOUR_API_KEY" \
-F "app_id=5f9c8a3b4d1e2a001f3b4567" \
-F "platform=android" \
-F "build=1.4.2" \
-F "symbols=@mapping.txt" \
-F "note=Android production mapping"

Example 2: Upload JavaScript source maps

curl -X POST "https://your-server.com/i/crash_symbols/add_symbol" \
-F "api_key=YOUR_API_KEY" \
-F "app_id=5f9c8a3b4d1e2a001f3b4567" \
-F "platform=javascript" \
-F "build=web-2026.02.15" \
-F "symbols[]=@bundle.js.map" \
-F "symbols[]=@vendor.js.map"

Response

Success Response

{
"message": "Success",
"_id": "65c5e0732c5f5300121a0020"
}

Response Fields

FieldTypeDescription
messageStringSuccess message
_idStringCreated symbol document ID

Error Responses

HTTP StatusResponse
400{ "result": "Missing platform" }
400{ "result": "Missing build information" }
400{ "result": "Missing symbols/mapping file" }
400{ "result": "Multiple symbol files are only allowed for javascript platform" }
400{ "result": "The number of files uploaded exceeds the maximum allowed" }
400{ "result": "These file extensions are not allowed: ..." }
400{ "result": "This file extension is not allowed: ..." }
400{ "result": "Could not save symbol file data" }
500{ "result": "Error creating symbol file directory" }
500{ "result": "Error saving symbol files" }

Behavior

  1. Validates platform/build and uploaded file(s).
  2. Allows multiple files only for JavaScript platform.
  3. Enforces max file count via crashes.max_symbol_file (default 10).
  4. Saves files into crash_symbols storage and metadata into app symbol collection.

Limitations

  • Allowed extensions: .gz, .map, .txt, .zip.
  • Multiple file upload is JavaScript-only.
  • Max file count for JavaScript is config-driven (crashes.max_symbol_file, default 10).
Implementation details

Database Collections

CollectionUsed forData touched by this endpoint
countly.app_crashsymbols{app_id}Endpoint data sourceStores endpoint-related records this endpoint reads or modifies.
countly_fs.crash_symbolsEndpoint data sourceStores endpoint-related records this endpoint reads or modifies.