---
title: "POST /filedrop/udl-diffofarrival"
method: POST
path: "/filedrop/udl-diffofarrival"
tags: ["TDOA/FDOA"]
---

# POST /filedrop/udl-diffofarrival

`POST /filedrop/udl-diffofarrival`

## Request

- Base URL: `https://unifieddatalibrary.com`
- URL: `https://unifieddatalibrary.com/filedrop/udl-diffofarrival`
- Auth: none declared

Service operation to take multiple TDOA/FDOA records as a POST body and ingest into the database. This operation is intended to be used for automated feeds into UDL. A specific role is required to perform this service operation. Please contact the UDL team for assistance.

## Request body

- DiffOfArrivalIngest[]
  - `id` string: Unique identifier of the record, auto-generated by the system.
  - `classificationMarking` string, required: Classification marking of the data in IC/CAPCO Portion-marked format.
  - `obTime` string, date-time, required: Ob detection time in ISO 8601 UTC with microsecond precision.
  - `idOnOrbit` string: Unique identifier of the target on-orbit object, if correlated.
  - `idSensor1` string: Sensor ID of the primary/1st sensor used for this measurement.
  - `idSensor2` string: Sensor ID of the secondary/2nd sensor used for this measurement.
  - `satNo` integer: Catalog number of the target on-orbit object.
  - `taskId` string: Optional identifier to indicate the specific tasking which produced this observation.
  - `origObjectId` string: Optional identifier provided by observation source to indicate the target onorbit object of this observation. This may be an internal identifier and not necessarily a valid satellite number.
  - `origSensorId1` string: Optional identifier provided by DOA source to indicate the primary/1st sensor identifier used for this measurement. This may be an internal identifier and not necessarily a valid sensor ID.
  - `origSensorId2` string: Optional identifier provided by DOA source to indicate the secondary/2nd sensor identifier used for this this observation. This may be an internal identifier and not necessarily a valid sensor ID.
  - `uct` boolean: Boolean indicating this observation is part of an uncorrelated track or was unable to be correlated to a known object. This flag should only be set to true by data providers after an attempt to correlate to an on-orbit object was made and failed. If unable to correlate, the 'origObjectId' field may be populated with an internal data provider specific identifier.
  - `sensor1Delay` number, double: The signal arrival delay relative to sensor 1, in seconds.
  - `sensor2Delay` number, double: The signal arrival delay relative to sensor 2, in seconds.
  - `senlat` number, double: Sensor WGS84 latitude at obTime (if mobile/onorbit), in degrees. If null, can be obtained from sensor info. -90 to 90 degrees (negative values south of equator).
  - `senlon` number, double: Sensor WGS84 longitude at obTime (if mobile/onorbit), in degrees. If null, can be obtained from sensor info. -180 to 180 degrees (negative values west of Prime Meridian).
  - `senalt` number, double: Sensor altitude at obTime (if mobile/onorbit), in kilometers. If null, can be obtained from sensor info.
  - `azimuth1` number, double: Line of sight azimuth angle for sensor 1, in degrees and topocentric frame. Azimuth ranges from 0 to 360 degrees.
  - `elevation1` number, double: Line of sight elevation angle for sensor 1, in degrees and topocentric frame. Elevation ranges from -90 to 90 degrees.
  - `sen2lat` number, double: Sensor 2 WGS84 latitude at obTime (if mobile/onorbit), in degrees. If null, can be obtained from sensor info. -90 to 90 degrees (negative values south of equator).
  - `sen2lon` number, double: Sensor 2 WGS84 longitude at obTime (if mobile/onorbit), in degrees. If null, can be obtained from sensor info. -180 to 180 degrees (negative values west of Prime Meridian).
  - `sen2alt` number, double: Sensor 2 altitude at obTime (if mobile/onorbit), in kilometers. If null, can be obtained from sensor info.
  - `azimuth2` number, double: Line of sight azimuth angle for sensor 2, in degrees and topocentric frame. Azimuth ranges from 0 to 360 degrees.
  - `elevation2` number, double: Line of sight elevation angle for sensor 2, in degrees and topocentric frame. Elevation ranges from -90 to 90 degrees.
  - `frequency` number, double: Center frequency of the collect, in hertz.
  - `bandwidth` number, double: Bandwidth of the signal, in hertz.
  - `deltaRange` number, double: Delta range, in kilometers. Delta range calculation convention is (sensor2 - sensor1).
  - `deltaRangeUnc` number, double: One sigma uncertainty in delta range, in kilometers.
  - `deltaRangeRate` number, double: Delta range rate, in kilometers per second. Delta range rate calculation convention is (sensor2 - sensor1).
  - `deltaRangeRateUnc` number, double: One sigma uncertainty in the delta range rate, in kilometers per second.
  - `snr` number, double: Signal to noise ratio, in decibels.
  - `polarityType` string: Transponder polarization e.g. H - (Horizontally Polarized) Perpendicular to Earth's surface, V - (Vertically Polarized) Parallel to Earth's surface, L - (Left Hand Circularly Polarized) Rotating left relative to the earth's surface, R - (Right Hand Circularly Polarized) Rotating right relative to the earth's surface.
  - `tdoa` number, double: Time difference of arrival of the center frequency signal, in seconds. TDOA calculation convention is (sensor2 - sensor1).
  - `tdoaUnc` number, double: One sigma uncertainty in time difference of arrival of the center frequency signal, in seconds.
  - `tdoaAmb` integer: The number of full signal cycles the time difference of arrival measurement could be shifted due to repeating patterns in the signal (0 = no ambiguity, +1 = one positive cycle ambiguity, -1 = one negative cycle ambiguity).
  - `fdoa` number, double: Frequency difference of arrival of the center frequency signal, in hertz. FDOA calculation convention is (sensor2 - sensor1).
  - `fdoaUnc` number, double: One sigma uncertainty in frequency difference of arrival of the center frequency signal, in hertz.
  - `collectionMode` string: Collection mode (e.g., DIRECTED_SEARCH, MANUAL, NEIGHBORHOOD_WATCH, SPOT_SEARCH, SURVEY, etc.).
  - `rawFileURI` string: Optional URI location in the document repository of the raw file parsed by the system to produce this record. To download the raw file, prepend https://udl-hostname/scs/download?id= to this value. This field should not be used unless coordinated with the UDL onboarding team.
  - `source` string, required: Source of the data.
  - `dataMode` 'REAL' | 'TEST' | 'SIMULATED' | 'EXERCISE', required: Indicator of whether the data is REAL, TEST, EXERCISE, or SIMULATED data: REAL: Data collected or produced that pertains to real-world objects, events, and analysis. TEST: Specific datasets used to evaluate compliance with specifications and requirements, and for validating technical, functional, and performance characteristics. EXERCISE: Data pertaining to a government or military exercise. The data may include both real and simulated data. SIMULATED: Synthetic data generated by a model to mimic real-world datasets.
  - `tags` string[]: Optional array of provider/source specific tags for this data, where each element is no longer than 32 characters, used for implementing data owner conditional access controls to restrict access to the data. Should be left null by data providers unless conditional access controls are coordinated with the UDL team.
  - `origin` string: Originating system or organization which produced the data, if different from the source. The origin may be different than the source if the source was a mediating system which forwarded the data on behalf of the origin system. If null, the source may be assumed to be the origin.
  - `createdAt` string, date-time: Time the row was created in the database, auto-populated by the system.
  - `createdBy` string: Application user who created the row in the database, auto-populated by the system.
  - `descriptor` string: Optional source-provided and searchable metadata or descriptor of the data.
  - `transactionId` string: Optional identifier to track a commercial or marketplace transaction executed to produce this data.
  - `origNetwork` string: The originating source network on which this record was created, auto-populated by the system.
  - `sourceDL` string: The source data library from which this record was received. This could be a remote or tactical UDL or another data library. If null, the record should be assumed to have originated from the primary Enterprise UDL.

