Skip to main content
Upload debug symbol files (.pdb) to enhance the accuracy of security analysis. Debug symbols provide additional context that helps identify more vulnerabilities.

When to Use This Endpoint

Upload debug symbols after uploading your binary image when:
  • You have .pdb files available from your build process
  • You want more accurate vulnerability detection
  • You need better source code correlation in findings
Tip: Debug symbols significantly improve analysis accuracy. Always upload them when available.

Request

Endpoint
POST <BINARLY_API_URL>/api/v4/products/{product_id}/images/{image_id}/files
Path Parameters
ParameterDescription
product_idThe product ID (e.g., prod_abc123)
image_idThe image ID from the upload response (e.g., img_abc123)
Headers
HeaderValue
AuthorizationBearer <access_token>
Content-Typemultipart/form-data
Form Fields
FieldRequiredDescription
fileThe debug symbol file (.pdb)

Example Request - Single File

# Set your variables
BINARLY_PRODUCT_ID="prod_abc123"
IMAGE_ID="img_abc123"
PDB_FILE="/path/to/firmware.pdb"

# Upload the debug symbol file
curl -X POST \
  -H "Authorization: Bearer ${TOKEN}" \
  -F "file=@${PDB_FILE}" \
  "${BINARLY_API_URL}/api/v4/products/${BINARLY_PRODUCT_ID}/images/${IMAGE_ID}/files"

Example Request - Batch Upload

If you have multiple .pdb files, upload them in a loop:
# Set your variables
BINARLY_PRODUCT_ID="prod_abc123"
IMAGE_ID="img_abc123"
SYMBOLS_DIR="/path/to/symbols"

# Find and upload all .pdb files
find "$SYMBOLS_DIR" -name "*.pdb" | while read PDB_FILE; do
  echo "Uploading: $PDB_FILE"
  
  RESPONSE=$(curl -s -X POST \
    -H "Authorization: Bearer ${TOKEN}" \
    -F "file=@${PDB_FILE}" \
    "${BINARLY_API_URL}/api/v4/products/${BINARLY_PRODUCT_ID}/images/${IMAGE_ID}/files")
  
  # Check if upload succeeded
  if echo "$RESPONSE" | jq -e '.id' > /dev/null 2>&1; then
    echo "✅ Uploaded successfully"
  else
    echo "❌ Upload failed: $RESPONSE"
  fi
done

Response

Returns the created file object with upload confirmation.
{
  "id": "01ABC123DEF456...",
  "filename": "firmware.pdb",
  "createTime": "2026-01-28T12:00:00Z"
}
FieldDescription
idUnique file identifier (ULID format)
filenameThe uploaded file name
createTimeTimestamp when file was uploaded

Best Practices

PracticeDescription
Upload after firmwareAlways upload debug symbols after the firmware image
Include all symbolsUpload all available .pdb files from your build
Automate in CI/CDIntegrate symbol upload into your build pipeline
Keep symbols secureDebug symbols contain sensitive information - transfer via HTTPS only
User Guides