Citra Space Od Audit API

The od-audit API from Citra Space — 4 operation(s) for od-audit.

Operations 4

GET /od-audit/health Get Od Health #
GET /od-audit/runs/{od_id} Get Od Run #
GET /od-audit/runs/{od_id}/residuals Get Od Run Residuals #
GET /od-audit/satellites/{satellite_id}/runs List Satellite Runs #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/citra-space:citra-space-od-audit-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

citra-space-od-audit-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: SOICAT Od Audit API
  version: 0.1.0
tags:
- name: od-audit
paths:
  /od-audit/health:
    get:
      description: Return fleet OD signals; quarantines cover rejected OD-produced elsets only.
      operationId: get_od_health_od_audit_health_get
      parameters:
      - in: query
        name: window_days
        required: false
        schema:
          default: 7
          title: Window Days
          type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OdHealthResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Get Od Health
      tags:
      - od-audit
  /od-audit/runs/{od_id}:
    get:
      operationId: get_od_run_od_audit_runs__od_id__get
      parameters:
      - in: path
        name: od_id
        required: true
        schema:
          format: uuid
          title: Od Id
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OdRunDetail'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Get Od Run
      tags:
      - od-audit
  /od-audit/runs/{od_id}/residuals:
    get:
      description: Recompute residuals from this run's exact accepted and rejected observation set.
      operationId: get_od_run_residuals_od_audit_runs__od_id__residuals_get
      parameters:
      - in: path
        name: od_id
        required: true
        schema:
          format: uuid
          title: Od Id
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OdRunResiduals'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Get Od Run Residuals
      tags:
      - od-audit
  /od-audit/satellites/{satellite_id}/runs:
    get:
      operationId: list_satellite_runs_od_audit_satellites__satellite_id__runs_get
      parameters:
      - in: path
        name: satellite_id
        required: true
        schema:
          format: uuid
          title: Satellite Id
          type: string
      - in: query
        name: start
        required: true
        schema:
          format: date-time
          title: Start
          type: string
      - in: query
        name: end
        required: true
        schema:
          format: date-time
          title: End
          type: string
      - in: query
        name: limit
        required: false
        schema:
          default: 200
          maximum: 1000
          minimum: 1
          title: Limit
          type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OdRunList'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: List Satellite Runs
      tags:
      - od-audit
