---
title: "POST /udl/ecpedr"
method: POST
path: "/udl/ecpedr"
tags: ["Observation"]
---

# POST /udl/ecpedr

`POST /udl/ecpedr`

## Request

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

Service operation to take a single ECPEDR record 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

- ECPEDRIngest: Energetic Charged Particles (ECP) Environmental Data Records (EDRs).
  - `id` string: Unique identifier of the record, auto-generated by the system if not provided on create operations.
  - `classificationMarking` string, required: Classification marking of the data in IC/CAPCO Portion-marked format.
  - `obTime` string, date-time, required: Time of the observation, in ISO 8601 UTC format with microsecond precision.
  - `idSensor` string: Unique identifier of the reporting sensor. This ID can be used to obtain additional information on a sensor using the 'get by ID' operation (e.g. /udl/sensor/{id}). For example, the sensor with idSensor = abc would be queried as /udl/sensor/abc.
  - `idOnOrbit` string: Unique identifier of the on-orbit satellite hosting the sensor.
  - `satNo` integer: Satellite/catalog number of the on-orbit satellite hosting the sensor.
  - `origSensorId` string: Optional identifier provided by the observation source to indicate the sensor which produced this observation. This may be an internal identifier and not necessarily a valid sensor ID.
  - `origObjectId` string: Optional identifier provided by the record source to indicate the satellite hosting the sensor. This may be an internal identifier and not necessarily map to a valid satellite number.
  - `genTime` string, date-time: Time when message was generated in ISO 8601 UTC format with millisecond precision.
  - `genSystem` string: System which generated the message.
  - `senPos` number[]: Three element array, expressing the observing spacecraft/sensor position vector components at observation time, in kilometers, in the specified senReferenceFrame. If senReferenceFrame is null then J2000 should be assumed. The array element order is [xpos, ypos, zpos].
  - `senReferenceFrame` 'J2000' | 'EFG/TDR' | 'ECR/ECEF' | 'TEME' | 'ITRF' | 'GCRF': The reference frame of the observing sensor state. If the senReferenceFrame is null it is assumed to be J2000.
  - `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.
  - `transactionId` string: Optional identifier to track a commercial or marketplace transaction executed to produce this data.
  - `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.
  - `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.
  - `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.
  - `ecpedrMeasurements` ECPEDRMeasurementIngest[], required: Collection of measurements associated with this ECP EDR record.
    - `msgNumber` integer: Designates a specific group of measurements made.
    - `chanId` string: Identifier of the channel based on energy levels and particle species.
    - `chanEnergyLow` number, double: Lower energy threshold of the channel for event detection and data collection.
    - `chanEnergyHigh` number, double: Higher energy threshold of the channel for event detection and data collection.
    - `chanUnit` string: Units used for defining channel energy boundaries (e.g., eV, keV, MeV, etc.).
    - `chanType` string: Type of channel based on the measurement method (e.g., INTEGRAL, DIFFERENTIAL, etc.).
    - `species` string: Type of particle species being measured by a channel (e.g., ELECTRON, PROTON, etc.).
    - `obType` string, required: The type of observation associated with this record. (e.g., FLUX, CHARGE, etc.).
    - `obValue` number, double: A single observation value expressed in the specified unit of measure (obUoM).
    - `obQuality` string: The quality of this individual observation. The observation quality indicator value may vary among providers and may be a generalized statement (BAD, GOOD, UNCERTAIN, UNKNOWN) or a numeric value. Users should consult the data provider to verify the usage of the observation.
    - `obQualityIndicator` string: The quality indicator of this individual observation. The observation quality indicator value is a descriptive value indicating the reason for the quality designation of the data.
    - `obUoM` string, required: The Unit of Measure associated with this observation. If there are no physical units associated with the measurement, a value of NONE should be specified.

## 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-03-25** `173e4aff893f`: 3 info
  - added the new optional request property `ecpedrMeasurements/items/obQuality`
  - added the new optional request property `ecpedrMeasurements/items/obQualityIndicator`
  - the `ecpedrMeasurements/items/species` request property's maxLength was increased from `24` to `64`
- **2025-09-26** `45631f9bb3f0`: 1 info
  - endpoint added

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