> ## Documentation Index
> Fetch the complete documentation index at: https://docs.valar.space/llms.txt
> Use this file to discover all available pages before exploring further.

# Query measurements with pagination and filtering

> Retrieves paginated measurements with optional filtering by spacecraft, measurement type, date range, and outlier status. Results are sorted by epoch descending by default.



## OpenAPI

````yaml https://api.valar.space/api-docs/mintlify get /operations/measurements
openapi: 3.0.1
info:
  contact:
    email: api@valar.space
    name: Valar Space
    url: https://valar.space
  description: >-
    <H4>Welcome to the documentation for the Valar Operations API, here are some
    quick tips if you just landed!</H4><ol><li> The top level elements are the
    <b>Resources</b> accessible via the API and the different queries used to
    interact with each resource via the appropriate HTTP method call.</li><li>
    You can expand each method to get further information on the expected input
    parameters and the different responses that can be received.</li><li>For
    both the input parameters and responses, an <b>Example</b> is present for
    clarification.</li><li>For further details, the example snipped can be
    switched to <b>Schema</b> view, where a detailed explanation of each element
    can be found.</li><li>The <b>Try it out</b> button can be used to call the
    API directly from the documentation page, which allows for some easy testing
    and also provides the equivalent 'curl' command line code for easy
    portability of the call execution.</li><li><b>Before starting</b>, remember
    to use the token endpoint and activate the token with the <b>Authorize</b>
    button.</li></ol>
  title: API Documentation
  version: 1.0.0
servers:
  - url: /
    description: Default Server URL
  - url: https://api.valar.space
    description: API Server
security:
  - apiKeyAuth: []
tags:
  - description: >-
      Operations for managing state vectors — listing, importing, exporting, and
      deleting spacecraft state data
    name: State Vectors