components:
  schemas:
    SeedStateReason:
      description: 'Why the od-filter is requesting a batch-OD solve for a satellite.


        The reason scopes both the request dedup key (seed-state:{sat}:{reason}) and the

        seed-state''s fitting strategy — the SeedStateRequest schema documents the consumer

        contract.'
      enum:
      - no_state
      - invalid_state
      - stale_state
      - rejection_circuit_breaker
      - post_maneuver
      title: SeedStateReason
      type: string
    OdRunSummary:
      properties:
        acceptedCount:
          default: 0
          title: Acceptedcount
          type: integer
        aprioriElsetId:
          anyOf:
          - format: uuid
            type: string
          - type: 'null'
        creationEpoch:
          title: Creationepoch
          type: string
        endEpoch:
          title: Endepoch
          type: string
        estimatedDrag:
          title: Estimateddrag
          type: boolean
        estimatedSrp:
          title: Estimatedsrp
          type: boolean
        id:
          format: uuid
          title: Id
          type: string
        initialOd:
          title: Initialod
          type: boolean
        method:
          $ref: '#/components/schemas/OrbitDeterminationMethod'
        quarantineEpoch:
          anyOf:
          - type: string
          - type: 'null'
        rejectedCount:
          default: 0
          title: Rejectedcount
          type: integer
        rms:
          anyOf:
          - type: number
          - type: 'null'
        satelliteId:
          format: uuid
          title: Satelliteid
          type: string
        seedReason:
          anyOf:
          - $ref: '#/components/schemas/SeedStateReason'
          - type: 'null'
        solvedElsetEpoch:
          title: Solvedelsetepoch
          type: string
        solvedElsetId:
          format: uuid
          title: Solvedelsetid
          type: string
        solvedElsetReviewStatus:
          $ref: '#/components/schemas/ReviewStatus'
        startEpoch:
          title: Startepoch
          type: string
        weightedRms:
          anyOf:
          - type: number
          - type: 'null'
      required:
      - id
      - satelliteId
      - method
      - initialOd
      - creationEpoch
      - startEpoch
      - endEpoch
      - estimatedDrag
      - estimatedSrp
      - solvedElsetId
      - solvedElsetEpoch
      - solvedElsetReviewStatus
      title: OdRunSummary
      type: object
    OdRunObservation:
      properties:
        accepted:
          title: Accepted
          type: boolean
        id:
          format: uuid
          title: Id
          type: string
        type:
          $ref: '#/components/schemas/CitraObservationType'
      required:
      - type
      - id
      - accepted
      title: OdRunObservation
      type: object
    OdRunResiduals:
      properties:
        acceptedObservationIds:
          items:
            format: uuid
            type: string
          title: Acceptedobservationids
          type: array
        apriori:
          anyOf:
          - $ref: '#/components/schemas/ObservationResidualList'
          - type: 'null'
        orbitDeterminationId:
          format: uuid
          title: Orbitdeterminationid
          type: string
        solved:
          $ref: '#/components/schemas/ObservationResidualList'
      required:
      - orbitDeterminationId
      - solved
      - acceptedObservationIds
      title: OdRunResiduals
      type: object
    ObservationResidual:
      properties:
        declination:
          anyOf:
          - type: number
          - type: 'null'
        declinationRate:
          anyOf:
          - type: number
          - type: 'null'
        elsetId:
          format: uuid
          title: Elsetid
          type: string
        elsetUserGroupName:
          anyOf:
          - type: string
          - type: 'null'
        elsetUsername:
          anyOf:
          - type: string
          - type: 'null'
        epoch:
          title: Epoch
          type: string
        fdoa:
          anyOf:
          - type: number
          - type: 'null'
        observationId:
          format: uuid
          title: Observationid
          type: string
        range:
          anyOf:
          - type: number
          - type: 'null'
        rangeRate:
          anyOf:
          - type: number
          - type: 'null'
        reviewStatus:
          default: approved
          oneOf:
          - $ref: '#/components/schemas/ReviewStatus'
        rightAscension:
          anyOf:
          - type: number
          - type: 'null'
        rightAscensionRate:
          anyOf:
          - type: number
          - type: 'null'
        satelliteId:
          format: uuid
          title: Satelliteid
          type: string
        sensorIds:
          items:
            format: uuid
            type: string
          title: Sensorids
          type: array
        sensorName:
          anyOf:
          - type: string
          - type: 'null'
        sensorOwnerName:
          anyOf:
          - type: string
          - type: 'null'
        tdoa:
          anyOf:
          - type: number
          - type: 'null'
        totalError:
          anyOf:
          - type: number
          - type: 'null'
        type:
          $ref: '#/components/schemas/CitraObservationType'
        visualMagnitude:
          anyOf:
          - type: number
          - type: 'null'
      required:
      - satelliteId
      - elsetId
      - observationId
      - epoch
      - range
      - rangeRate
      - rightAscension
      - declination
      - rightAscensionRate
      - declinationRate
      - tdoa
      - fdoa
      - visualMagnitude
      - type
      title: ObservationResidual
      type: object
    CitraObservationType:
      enum:
      - optical
      - radar
      - doa
      - rf
      title: CitraObservationType
      type: string
    OdRunDetail:
      properties:
        acceptedCount:
          default: 0
          title: Acceptedcount
          type: integer
        aprioriElsetEpoch:
          anyOf:
          - type: string
          - type: 'null'
        aprioriElsetId:
          anyOf:
          - format: uuid
            type: string
          - type: 'null'
        aprioriElsetReviewStatus:
          anyOf:
          - $ref: '#/components/schemas/ReviewStatus'
          - type: 'null'
        covariance:
          additionalProperties: true
          title: Covariance
          type: object
        covarianceFrame:
          title: Covarianceframe
          type: string
        covarianceType:
          title: Covariancetype
          type: string
        creationEpoch:
          title: Creationepoch
          type: string
        endEpoch:
          title: Endepoch
          type: string
        estimatedDrag:
          title: Estimateddrag
          type: boolean
        estimatedSrp:
          title: Estimatedsrp
          type: boolean
        id:
          format: uuid
          title: Id
          type: string
        initialOd:
          title: Initialod
          type: boolean
        method:
          $ref: '#/components/schemas/OrbitDeterminationMethod'
        observations:
          items:
            $ref: '#/components/schemas/OdRunObservation'
          title: Observations
          type: array
        quarantineEpoch:
          anyOf:
          - type: string
          - type: 'null'
        rejectedCount:
          default: 0
          title: Rejectedcount
          type: integer
        rms:
          anyOf:
          - type: number
          - type: 'null'
        satelliteId:
          format: uuid
          title: Satelliteid
          type: string
        seedReason:
          anyOf:
          - $ref: '#/components/schemas/SeedStateReason'
          - type: 'null'
        solvedElsetEpoch:
          title: Solvedelsetepoch
          type: string
        solvedElsetId:
          format: uuid
          title: Solvedelsetid
          type: string
        solvedElsetReviewStatus:
          $ref: '#/components/schemas/ReviewStatus'
        startEpoch:
          title: Startepoch
          type: string
        weightedRms:
          anyOf:
          - type: number
          - type: 'null'
      required:
      - id
      - satelliteId
      - method
      - initialOd
      - creationEpoch
      - startEpoch
      - endEpoch
      - estimatedDrag
      - estimatedSrp
      - solvedElsetId
      - solvedElsetEpoch
      - solvedElsetReviewStatus
      - covarianceType
      - covarianceFrame
      - covariance
      - observations
      title: OdRunDetail
      type: object
    OdHealthResponse:
      properties:
        generatedAt:
          title: Generatedat
          type: string
        rows:
          items:
            $ref: '#/components/schemas/OdHealthRow'
          title: Rows
          type: array
        windowDays:
          title: Windowdays
          type: integer
      required:
      - windowDays
      - generatedAt
      - rows
      title: OdHealthResponse
      type: object
    OdHealthRow:
      properties:
        acceptedObservationCount:
          title: Acceptedobservationcount
          type: integer
        latestInitialOd:
          title: Latestinitialod
          type: boolean
        latestMethod:
          $ref: '#/components/schemas/OrbitDeterminationMethod'
        latestRms:
          anyOf:
          - type: number
          - type: 'null'
        latestRunEpoch:
          title: Latestrunepoch
          type: string
        latestSeedReason:
          anyOf:
          - $ref: '#/components/schemas/SeedStateReason'
          - type: 'null'
        latestWeightedRms:
          anyOf:
          - type: number
          - type: 'null'
        noradCatId:
          anyOf:
          - type: integer
          - type: 'null'
        quarantineCount:
          title: Quarantinecount
          type: integer
        rejectedObservationCount:
          title: Rejectedobservationcount
          type: integer
        rejectionRatio:
          title: Rejectionratio
          type: number
        runCount:
          title: Runcount
          type: integer
        satelliteId:
          format: uuid
          title: Satelliteid
          type: string
        satelliteName:
          anyOf:
          - type: string
          - type: 'null'
        seedRestartCount:
          title: Seedrestartcount
          type: integer
      required:
      - satelliteId
      - runCount
      - seedRestartCount
      - quarantineCount
      - acceptedObservationCount
      - rejectedObservationCount
      - rejectionRatio
      - latestRunEpoch
      - latestMethod
      - latestInitialOd
      title: OdHealthRow
      type: object
    OdRunList:
      items:
        $ref: '#/components/schemas/OdRunSummary'
      title: OdRunList
      type: array
    OrbitDeterminationMethod:
      enum:
      - BLS
      - UKF
      - EKF
      - Gauss
      - Lambert
      - HerrickGibbs
      - Laplace
      - DoubleR
      - Gooding
      - MultiRevGauss
      - KarimiMortari
      - SegmentRTS
      - SegmentBLS
      title: OrbitDeterminationMethod
      type: string
    ReviewStatus:
      enum:
      - needs_review
      - in_review
      - approved
      - rejected
      - migrated
      - blocked
      title: ReviewStatus
      type: string
    ValidationError:
      properties:
        ctx:
          type: object
        input: {}
        loc:
          items:
            oneOf:
            - type: string
            - format: int64
              type: integer
          type: array
        msg:
          type: string
        type:
          type: string
      required:
      - loc
      - msg
      - type
      type: object
    ObservationResidualList:
      items:
        $ref: '#/components/schemas/ObservationResidual'
      title: ObservationResidualList
      type: array
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
      type: object
  securitySchemes:
    HTTPBearer:
      scheme: bearer
      type: http