---
title: "POST /udl/sensor"
method: POST
path: "/udl/sensor"
tags: ["Sensor"]
---

# POST /udl/sensor

`POST /udl/sensor`

## Request

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

Service operation to take a single sensor as a POST body and ingest into the database. A specific role is required to perform this service operation. Please contact the UDL team for assistance.

## Request body

- SensorIngest: Model representation of observation data for electro-optical based sensor phenomenologies.
  - `idSensor` string: Unique identifier of the record, auto-generated by the system.
  - `sensorName` string, required: Unique name of this sensor.
  - `classificationMarking` string, required: Classification marking of the data in IC/CAPCO Portion-marked format.
  - `sensorNumber` integer: Number assigned to this sensor. Since there is no authoritative numbering scheme, these numbers sometimes collide across sensors (especially commercial sensors). It is therefore not a unique identifier.
  - `shortName` string: Optional short name for the sensor.
  - `dataControl` string: Optional dissemination control required for accessing data (e.g observations) produced by this sensor. This is typically a proprietary data owner control for commercial sensors.
  - `afId` string: Optional US Air Force identifier for the sensor/ASR site, typically for air surveillance radar (ASR) sensors.
  - `asrType` string: The sensor type at the site. Optional field, intended primarily for ASRs.
  - `source` string, required: Source of the data.
  - `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.
  - `origNetwork` string: The originating source network on which this record was created, auto-populated by the system.
  - `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.
  - `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.
  - `active` boolean: Optional flag indicating if the sensor is active.
  - `sensorcharacteristics` object[]: Collection of Sensorcharacteristics which define characteristics and capabilities of a sensor.
    - `id` string: Unique identifier of the record, auto-generated by the system.
    - `idSensor` string, required: Unique identifier of the parent sensor.
    - `classificationMarking` string, required: Classification marking of the data in IC/CAPCO Portion-marked format.
    - `origNetwork` string: The originating source network on which this record was created, auto-populated by the system.
    - `equipmentType` string: Type of equipment used to take measurements.
    - `siteCode` string: Site code of the sensor.
    - `testNumber` string: Test number for the observed measurement.
    - `description` string: Description of the equipment and data source.
    - `location` string: Site where measurement is taken.
    - `beamQty` integer: Number of radar beams used by the sensor.
    - `beamOrder` string[]: Array designating the beam order of provided values (e.g. vb1 for vertical beam 1, ob1 for oblique beam 1, etc.). Required if any of the following array fields are populated: azAngs, elAngs, radarPulseWidths, pulseRepPeriods, delayGates, rangeGates, rangeSpacings, vertGateSpacings, vertGateWidths, specAvgSpectraNums, tempMedFiltCodes, runMeanCodes, totRecNums, reqRecords, acceptSampleRanges.
    - `azimuthRate` number, double: Azimuth rate acquisition limit (radians per minute).
    - `azAngs` number[]: Array of azimuth angles of a radar beam, in degrees. If this field is populated, the associated beam(s) must be provided in the beamOrder field.
    - `elevationRateGeolm` number, double: Elevation rate acquisition limit (radians per minute).
    - `elAngs` number[]: Array of elevation angles of a radar beam, in degrees. If this field is populated, the associated beam(s) must be provided in the beamOrder field.
    - `minRangeLimit` number, double: Minimum range measurement capability of the sensor, in kilometers.
    - `maxRangeLimit` number, double: Maximum observable range limit in kilometers -- sensor cannot acquire beyond this range.
    - `leftClockAngle` number, double: For Orbiting Sensors, First Card Azimuth limit #1 (left, degrees).
    - `rightClockAngle` number, double: For Orbiting Sensors, First Card Azimuth limit #3 (right, degrees).
    - `boresight` number, double: The angle of the center of a phased array sensor, in degrees.
    - `boresightOffAngle` number, double: The number of degrees off of the boresight for the sensor.
    - `settleTime` number, double: Time for a sensor to settle after slewing to a new boresight location and before collecting observations, in seconds.
    - `negativeRangeRateLimit` number, double: Negative Range-rate/relative velocity limit (kilometers per second).
    - `positiveRangeRateLimit` number, double: Positive Range-rate/relative velocity limit (kilometers per second).
    - `magnitudeLimit` number, double: Absolute magnitude acquisition limit for optical sensors, in magnitudes.
    - `trackAngle` number, double: Beginning track angle limit, in radians. Track angle is the angle between the camera axis and the gimbal plane. Values range from 0 - PI/2.
    - `minSignalNoiseRatio` number, double: Signal to Noise Ratio, in decibels. The values for this range from 0.0 - + 99.99.
    - `detectSNR` number, double: Detection signal-to-noise ratio (SNR) threshold in decibels. This value is typically lower than trackSNR.
    - `trackSNR` number, double: Track signal-to-noise ratio (SNR) threshold in decibels. This value is typically higher than detectSNR.
    - `fanBeamWidth` number, double: The beam width of a Sensor's Fan (range), in radians. The values for this range from (0.0 to PI).
    - `taskableRange` number, double: Maximum taskable range of the sensor, in kilometers.
    - `maxObservableRange` number, double: Maximum observable sensor range, in kilometers.
    - `maxNumTracks` integer: Maximum number of simultaneous tracks. For phased array radars, this includes the capability to form multiple beams. For all sensors, it includes capability to distinguish multiple objects within a single beam or field-of-view.
    - `obsPerTrack` integer: Standard number of observations within a track.
    - `obsSpacing` number, double: Time between observations in a track in seconds.
    - `radioFrequency` number, double: Radio frequency (if sensor is RF), in hertz.
    - `radarFrequency` number, double: Radar frequency in hertz, of the sensor (if a radar sensor).
    - `transmitPower` number, double: Radar transmit power in watts.
    - `loopGain` number, double: Aggregated radar range equation gain in decibels for maximum sensitivity. It is a roll-up value for low fidelity modeling and is often the only sensitivity value available for a radar system without access to detailed performance parameters.
    - `dutyCycle` number, double: Sensor duty cycle as a fraction of 1. Duty cycle is the fraction of time a sensor is actively transmitting.
    - `taskingChannels` string[]: Array of available tasking channels (e.g. AD-HOC, CTL, DAILY, EVENT-ONLY, VOICE-ONLY, etc.).
    - `peakPower` number, double: Maximum instantaneous radar transmit power in watts for use in the radar range equation.
    - `transmitGain` number, double: Radar transmit gain in decibels.
    - `transmitLoss` number, double: Aggregate radar transmit loss, in decibels.
    - `maxDataTransmissionRate` number, double: Maximum data transmission rate, in gigabytes per second.
    - `receiveGain` number, double: Radar receive gain in decibels.
    - `receiveLoss` number, double: Aggregate radar receive loss, in decibels.
    - `numSearchPatterns` integer: Number of search patterns.
    - `searchPatternPoints` number[]: Array of the actual search pattern points in the following order: time (in seconds), azimuth/right ascension (in degrees), elevation/declination (in degrees). The initial time is always 0, and subsequent times are in seconds since the first point.
    - `patternScanLoss` number, double: Losses from the beam shape, scanning, and pattern factor in decibels. These losses occur when targets are not directly in line with a beam center. For space surveillance, this will occur most often during sensor scanning.
    - `patternAbsorptionLoss` number, double: Two-way pattern absorption/propagation loss due to medium in decibels.
    - `radomeLoss` number, double: Losses due to the presence of a protective radome surrounding a radar sensor, in decibels.
    - `collapsingLoss` number, double: Collapsing loss in decibels. Collapsing losses occur when two or more sources of noise are added to the target signal. Examples include receiver bandwidth mismatch with filtering bandwidth and elevation or azimuth beam collapse onto position/height indicator displays.
    - `signalProcessingLoss` number, double: Radar signal processing losses, in decibels.
    - `atmosTransmissionLoss` number, double: One-way radar transmission loss factor due to atmospheric effects.
    - `atmosReceiverLoss` number, double: One-way radar receiver loss factor due to atmospheric effects. This value will often be the same as the corresponding transmission factor but may be different for bistatic systems.
    - `filterMismatchFactor` number, double: Noise term, in decibels, that arises when a radar receiver filter has a non-optimal bandwidth for an incoming signal (i.e., when it does not match the pulse width).
    - `numWaveforms` integer: The number of waveforms characteristics provided in this record. If provided, the numWaveforms value indicates the number of elements in each of the waveformPulseWidths, waveformBandWidths, waveformMinRanges, waveformMaxRanges, and waveformLoopGains arrays.
    - `waveformPulseWidths` number[]: Array containing the pulse width, in microseconds, for each provided waveform. The number of elements in this array must be equal to the value indicated in the numWaveforms field.
    - `waveformBandwidths` number[]: Array containing the bandwidth, in megahertz, for each provided waveform. The number of elements in this array must be equal to the value indicated in the numWaveforms field.
    - `waveformMinRanges` number[]: Array containing the minimum range, in kilometers, for each provided waveform. The number of elements in this array must be equal to the value indicated in the numWaveforms field.
    - `waveformMaxRanges` number[]: Array containing the maximum range, in kilometers, for each provided waveform. The number of elements in this array must be equal to the value indicated in the numWaveforms field.
    - `waveformLoopGains` number[]: Array containing the loop gain, in decibels, for each provided waveform. The number of elements in this array must be equal to the value indicated in the numWaveforms field (10 SNR vs. 1 dBsm at 1000 km).
    - `hFOV` number, double: Horizontal field of view, in degrees.
    - `vFOV` number, double: Vertical field of view, in degrees.
    - `hResPixels` integer: Horizontal resolution, in pixels.
    - `vResPixels` integer: Vertical resolution, in pixels.
    - `band` string: Sensor band.
    - `bandwidth` number, double: The total bandwidth, in megahertz, about the radar center frequency.
    - `maxDeviationAngle` number, double: Max deviation angle of the sensor in degrees.
    - `solarExclAngle` number, double: Sensor and target position vector origins are at the center of the earth. The sun vector origin is at the target position and points toward the sun. Any value between 0 and 180 degrees is acceptable and is assumed to apply in both directions (i.e., a solar exclusion angle of 30 degrees is understood to mean no viewing for any angle between -30 deg and +30 deg).
    - `lunarExclAngle` number, double: Lowest aspect angle of the full moon in degrees at which the sensor can achieve full performance.
    - `earthLimbExclHgt` number, double: Sensor Earth limb exclusion height in kilometers and is generally only applied to space-based sensors. Some models used an earth exclusion angle instead, but this assumes the sensor is in a circular orbit with constant altitude relative to the earth. The limb exclusion height can be used for space-based sensors in any orbit (assuming it is constant with sensor altitude). The limb height is defined to be 0 at the surface of the earth.
    - `twilightAngle` number, double: Twilight angle for ground-based optical sensors in degrees. A sensor cannot view targets until the sun is below the twilight angle relative to the local horizon. The sign of the angle is positive despite the sun elevation being negative after local sunset. Typical values for the twilight angle are civil twilight (6 degrees), nautical twilight (12 degrees), and astronomical twilight (18 degrees).
    - `aperture` number, double: Optical sensor camera aperture.
    - `leftGeoBeltLimit` number, double: Leftmost GEO belt longitude limit for this sensor (if applicable), in degrees.
    - `rightGeoBeltLimit` number, double: Rightmost GEO belt longitude limit for this sensor (if applicable), in degrees.
    - `asrScanRate` number, double: For ASR (Air Surveillance Radar) sensors, the scan (360 deg sweep) rate of the radar, in scans per minute.
    - `k` number, double: For radar based sensors, K-factor is a relative indicator of refractivity that infers the amount of radar beam bending due to atmosphere. (1<K<2).
    - `focalPoint` number, double: For radar based sensors, the focal point elevation of the radar at the site, in meters.
    - `towerHeight` number, double: For tower sensors, the physical height of the sensor tower, in meters.
    - `trueNorthCorrector` integer: True North correction for the sensor, in ACP (Azimuth Change Pulse) count.
    - `magDec` number, double: Angle between magnetic north and true north at the sensor site, in degrees.
    - `z1MinRange` number, double: Performance zone-1 minimum range, in kilometers. Note that the zones apply only to the PSR/Search radars.
    - `z2MinRange` number, double: Performance zone-2 minimum range, in kilometers. Note that the zones apply only to the PSR/Search radars.
    - `z1MaxRange` number, double: Performance zone-1 maximum range, in kilometers. Note that the zones apply only to the PSR/Search radars.
    - `z2MaxRange` number, double: Performance zone-2 maximum range, in kilometers. Note that the zones apply only to the PSR/Search radars.
    - `radarMUR` number, double: For radar based sensors, radar maximum unambiguous range, in kilometers.
    - `probFalseAlarm` number, double: For radar based sensors, probability of the indication of the presence of a radar target due to noise or interference.
    - `prf` number, double: For radar based sensors, pulse repetition frequency (PRF), in hertz. Number of new pulses transmitted per second.
    - `radarPulseWidths` number[]: Array of transmit time(s) for a radar beam pulse, in microseconds. If this field is populated, the associated beam(s) must be provided in the beamOrder field.
    - `pulseRepPeriods` number[]: Array of interval(s) between the start of one radar pulse and the start of another for a radar beam, in microseconds. If this field is populated, the associated beam(s) must be provided in the beamOrder field.
    - `numIntegratedPulses` integer: For radar based sensors, number of integrated pulses in a transmit cycle.
    - `nonCoherentIntegratedPulses` integer: Number of pulses that are non-coherently integrated during detection processing.
    - `delayGates` number[]: Array of time delay(s) for pulses from a radar beam to get to the first range gate, in nanoseconds. If this field is populated, the associated beam(s) must be provided in the beamOrder field.
    - `rangeGates` integer[]: Array of the number(s) of discrete altitudes where return signals are sampled by a radar beam. If this field is populated, the associated beam(s) must be provided in the beamOrder field.
    - `rangeSpacings` number[]: Array of range gate spacing(s) for a radar beam, in nanoseconds. If this field is populated, the associated beam(s) must be provided in the beamOrder field.
    - `vertGateSpacings` number[]: Array of vertical distance(s) between points where radar measurements are taken, in meters. If this field is populated, the associated beam(s) must be provided in the beamOrder field.
    - `vertGateWidths` number[]: Array of width(s) of each location where radar measurements are taken, in meters. If this field is populated, the associated beam(s) must be provided in the beamOrder field.
    - `transmitHorizBeamWidth` number, double: Horizontal/azimuthal transmit beamwidth for a radar in degrees.
    - `transmitVertBeamWidth` number, double: Vertical/elevation transmit beamwidth for a radar in degrees.
    - `receiveHorizBeamWidth` number, double: Horizontal/azimuthal receive beamwidth for a radar in degrees.
    - `receiveVertBeamWidth` number, double: Vertical/elevation receive beamwidth for a radar in degrees.
    - `trueTilt` number, double: Antenna true tilt, in degrees.
    - `radarMessageFormat` string: Message data format transmitted by the sensor digitizer.
    - `dataFormats` string[]: Array of the data formats supported by the sensor associated with this record.
    - `acceptableSatIdFormats` string[]: Array of acceptable satellite ID formats for sensor tasking and catalog transmission (e.g. 5-DIGIT, 9-DIGIT, ALPHA-5, INTERNATIONAL DESIGNATOR, etc.). These formats are not necessarily applicable to UDL sensor tasking.
    - `systemNoiseTemperature` number, double: For radar based sensors, expression of the radar system noise, aggregated as an equivalent thermal noise value, in degrees Kelvin.
    - `refTemp` number, double: Reference temperature for radar noise in Kelvin. A reference temperature is used when the radar system temperature is unknown and is combined with the system noise figure to estimate signal loss.
    - `noiseFigure` number, double: Noise figure for a radar system in decibels. This value may be used to compute system noise when the system temperature is unavailable.
    - `probDetectSNR` number, double: Designated probability of detection at the signal-to-noise detection threshold.
    - `specAvgSpectraNums` integer[]: Array of the number(s) of Doppler spectra used to process measurements from radar. Spectral averaging involves combining multiple Doppler spectra acquired to obtain a more accurate and representative spectrum. If this field is populated, the associated beam(s) must be provided in the beamOrder field.
    - `tempMedFiltCodes` integer[]: Array of temporal median filter code(s) of a radar beam. Temporal median filtering is a noise-reducing algorithm which involves replacing each data point with the median value of a window of neighboring points over time. If this field is populated, the associated beam(s) must be provided in the beamOrder field.
    - `fft` integer: Number of Fast Fourier Transform (FFT) points used to convert time varying signals into the frequency domain.
    - `runMeanCodes` integer[]: Array of running mean code(s) used by radar data processing. The running mean method involves taking a series of averages of different selections of the full data set to smooth out short-term fluctuations in the data. If this field is populated, the associated beam(s) must be provided in the beamOrder field.
    - `critShear` number, double: Threshold shear value beyond which one of the radial velocity values will be rejected, measured in units of inverse seconds.
    - `vertBeamFlag` boolean: Flag indicating if a vertical radar beam was used in the wind calculation.
    - `fgpCrit` integer: Maximum number of times the first guess was propagated in each gate before failing the first guess check.
    - `totRecNums` integer[]: Array of the total number(s) of records for a radar beam. If this field is populated, the associated beam(s) must be provided in the beamOrder field.
    - `reqRecords` integer[]: Array of the total number(s) of records required to meet consensus for a radar beam. If this field is populated, the associated beam(s) must be provided in the beamOrder field.
    - `acceptSampleRanges` number[]: Array of measurement range(s) where radar samples must fall to be acceptable. If this field is populated, the associated beam(s) must be provided in the beamOrder field.
    - `minWavelength` number, double: Minimum wavelength detectable by an optical sensor in micrometers.
    - `centerWavelength` number, double: Weighted center wavelength for an optical sensor bandpass in micrometers. It is the center wavelength in a weighted integral sense, accounting for the sensitivity vs. wavelength curve for the sensor focal plane array.
    - `maxWavelength` number, double: Maximum wavelength detectable by an optical sensor in micrometers.
    - `fNum` number, double: F-number for an optical telescope. It is dimensionless and is defined as the ratio of the focal length to the aperture width.
    - `opticalTransmission` number, double: Fraction of incident light transmitted to an optical sensor focal plane array. The value is given as a fraction of 1, not as a percent.
    - `pixelInstantaneousFOV` number, double: Angular field-of-view covered by one pixel in a focal plane array in microradians. The pixel is assumed to be a perfect square so that only a single value is required.
    - `quantumEff` number, double: Fraction of incident photons converted to electrons at the focal plane array. This value is a decimal number between 0 and 1, inclusive.
    - `readNoise` integer: Number of false-signal electrons generated by optical sensor focal plane read-out electronics from photon-to-electron conversion during frame integration. The units are in electrons RMS.
    - `darkCurrent` number, double: Current flowing through optical sensor focal plane electronics with a closed shutter in electrons per second.
    - `minIntegrationTime` number, double: Minimum integration time per image frame in seconds for an optical sensor.
    - `maxIntegrationTime` number, double: Maximum integration time per image frame in seconds for an optical sensor.
    - `numIntegrationFrames` integer: Number of integration frames for an optical sensor.
    - `numOpticalIntegrationModes` integer: The number of optical integration mode characteristics provided in this record. If provided, the numOpticalIntegrationModes value indicates the number of elements in each of the opticalIntegrationTimes, opticalIntegrationAngularRates, opticalIntegrationFrames, opticalIntegrationPixelBinnings, and opticalIntegrationSNRs arrays.
    - `opticalIntegrationTimes` number[]: Array containing the time, in seconds, for each provided optical integration mode. The number of elements must be equal to the value indicated in numOpticalIntegrationModes.
    - `opticalIntegrationAngularRates` number[]: Array containing the angular rate, in arcseconds per second, for each provided optical integration mode. The number of elements must be equal to the value indicated in numOpticalIntegrationModes.
    - `opticalIntegrationFrames` number[]: Array containing the number of frames, for each optical integration mode. The number of elements must be equal to the value indicated in numOpticalIntegrationModes.
    - `opticalIntegrationPixelBinnings` number[]: Array containing the pixel binning, for each optical integration mode. The number of elements must be equal to the value indicated in numOpticalIntegrationModes.
    - `opticalIntegrationSNRs` number[]: Array of optical integration modes signal to noise ratios. The number of elements must be equal to the value indicated in numOpticalIntegrationModes.
    - `pixelWellDepth` integer: Maximum number of electrons that can be collected in a single pixel on an optical sensor focal plane array.
    - `analogToDigitalBitSize` integer: Number of bits used in the conversion from analog electrons in a pixel well to a digital number. The digital number has a maximum value of 2^N, where N is the number of bits.
    - `backgroundSkyVisMag` number, double: Average background sky brightness at an optical sensor site during new moon conditions. This field uses units of visual magnitude consistent with sensor detection bands.
    - `backgroundSkyRadiance` number, double: Average background sky brightness at an optical sensor site during new moon conditions. This field uses units of watts per square meter per steradian, consistent with sensor detection bands.
    - `avgAtmosSeeingConditions` number, double: Average atmospheric angular width with no distortion from turbulence at an optical sensor site in arcseconds.
    - `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.
    - `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.
  - `sensorStats` SensorStatsIngest[]: Collection of SensorStats which contain statistics of a sensor.
    - `id` string: Unique identifier of the record, auto-generated by the system.
    - `idSensor` string, required: Unique ID of the parent sensor.
    - `classificationMarking` string, required: Classification marking of the data in IC/CAPCO Portion-marked format.
    - `lastObTime` string, date-time: Time of last reported observation in ISO 8601 UTC with microsecond precision.
    - `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.
    - `updatedAt` string, date-time: Read-only time the row was updated in the database, set automatically by the system on update.
    - `updatedBy` string: Application user who last updated the row in the database, set by the system automatically and ignored on create/edit operations.
    - `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.
  - `sensorlimitsCollection` object[]: Sensorlimits define 0 to many limits of a particular sensor in terms of observation coverage of on-orbit objects.
    - `idSensorLimits` 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.
    - `origNetwork` string: The originating source network on which this record was created, auto-populated by the system.
    - `upperLeftAzimuthLimit` number, double: Leftmost or minimum upper azimuth within this sensor limit. Interpreted according to site types as beginning upper azimuth limit, left-hand upper boundary limit. If the limit rectangle is parallel to the horizon, the upper and lower left azimuth limits would be equal. (in degrees).
    - `upperRightAzimuthLimit` number, double: Rightmost or maximum upper azimuth within this limit. Interpreted according to site types as 2nd azimuth limit elevation angle of axis of conical observation pattern. If the limit rectangle is parallel to the horizon, the upper and lower right azimuth limits would be equal. (degrees).
    - `lowerRightAzimuthLimit` number, double: Rightmost or maximum lower azimuth within this limit. Interpreted according to site types as 2nd lower azimuth limit elevation angle of axis of conical observation pattern. If the limit rectangle is parallel to the horizon, the upper and lower right azimuth limits would be equal. (degrees).
    - `lowerLeftAzimuthLimit` number, double: Leftmost or minimum lower azimuth within this limit. Interpreted according to site types as lower left azimuth limit elevation angle of axis of conical observation pattern. If the limit rectangle is parallel to the horizon, the upper and lower left azimuth limits would be equal. (degrees).
    - `lowerLeftElevationLimit` number, double: Minimum or lower elevation within this limit. Interpreted according to site types as minimum elevation angle, constant elevation or fan beam centerline. (Degrees).
    - `upperLeftElevationLimit` number, double: Maximum or upper elevation within this limit. Interpreted according to site types as maximum elevation angle, half the apex of conical observation pattern or star. (Degrees).
    - `lowerRightElevationLimit` number, double: Minimum or lower right elevation within this limit. Interpreted according to site types as minimum right elevation angle, constant elevation or fan beam centerline. If the limit rectangle is parallel to the horizon, the left and right lower elevation limits would be equal. (Degrees).
    - `upperRightElevationLimit` number, double: Maximum or upper right elevation within this limit. Interpreted according to site types as maximum rightmost elevation angle, half the apex of conical observation pattern or star. If the limit rectangle is parallel to the horizon, the left and right upper elevation limits would be equal. (Degrees).
    - `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.
    - `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.
    - `idSensor` string, required: Unique identifier of the target sensor object.
  - `entity` object: An entity is a generic representation of any object within a space/SSA system such as sensors, on-orbit objects, RF Emitters, spacecraft buses, etc. An entity can have an operating unit, a location (if terrestrial), and statuses.
    - `idEntity` string: Unique identifier of the record.
    - `name` string, required: Unique entity name.
    - `classificationMarking` string, required: Classification marking of the data in IC/CAPCO Portion-marked format.
    - `terrestrialId` string: Terrestrial identifier of this entity, if applicable.
    - `type` 'AIRCRAFT' | 'BUS' | 'COMM' | 'IR' | 'LASEREMITTER' | 'NAVIGATION' | 'ONORBIT' | 'RFEMITTER' | 'SCIENTIFIC' | 'SENSOR' | 'SITE' | 'VESSEL', required: The type of entity represented by this record (AIRCRAFT, BUS, COMM, IR, LASEREMITTER, NAVIGATION, ONORBIT, RFEMITTER, SCIENTIFIC, SENSOR, SITE, VESSEL).
    - `idLocation` string: Unique identifier of the entity location, if terrestrial/fixed.
    - `countryCode` string: The country code. This value is typically the ISO 3166 Alpha-2 two-character country code, however it can also represent various consortiums that do not appear in the ISO document. The code must correspond to an existing country in the UDL’s country API. Call udl/country/{code} to get any associated FIPS code, ISO Alpha-3 code, or alternate code values that exist for the specified country code.
    - `ownerType` 'Commercial' | 'Government' | 'Academic' | 'Consortium' | 'Other': Type of organization which owns this entity (e.g. Commercial, Government, Academic, Consortium, etc).
    - `taskable` boolean: Boolean indicating if this entity is taskable.
    - `urls` string[]: List of URLs to additional details/documents for this entity.
    - `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.
    - `source` string, required: Source of the data.
    - `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.
    - `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.
    - `location` LocationIngest: Model representation of a location, which is a specific fixed point on the earth and is used to denote the locations of fixed sensors, operating units, etc.
      - `idLocation` string: Unique identifier of the location, auto-generated by the system.
      - `classificationMarking` string, required: Classification marking of the data in IC/CAPCO Portion-marked format.
      - `name` string, required: Location name.
      - `countryCode` string: The country code. This value is typically the ISO 3166 Alpha-2 two-character country code, however it can also represent various consortiums that do not appear in the ISO document. The code must correspond to an existing country in the UDL’s country API. Call udl/country/{code} to get any associated FIPS code, ISO Alpha-3 code, or alternate code values that exist for the specified country code.
      - `lat` number, double: WGS84 latitude of the location, in degrees. -90 to 90 degrees (negative values south of equator).
      - `lon` number, double: WGS84 longitude of the location, in degrees. -180 to 180 degrees (negative values west of Prime Meridian).
      - `altitude` number, double: Altitude of the location, in kilometers.
      - `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.
      - `source` string, required: Source of the data.
      - `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.
      - `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.
      - `origNetwork` string: The originating source network on which this record was created, auto-populated by the system.
    - `onOrbit` object: Model object representing on-orbit objects or satellites in the system.
      - `idOnOrbit` string: For the public catalog, the idOnOrbit is typically the satellite number as a string, but may be a UUID for analyst or other unknown or untracked satellites, auto-generated by the system.
      - `classificationMarking` string, required: Classification marking of the data in IC/CAPCO Portion-marked format.
      - `satNo` integer, required: Satellite/Catalog number of the target on-orbit object.
      - `commonName` string: Common name of the on-orbit object.
      - `constellation` string: Constellation to which this satellite belongs.
      - `intlDes` string: International Designator, typically of the format YYYYLLLAAA, where YYYY is the launch year, LLL is the sequential launch number of that year, and AAA is an optional launch piece designator for the launch.
      - `launchDate` string, date: Date of launch.
      - `decayDate` string, date-time: Date of decay.
      - `objectType` 'ROCKET BODY' | 'DEBRIS' | 'PAYLOAD' | 'PLATFORM' | 'MANNED' | 'UNKNOWN': Type of on-orbit object: ROCKET BODY, DEBRIS, PAYLOAD, PLATFORM, MANNED, UNKNOWN.
      - `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.
      - `missionNumber` string: Mission number of the on-orbit object.
      - `category` 'Unknown' | 'On-Orbit' | 'Decayed' | 'Cataloged Without State' | 'Launch Nominal' | 'Analyst Satellite' | 'Cislunar' | 'Lunar' | 'Hyperbolic' | 'Heliocentric' | 'Interplanetary' | 'Lagrangian' | 'Docked': Category of the on-orbit object. (Unknown, On-Orbit, Decayed, Cataloged Without State, Launch Nominal, Analyst Satellite, Cislunar, Lunar, Hyperbolic, Heliocentric, Interplanetary, Lagrangian, Docked).
      - `lifetimeYears` integer: Estimated lifetime of the on-orbit payload, if known.
      - `altName` string: Alternate name of the on-orbit object.
      - `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.
      - `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.
      - `launchSiteId` string: Id of the associated launchSite entity.
      - `countryCode` string: The country code. This value is typically the ISO 3166 Alpha-2 two-character country code, however it can also represent various consortiums that do not appear in the ISO document. The code must correspond to an existing country in the UDL’s country API. Call udl/country/{code} to get any associated FIPS code, ISO Alpha-3 code, or alternate code values that exist for the specified country code.
      - `origNetwork` string: The originating source network on which this record was created, auto-populated by the system.
    - `idOnOrbit` string: Onorbit identifier if this entity is part of an on-orbit object. For the public catalog, the idOnOrbit is typically the satellite number as a string, but may be a UUID for analyst or other unknown or untracked satellites.
    - `idOperatingUnit` string: Unique identifier of the associated operating unit object.
    - `origNetwork` string: The originating source network on which this record was created, auto-populated by the system.
  - `idEntity` string: Unique identifier of the parent entity. idEntity is required for Put.
  - `sensorObservationType` object
    - `id` string: Unique identifier of the record, auto-generated by the system.
    - `type` string: The observation measurement type produced by a sensor.
    - `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.
    - `origNetwork` string: The originating source network on which this record was created, auto-populated by the system.
  - `sensorType` object
    - `id` integer: Unique identifier of the record, auto-generated by the system.
    - `type` string: The specific sensor type and/or surveillance capability of this sensor.
    - `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.
    - `origNetwork` string: The originating source network on which this record was created, auto-populated by the system.