paths:
  /operations/measurements:
    get:
      tags:
        - Measurements
      summary: Query measurements with pagination and filtering
      description: >-
        Retrieves paginated measurements with optional filtering by spacecraft,
        measurement type, date range, and outlier status. Results are sorted by
        epoch descending by default.
      operationId: getMeasurements
      parameters:
        - description: Start of time range (inclusive, ISO-8601)
          example: '2025-01-01T00:00:00Z'
          in: query
          name: startDate
          required: true
          schema:
            type: string
            format: date-time
        - description: End of time range (inclusive, ISO-8601)
          example: '2025-01-02T00:00:00Z'
          in: query
          name: endDate
          required: true
          schema:
            type: string
            format: date-time
        - description: Filter by spacecraft identifiers (ID, name, NORAD, or COSPAR)
          in: query
          name: spacecraftIds
          required: false
          schema:
            type: array
            items:
              type: string
        - description: Filter by measurement types
          in: query
          name: measurementTypes
          required: false
          schema:
            type: array
            items:
              type: string
              enum:
                - RANGE
                - RADEC
                - AZEL
                - DOPPLER
                - PV
        - description: 'Include measurements flagged as outliers (default: false)'
          example: false
          in: query
          name: includeOutliers
          required: false
          schema:
            type: boolean
            default: false
        - in: query
          name: pageable
          required: true
          schema:
            $ref: '#/components/schemas/Pageable'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedResponseUnifiedMeasurementDto'
          description: Successfully retrieved measurements
        '400':
          content:
            application/json:
              example:
                timestamp: '2025-01-15T10:30:00.000Z'
                status: 400
                error: Bad Request
                message: Validation failed
                path: /operations/measurements
                fieldErrors:
                  startDate: must not be null
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Invalid request parameters
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BearerTokenErrorResponse'
          description: Not authenticated — missing or invalid bearer token
        '403':
          content:
            application/json:
              example:
                timestamp: '2025-01-15T10:30:00.000Z'
                status: 403
                error: ACCESS_ERROR
                message: Access denied
                path: /operations/measurements
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Insufficient permissions
        '500':
          content:
            application/json:
              example:
                timestamp: '2025-01-15T10:30:00.000Z'
                status: 500
                error: Internal Server Error
                message: An unexpected error occurred
                path: /operations/measurements
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal server error
components:
  schemas:
    Pageable:
      type: object
      properties:
        page:
          minimum: 0
          type: integer
          format: int32
        size:
          minimum: 1
          type: integer
          format: int32
        sort:
          type: array
          items:
            type: string
    PaginatedResponseUnifiedMeasurementDto:
      type: object
      properties:
        content:
          type: array
          description: List of items in the current page
          items:
            $ref: '#/components/schemas/UnifiedMeasurementDto'
        empty:
          type: boolean
          description: Whether the content list is empty
          example: false
        first:
          type: boolean
          description: Whether this is the first page
          example: true
        hasNext:
          type: boolean
          description: Whether there are more pages after this one
          example: true
        hasPrevious:
          type: boolean
          description: Whether there are pages before this one
          example: false
        last:
          type: boolean
          description: Whether this is the last page
          example: false
        page:
          type: integer
          description: Current page number (0-indexed)
          format: int32
          example: 0
        size:
          type: integer
          description: Number of items per page
          format: int32
          example: 20
        totalElements:
          type: integer
          description: Total number of elements across all pages
          format: int64
          example: 150
        totalPages:
          type: integer
          description: Total number of pages
          format: int32
          example: 8
      description: >-
        Paginated response wrapper containing a page of results with navigation
        metadata
    ErrorResponse:
      type: object
      properties:
        details:
          type: object
          additionalProperties:
            type: object
            description: Structured error details with scenario-specific context fields
            nullable: true
          description: Structured error details with scenario-specific context fields
          nullable: true
        error:
          type: string
          description: HTTP status reason phrase or error category
          example: Bad Request
        fieldErrors:
          type: object
          additionalProperties:
            type: string
            description: >-
              Per-field validation error messages, present only for validation
              errors
            nullable: true
          description: >-
            Per-field validation error messages, present only for validation
            errors
          nullable: true
        message:
          type: string
          description: Detailed error message
          example: Validation failed
        path:
          type: string
          description: The request path where the error occurred
          example: /measurements
        status:
          type: integer
          description: The HTTP status code
          format: int32
          example: 400
        timestamp:
          type: string
          description: The timestamp when the error occurred
          format: date-time
          example: '2025-11-14T10:15:30.123Z'
    BearerTokenErrorResponse:
      type: object
      properties:
        error:
          type: string
          description: OAuth 2.0 error code
          example: invalid_token
        error_description:
          type: string
          description: Human-readable error description
          example: An error occurred while attempting to decode the Jwt
      description: OAuth 2.0 Bearer Token error response (RFC 6750)
    UnifiedMeasurementDto:
      type: object
      properties:
        dopplerMetadata:
          $ref: '#/components/schemas/DopplerMetadataDto'
        downlinkFrequency:
          type: number
          description: Downlink reference frequency in Hz
          format: double
          nullable: true
          example: 2200000000
        epoch:
          type: string
          description: Measurement epoch in ISO-8601 UTC format
          example: '2025-01-15T12:30:45.123Z'
        file:
          type: string
          description: Original file name from which the measurement was uploaded
          example: measurements_2025-01-15.csv
        id:
          type: string
          description: Unique identifier for this measurement (UUID)
          nullable: true
          example: 550e8400-e29b-41d4-a716-446655440000
        measurementType:
          type: string
          description: Measurement type
          example: RADEC
          enum:
            - RADEC
            - AZEL
            - RANGE
            - PV
            - DOPPLER
        outlier:
          type: boolean
          description: Whether this measurement is flagged as an outlier
          example: false
        referenceFrame:
          type: string
          description: Reference frame for the measurement (ICRF, GCRF, etc.)
          nullable: true
          example: ICRF
        sensorId:
          type: string
          description: >-
            Sensor identifier for ground-based measurements, null for
            spacecraft-based (PV)
          nullable: true
          example: SENSOR-123
        sigmas:
          type: array
          description: >-
            Measurement uncertainties (1-sigma) per dimension, same length as
            values
          example:
            - 0.001
            - 0.001
          items:
            type: number
            description: >-
              Measurement uncertainties (1-sigma) per dimension, same length as
              values
            format: double
        spacecraftId:
          type: string
          description: Spacecraft identifier (UUID)
          example: 550e8400-e29b-41d4-a716-446655440000
        values:
          type: array
          description: >-
            Observed values array. Dimensions depend on measurement type:
            RADEC[2]={ra, dec} in radians, AZEL[2]={az, el} in radians,
            RANGE[1]={range} in meters, PV[6]={x, y, z, vx, vy, vz} in meters
            and m/s
          example:
            - 1.5708
            - 0.7854
          items:
            type: number
            description: >-
              Observed values array. Dimensions depend on measurement type:
              RADEC[2]={ra, dec} in radians, AZEL[2]={az, el} in radians,
              RANGE[1]={range} in meters, PV[6]={x, y, z, vx, vy, vz} in meters
              and m/s
            format: double
      description: Unified measurement data with multi-dimensional values
    DopplerMetadataDto:
      type: object
      properties:
        correctionsApplied:
          type: boolean
          description: >-
            Mirror of the TDM CORRECTIONS_APPLIED metadata — true when all link
            corrections have already been applied upstream
          nullable: true
          example: true
        ionoState:
          type: string
          description: Declared ionospheric correction state (DKR-2 §3.3)
          nullable: true
          example: UNCORRECTED
          enum:
            - APPLIED
            - UNCORRECTED
            - ABSENT
            - APPLIED
            - UNCORRECTED
            - ABSENT
        modality:
          type: string
          description: Doppler modality as declared on the originating TDM (DKR-2 §3.2)
          nullable: true
          example: TWO_WAY
          enum:
            - ONE_WAY
            - TWO_WAY
            - ONE_WAY
            - TWO_WAY
        receiveBand:
          type: string
          description: >-
            RF band used for the downlink / receive leg (DKR-2 §3.9). Null when
            the TDM does not declare a receive band.
          nullable: true
          example: X
          enum:
            - S
            - X
            - KA
            - S
            - X
            - KA
        receiveDelay:
          minimum: 0
          type: number
          description: >-
            Receive-leg link delay in seconds (non-negative). Null when the TDM
            does not declare a value.
          format: double
          nullable: true
          example: 0.0027
        sigmaDefaulted:
          type: boolean
          description: >-
            True when the ingestion pipeline synthesised the sigma for the
            parent measurement because the TDM did not declare one
          nullable: true
          example: false
        timetagRef:
          type: string
          description: >-
            Time-tag reference convention (DKR-2 §3.5). Only RECEIVE is
            supported in the initial DOPPLER rollout.
          nullable: true
          example: RECEIVE
          enum:
            - RECEIVE
            - RECEIVE
        transmitBand:
          type: string
          description: >-
            RF band used for the uplink / transmit leg (DKR-2 §3.9). Null when
            the TDM does not declare a transmit band (for example ONE_WAY
            observations).
          nullable: true
          example: S
          enum:
            - S
            - X
            - KA
            - S
            - X
            - KA
        transmitDelay:
          minimum: 0
          type: number
          description: >-
            Transmit-leg link delay in seconds (non-negative). Null when the TDM
            does not declare a value.
          format: double
          nullable: true
          example: 0.0015
        tropoState:
          type: string
          description: Declared tropospheric correction state (DKR-2 §3.3)
          nullable: true
          example: APPLIED
          enum:
            - APPLIED
            - UNCORRECTED
            - ABSENT
            - APPLIED
            - UNCORRECTED
            - ABSENT
        turnaroundD:
          type: integer
          description: >-
            Denominator of the transponder turnaround ratio. Only meaningful for
            TWO_WAY Doppler with a declared transponder; otherwise null.
          format: int32
          nullable: true
          example: 221
        turnaroundN:
          type: integer
          description: >-
            Numerator of the transponder turnaround ratio. Only meaningful for
            TWO_WAY Doppler with a declared transponder; otherwise null.
          format: int32
          nullable: true
          example: 240
      description: Doppler-specific metadata attached to DOPPLER measurements (DKR-2 §2)
      nullable: true
  securitySchemes:
    apiKeyAuth:
      description: 'API Key (format: vsp_sk_...)'
      scheme: bearer
      type: http

````