Uploads

Verify Upload

Verify that all parts of an upload have been successfully uploaded and complete the build creation process

The upload verification endpoint is the final step in the build upload process, for both single part and multipart uploads. It verifies that all parts have been successfully uploaded and finalizes the build record in Buildstash. Requires builds:create scope.

POST/upload/verify

Authorization

bearerAuth
AuthorizationBearer <token>

API key. Bearer authentication header of the form Bearer <token>, where <token> is your Workspace or Application API key.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X POST "https://example.comupload/verify" \  -H "Authorization: Bearer YOUR_API_KEY" \  -H "Content-Type: application/json" \  -d @- <<'EOF'{  "pending_upload_id": "550e8400-e29b-41d4-a716-446655440000"}EOF
{  "message": "Upload verified successfully.",  "pending_processing": false,  "build_id": "xYz9876",  "build_info_url": "https://acme.buildstash.com/applications/aBc1234/builds/xYz9876",  "download_url": "https://acme.buildstash.com/builds/xYz9876/download",  "build": {    "id": "xYz9876",    "build_structure": "file",    "version": "1.0.1",    "version_short": "1.0.1",    "version_semantic_major": 1,    "version_semantic_minor": 0,    "version_semantic_patch": 1,    "version_semantic_extra": null,    "version_semantic_meta": null,    "build_number": "398",    "platform": {      "identifier": "windows",      "name": "Windows",      "short_name": "Windows",      "upload_instruction": "Upload a .exe, .msi, or .zip installer."    },    "stream": {      "id": "stR4567",      "name": "nightlies",      "description": "Nightly development builds",      "retention_days": 30,      "created_at": "2025-06-10T09:15:00.000000Z",      "updated_at": "2025-06-15T14:30:00.000000Z"    },    "labels": [      {        "id": "lbl1234",        "name": "Production",        "description": "Production-ready builds",        "color": "#22c55e",        "level": "application",        "created_at": "2025-06-10T09:15:00.000000Z",        "updated_at": "2025-06-15T14:30:00.000000Z"      }    ],    "architectures": [      {        "identifier": "x64",        "name": "x64",        "description": "64-bit x86 (AMD64 / Intel 64)"      },      {        "identifier": "arm64v8",        "name": "ARM64v8",        "description": "ARMv8-A 64-bit"      }    ],    "notes": "Example build notes here.",    "size_total_bytes": 52428800,    "size_total_string": "50.00 MB",    "metadata_total_bytes": 4096,    "build_source": "ghactions",    "ci_pipeline": {      "ci_pipeline_name": "Nightly Build",      "ci_pipeline_url": "https://github.com/buildstash/example/actions/workflows/nightly.yml",      "ci_run_id": "12345678901",      "ci_run_url": "https://github.com/buildstash/example/actions/runs/12345678901",      "ci_build_duration": "00:05:00"    },    "scm": {      "scm_host_type": "git",      "scm_host": "github",      "scm_repo_name": "buildstash/example",      "scm_repo_url": "https://github.com/buildstash/example",      "scm_branch": "main",      "scm_commit_sha": "1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6",      "scm_commit_sha_short": "1a2b3c4",      "scm_commit_url": "https://github.com/buildstash/example/commit/1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6"    },    "pending": false,    "modal_url": "https://acme.buildstash.com/applications/aBc1234/builds/xYz9876",    "download_url": "https://acme.buildstash.com/builds/xYz9876/download",    "built_at": "2025-06-15T14:30:00.000000Z",    "created_at": "2025-06-10T09:15:00.000000Z",    "updated_at": "2025-06-15T14:30:00.000000Z",    "application_id": "aBc1234",    "workspace_id": "wSp1234",    "primary_file": {      "id": "550e8400-e29b-41d4-a716-446655440003",      "filename": "example.exe",      "size_bytes": 52428800,      "size_string": "50.00 MB",      "checksum_md5": "d41d8cd98f00b204e9800998ecf8427e",      "filetype": {        "identifier": "exe",        "name": "Windows Executable",        "extension": "exe"      },      "created_at": "2025-06-10T09:15:00.000000Z",      "updated_at": "2025-06-15T14:30:00.000000Z"    },    "expansion_files": [],    "metadata_artifacts": [      {        "id": "550e8400-e29b-41d4-a716-446655440002",        "filename": "Info.plist",        "size_bytes": 4096,        "size_string": "4.00 KB",        "checksum_md5": "098f6bcd4621d373cade4e832627b4f6",        "metadata_filetype": {          "identifier": "info-plist",          "name": "Info.plist",          "extension": "plist"        },        "created_at": "2025-06-10T09:15:00.000000Z",        "updated_at": "2025-06-15T14:30:00.000000Z"      }    ],    "ios_info": null,    "android_info": null  }}
Empty
{  "message": "Unauthorized"}

Notes

  • For multipart uploads, all parts with ETags must be included in the multipart_chunks array
  • ETags must match exactly what was returned from the upload requests
  • Some builds may take a short delay to process, indicated by pending_processing: true