## Response `201`

Success

## Other responses

- `400`: Bad Request
- `401`: Invalid/Missing User Credentials
- `403`: User Is Not Authorized
- `405`: Method Not Allowed
- `415`: MediaType Unsupported
- `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`: 5 warning, 11 info
  - the `sensorcharacteristics/items/beamOrder/items/` request property's maxLength was set to `16`
  - the `sensorcharacteristics/items/fanBeamWidth` request property's max was set to `3.14`
  - the `sensorcharacteristics/items/minSignalNoiseRatio` request property's max was set to `99.99`
  - the `sensorcharacteristics/items/fanBeamWidth` request property's min was set to `0.00`
  - …12 more
- **2025-12-15** `7b321e16ea56`: 2 breaking
  - the request property `sensorlimitsCollection/items/idSensor` became required
  - the `sensorlimitsCollection/items/idSensor` request property's minLength was increased from `0` to `1`
- **2025-05-29** `4e1cbc17e814`: 60 info
  - added the new optional request property `sensorcharacteristics/items/analogToDigitalBitSize`
  - added the new optional request property `sensorcharacteristics/items/atmosReceiverLoss`
  - added the new optional request property `sensorcharacteristics/items/atmosTransmissionLoss`
  - added the new optional request property `sensorcharacteristics/items/avgAtmosSeeingConditions`
  - …56 more
- **2025-04-16** `75f764c843a9`: 1 breaking, 2 warning, 3 info
  - request body became required
  - the `entity/onOrbit/countryCode` request property's maxLength was set to `4`
  - the `entity/onOrbit/satNo` request property's min was set to `0.00`
  - api operation id `create_103` removed and replaced with ``
  - …2 more

[Operation history](https://skmtc.dev/bluestaq/apis/unified-data-library-services-api/changes/udl/sensor/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)
