Citra Space Od Audit API
The od-audit API from Citra Space — 4 operation(s) for od-audit.
The od-audit API from Citra Space — 4 operation(s) for od-audit.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/citra-space:citra-space-od-audit-api"
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.
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: 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