A valid request URL is required to generate request examples{
"failureCount": 2,
"results": [
{
"code": "import.tracking.tdm.parse_failed",
"errorCode": "TRK-4001",
"errors": [
{
"blockId": "block-1",
"code": "TRK-4006",
"firstEpoch": "2026-04-27T01:14:29.9Z",
"message": "Ambiguous Doppler correction state: YES"
}
],
"filename": "tracking_data_001.tdm",
"jobId": "550e8400-e29b-41d4-a716-446655440000",
"message": "Successfully processed 150 measurements",
"params": {},
"status": "success"
}
],
"successCount": 5,
"totalCount": 7
}{
"failureCount": 2,
"results": [
{
"code": "import.tracking.tdm.parse_failed",
"errorCode": "TRK-4001",
"errors": [
{
"blockId": "block-1",
"code": "TRK-4006",
"firstEpoch": "2026-04-27T01:14:29.9Z",
"message": "Ambiguous Doppler correction state: YES"
}
],
"filename": "tracking_data_001.tdm",
"jobId": "550e8400-e29b-41d4-a716-446655440000",
"message": "Successfully processed 150 measurements",
"params": {},
"status": "success"
}
],
"successCount": 5,
"totalCount": 7
}{
"timestamp": "2025-01-15T10:30:00.000Z",
"status": 400,
"error": "Bad Request",
"message": "No files provided",
"path": "/operations/measurements"
}{
"error": "invalid_token",
"error_description": "An error occurred while attempting to decode the Jwt"
}{
"timestamp": "2025-01-15T10:30:00.000Z",
"status": 403,
"error": "ACCESS_ERROR",
"message": "Access denied",
"path": "/operations/measurements"
}{
"timestamp": "2025-01-15T10:30:00.000Z",
"status": 409,
"error": "IMPORT_STALE_PREVIEW",
"code": "import.commit.preview.stale",
"message": "Content hash mismatch: the preview you inspected is stale",
"path": "/operations/measurements"
}{
"timestamp": "2025-01-15T10:30:00.000Z",
"status": 413,
"error": "Payload Too Large",
"message": "File size exceeds the maximum allowed limit",
"path": "/operations/measurements"
}{
"timestamp": "2025-01-15T10:30:00.000Z",
"status": 500,
"error": "Internal Server Error",
"message": "An unexpected error occurred",
"path": "/operations/measurements"
}Upload measurement files
Upload one or more measurement files for asynchronous processing. Supported formats: TDM (Tracking Data Message), SP3 (Standard Product 3), and OEM (Orbit Ephemeris Message). Each file is validated synchronously and then queued as a background job for full processing. The response includes per-file results with job IDs for tracking processing status.
A valid request URL is required to generate request examples{
"failureCount": 2,
"results": [
{
"code": "import.tracking.tdm.parse_failed",
"errorCode": "TRK-4001",
"errors": [
{
"blockId": "block-1",
"code": "TRK-4006",
"firstEpoch": "2026-04-27T01:14:29.9Z",
"message": "Ambiguous Doppler correction state: YES"
}
],
"filename": "tracking_data_001.tdm",
"jobId": "550e8400-e29b-41d4-a716-446655440000",
"message": "Successfully processed 150 measurements",
"params": {},
"status": "success"
}
],
"successCount": 5,
"totalCount": 7
}{
"failureCount": 2,
"results": [
{
"code": "import.tracking.tdm.parse_failed",
"errorCode": "TRK-4001",
"errors": [
{
"blockId": "block-1",
"code": "TRK-4006",
"firstEpoch": "2026-04-27T01:14:29.9Z",
"message": "Ambiguous Doppler correction state: YES"
}
],
"filename": "tracking_data_001.tdm",
"jobId": "550e8400-e29b-41d4-a716-446655440000",
"message": "Successfully processed 150 measurements",
"params": {},
"status": "success"
}
],
"successCount": 5,
"totalCount": 7
}{
"timestamp": "2025-01-15T10:30:00.000Z",
"status": 400,
"error": "Bad Request",
"message": "No files provided",
"path": "/operations/measurements"
}{
"error": "invalid_token",
"error_description": "An error occurred while attempting to decode the Jwt"
}{
"timestamp": "2025-01-15T10:30:00.000Z",
"status": 403,
"error": "ACCESS_ERROR",
"message": "Access denied",
"path": "/operations/measurements"
}{
"timestamp": "2025-01-15T10:30:00.000Z",
"status": 409,
"error": "IMPORT_STALE_PREVIEW",
"code": "import.commit.preview.stale",
"message": "Content hash mismatch: the preview you inspected is stale",
"path": "/operations/measurements"
}{
"timestamp": "2025-01-15T10:30:00.000Z",
"status": 413,
"error": "Payload Too Large",
"message": "File size exceeds the maximum allowed limit",
"path": "/operations/measurements"
}{
"timestamp": "2025-01-15T10:30:00.000Z",
"status": 500,
"error": "Internal Server Error",
"message": "An unexpected error occurred",
"path": "/operations/measurements"
}Authorizations
API Key (format: vsp_sk_...)
Headers
SHA-256 content hash from a prior /imports/inspect call. When present and exactly one file is uploaded, the server re-verifies this hash against the uploaded content and returns 409 IMPORT_STALE_PREVIEW on mismatch. Ignored (with a DEBUG log) for multi-file batch uploads, since the header cannot unambiguously bind to one of several files.
Body
Measurement files to upload (TDM, SP3, OEM formats)
Response
Files accepted for processing
Response from a batch file upload operation
The number of files that failed to process
2
Individual results for each file in the batch
Show child attributes
Show child attributes
The number of successfully processed files
5
The total number of files processed
7
Was this page helpful?