## Response `202`

Accepted

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `429`: Rate of Requests Exceeds Allowed Limit
- `500`: Internal Server Error

## Changes

> 12 revisions in range; 1 could not be searched.

- **2026-04-09** `bd17bc53681e`: 1 info
  - added the non-success response with the status `429`
- **2026-03-25** `173e4aff893f`: 6 info
  - added the new optional request property `items/azimuth1`
  - added the new optional request property `items/azimuth2`
  - added the new optional request property `items/elevation1`
  - added the new optional request property `items/elevation2`
  - …2 more
- **2025-09-26** `45631f9bb3f0`: 1 breaking
  - the `items/origNetwork` request property's minLength was increased from `0` to `1`
- **2025-04-16** `75f764c843a9`: 1 info
  - the endpoint scheme security `BasicAuth` was removed from the API

[Operation history](https://skmtc.dev/bluestaq/apis/unified-data-library-services-api/changes/filedrop/udl-diffofarrival/post.md)

---

[API](https://skmtc.dev/bluestaq/apis/unified-data-library-services-api.md) - [All operations](https://skmtc.dev/bluestaq/apis/unified-data-library-services-api/llms.txt) - [OpenAPI document](https://skmtc.dev/bluestaq/apis/unified-data-library-services-api/revisions/bd17bc53681e?raw)
