Citra Space Collection Requests API
The collection-requests API from Citra Space — 3 operation(s) for collection-requests.
The collection-requests API from Citra Space — 3 operation(s) for collection-requests.
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-collection-requests-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 Collection Requests API
version: 0.1.0
tags:
- name: collection-requests
paths:
/collection-requests:
post:
description: 'Create a new collection request.
A collection request represents a user''s request to collect observations
of a satellite during a specified time window. The system will generate
visibility windows and schedule tasks based on available ground stations.'
operationId: create_collection_request_collection_requests_post
parameters:
- in: header
name: X-Scenario-Context
required: false
schema:
anyOf:
- format: uuid
type: string
- type: 'null'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CollectionRequestCreate'
required: true
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/CollectionRequest'
description: Successful Response
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
description: Validation Error
summary: Create Collection Request
tags:
- collection-requests
/collection-requests/batch:
post:
description: 'Create collection requests in batch for multiple satellites.
Satellites come from satellite_ids or are resolved from satellite_group_ids.
Each satellite a selected sensor sees in the window, within that sensor''s limits, gets one
request from its first pass to its last, widened by the look''s own length either side; the
scheduler places the look there. Satellites no selected sensor sees are skipped and listed in
skippedSatelliteIds; when none is seen the batch is refused with 422. A Sample or Dwell with
revisitIntervalSeconds repeats at that interval over its window.'
operationId: create_batch_collection_requests_collection_requests_batch_post
parameters:
- in: header
name: X-Scenario-Context
required: false
schema:
anyOf:
- format: uuid
type: string
- type: 'null'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/BatchCollectionRequestCreate'
required: true
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/BatchCollectionRequestResponse'
description: Successful Response
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
description: Validation Error
summary: Create Batch Collection Requests
tags:
- collection-requests
/collection-requests/{id}/cancel:
post:
operationId: cancel_collection_request
parameters:
- in: path
name: id
required: true
schema:
format: uuid
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/CollectionRequest'
description: ''
'404':
description: ''
summary: 'Stops a Pending or Scheduled request the caller made: the scheduler cancels its…'
tags:
- collection-requests
components:
schemas:
CollectionMode:
enum:
- Sample
- Dwell
- TimeSearch
- GridSearch
- Resolve
title: CollectionMode
type: string
CollectionRequestCreate:
description: CollectionRequest schema for creation
properties:
dwellSeconds:
anyOf:
- exclusiveMinimum: 0
type: number
- type: 'null'
description: 'A Dwell request''s time on target in seconds: required for a Dwell, absent for any other type'
minimumSeparationKm:
anyOf:
- exclusiveMinimum: 0
type: number
- type: 'null'
description: 'A Resolve request''s separation from the neighbor to resolve, in km: required for a Resolve, absent for any other type'
missionId:
anyOf:
- format: uuid
type: string
- type: 'null'
description: Mission this request is scoped to. Required for auto-scheduling; optional for one-off manual tasks.
params:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
description: 'Where and on what the request may run: ground_station_ids, sensor_selections (station to sensor), min_elevation, use_exact_window; for a single look sensor_kind telescope; for TDOA num_sensors and its band (min_frequency_hz, max_frequency_hz)'
priority:
default: 5
description: Scheduling priority from 1, the most important, to 10 (ADR 0026)
maximum: 10
minimum: 1
title: Priority
type: integer
revisitIntervalSeconds:
anyOf:
- exclusiveMinimum: 0
type: number
- type: 'null'
description: How often to repeat a Sample or Dwell over the window, in seconds; absent for one look
satelliteId:
description: Target satellite
format: uuid
title: Satelliteid
type: string
searchWindowSeconds:
anyOf:
- exclusiveMinimum: 0
type: number
- type: 'null'
description: 'A TimeSearch request''s half-window along track either side of the predicted pass, in seconds: required for a TimeSearch, absent for any other type'
type:
description: The look the request asks for (Sample or Dwell), or a Characterization or TDOA collection
oneOf:
- $ref: '#/components/schemas/CollectionRequestType'
windowStart:
description: Start of the collection window
format: date-time
title: Windowstart
type: string
windowStop:
description: End of the collection window
format: date-time
title: Windowstop
type: string
required:
- type
- windowStart
- windowStop
- satelliteId
title: CollectionRequestCreate
type: object
BatchCollectionRequestCreate:
additionalProperties: false
description: 'Schema for batch creation of collection requests across multiple satellites: one request per satellite a selected sensor sees, over the span it sees it, placed by the scheduler.'
properties:
dwellSeconds:
anyOf:
- exclusiveMinimum: 0
type: number
- type: 'null'
description: 'A Dwell request''s time on target in seconds: required for a Dwell, absent for any other type'
minimumSeparationKm:
anyOf:
- exclusiveMinimum: 0
type: number
- type: 'null'
description: 'A Resolve request''s separation from the neighbor to resolve, in km: required for a Resolve, absent for any other type'
params:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
description: 'Where and on what the request may run: ground_station_ids, sensor_selections (station to sensor), min_elevation, use_exact_window; for a single look sensor_kind telescope; for TDOA num_sensors and its band (min_frequency_hz, max_frequency_hz)'
priority:
default: 5
description: Scheduling priority from 1, the most important, to 10 (ADR 0026)
maximum: 10
minimum: 1
title: Priority
type: integer
revisitIntervalSeconds:
anyOf:
- exclusiveMinimum: 0
type: number
- type: 'null'
description: How often to repeat a Sample or Dwell over the window, in seconds; absent for one look
satelliteGroupIds:
anyOf:
- items:
format: uuid
type: string
type: array
- type: 'null'
description: Satellite group IDs to resolve satellites from
satelliteIds:
anyOf:
- items:
format: uuid
type: string
type: array
- type: 'null'
description: Direct list of satellite IDs to task
searchWindowSeconds:
anyOf:
- exclusiveMinimum: 0
type: number
- type: 'null'
description: 'A TimeSearch request''s half-window along track either side of the predicted pass, in seconds: required for a TimeSearch, absent for any other type'
type:
description: The look the request asks for (Sample or Dwell), or a Characterization or TDOA collection
oneOf:
- $ref: '#/components/schemas/CollectionRequestType'
windowStart:
description: Start of the collection window
format: date-time
title: Windowstart
type: string
windowStop:
description: End of the collection window
format: date-time
title: Windowstop
type: string
required:
- type
- windowStart
- windowStop
title: BatchCollectionRequestCreate
type: object
TaskStatus:
enum:
- Pending
- Canceled
- Scheduled
- Succeeded
- Failed
title: TaskStatus
type: string
CollectionRequestStatus:
description: 'Status of a collection request.
A collection request goes through these states:
- PENDING: Initial state, waiting for window generation
- SCHEDULED: Tasks have been created and are being scheduled/executed
- READY_TO_PROCESS: All tasks succeeded, awaiting post-task processing
- COMPLETED: All tasks and any post-task processing have completed successfully
- FAILED: All tasks failed or window generation failed
- CANCELED: User canceled the request
- EXPIRED: Time window passed without execution'
enum:
- Pending
- Scheduled
- Ready to Process
- Completed
- Failed
- Canceled
- Expired
title: CollectionRequestStatus
type: string
CollectionRequest:
description: CollectionRequest schema for reading
properties:
antennaIds:
anyOf:
- items:
format: uuid
type: string
type: array
- type: 'null'
description: Target antenna IDs
creationEpoch:
format: date-time
title: Creationepoch
type: string
dwellSeconds:
anyOf:
- exclusiveMinimum: 0
type: number
- type: 'null'
description: 'A Dwell request''s time on target in seconds: required for a Dwell, absent for any other type'
groundStationIds:
anyOf:
- items:
format: uuid
type: string
type: array
- type: 'null'
description: Target ground station IDs
id:
format: uuid
title: Id
type: string
minimumSeparationKm:
anyOf:
- exclusiveMinimum: 0
type: number
- type: 'null'
description: 'A Resolve request''s separation from the neighbor to resolve, in km: required for a Resolve, absent for any other type'
missionId:
anyOf:
- format: uuid
type: string
- type: 'null'
description: Mission this request is scoped to (required for auto-scheduling)
params:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
description: 'Where and on what the request may run: ground_station_ids, sensor_selections (station to sensor), min_elevation, use_exact_window; for a single look sensor_kind telescope; for TDOA num_sensors and its band (min_frequency_hz, max_frequency_hz)'
priority:
default: 5
description: Scheduling priority from 1, the most important, to 10 (ADR 0026)
title: Priority
type: integer
revisitIntervalSeconds:
anyOf:
- exclusiveMinimum: 0
type: number
- type: 'null'
description: How often to repeat a Sample or Dwell over the window, in seconds; absent for one look
satelliteId:
description: Target satellite
format: uuid
title: Satelliteid
type: string
satelliteName:
anyOf:
- type: string
- type: 'null'
description: Name of the target satellite
searchWindowSeconds:
anyOf:
- exclusiveMinimum: 0
type: number
- type: 'null'
description: 'A TimeSearch request''s half-window along track either side of the predicted pass, in seconds: required for a TimeSearch, absent for any other type'
status:
$ref: '#/components/schemas/CollectionRequestStatus'
tasks:
anyOf:
- items:
$ref: '#/components/schemas/Task'
type: array
- type: 'null'
description: Tasks spawned from this request
telescopeIds:
anyOf:
- items:
format: uuid
type: string
type: array
- type: 'null'
description: Target telescope IDs
type:
$ref: '#/components/schemas/CollectionRequestType'
updateEpoch:
format: date-time
title: Updateepoch
type: string
userId:
description: User who created this request
format: uuid
title: Userid
type: string
username:
anyOf:
- type: string
- type: 'null'
description: Username of the requester
windowStart:
format: date-time
title: Windowstart
type: string
windowStop:
format: date-time
title: Windowstop
type: string
required:
- id
- type
- status
- creationEpoch
- updateEpoch
- windowStart
- windowStop
- userId
- satelliteId
title: CollectionRequest
type: object
Task:
description: Task schema for reading
properties:
antennaId:
anyOf:
- format: uuid
type: string
- type: 'null'
description: Antenna this task is associated with
antennaName:
anyOf:
- type: string
- type: 'null'
description: Name of the antenna
antennaUserId:
anyOf:
- format: uuid
type: string
- type: 'null'
description: User ID of the antenna owner
assignedFilterName:
anyOf:
- type: string
- type: 'null'
description: Filter name for Characterization tasks
collectionMode:
anyOf:
- $ref: '#/components/schemas/CollectionMode'
- type: 'null'
description: How the task collects
collectionRequestId:
anyOf:
- format: uuid
type: string
- type: 'null'
description: Collection request this task is associated with
creationEpoch:
format: date-time
title: Creationepoch
type: string
effect:
anyOf:
- $ref: '#/components/schemas/MissionEffect'
- type: 'null'
description: That effect, where the caller can see it
frequencyMax:
anyOf:
- type: number
- type: 'null'
description: Maximum frequency in Hz
frequencyMin:
anyOf:
- type: number
- type: 'null'
description: Minimum frequency in Hz
groundStationId:
anyOf:
- format: uuid
type: string
- type: 'null'
description: Ground station ID of the telescope or antenna
groundStationName:
anyOf:
- type: string
- type: 'null'
description: Name of the ground station
id:
format: uuid
title: Id
type: string
missionEffectId:
anyOf:
- format: uuid
type: string
- type: 'null'
description: The mission effect this task serves (ADR 0025)
missionId:
anyOf:
- format: uuid
type: string
- type: 'null'
description: Mission this task is scoped to
priority:
default: 5
description: Scheduling priority from 1, the most important, to 10 (ADR 0026)
title: Priority
type: integer
satelliteId:
description: Satellite this task is associated with
format: uuid
title: Satelliteid
type: string
satelliteName:
anyOf:
- type: string
- type: 'null'
description: Name of the satellite
scenarioId:
anyOf:
- format: uuid
type: string
- type: 'null'
status:
$ref: '#/components/schemas/TaskStatus'
taskStart:
format: date-time
title: Taskstart
type: string
taskStop:
format: date-time
title: Taskstop
type: string
telescopeId:
anyOf:
- format: uuid
type: string
- type: 'null'
description: Telescope this task is associated with
telescopeName:
anyOf:
- type: string
- type: 'null'
description: Name of the telescope
updateEpoch:
format: date-time
title: Updateepoch
type: string
userId:
description: User who requested this task
format: uuid
title: Userid
type: string
username:
anyOf:
- type: string
- type: 'null'
description: Username of the user who requested this task
required:
- id
- status
- creationEpoch
- updateEpoch
- taskStart
- taskStop
- userId
- satelliteId
title: Task
type: object
CollectionRequestType:
description: 'What a collection request asks for: one look (Sample, Dwell, TimeSearch, GridSearch or Resolve), or a Characterization or TDOA collection.'
enum:
- Sample
- Dwell
- TimeSearch
- GridSearch
- Resolve
- TDOA
- Characterization
title: CollectionRequestType
type: string
MissionEffect:
enum:
- Identification
- Custody
- Characterization
- ThreatAssessment
- OutcomeAssessment
- Discrimination
- ChangeDetection
title: MissionEffect
type: string
BatchCollectionRequestResponse:
description: Response schema for batch collection request creation.
properties:
collectionRequestIds:
description: IDs of created collection requests
items:
format: uuid
type: string
title: Collectionrequestids
type: array
createdCount:
description: Total number of collection requests created
title: Createdcount
type: integer
satelliteCount:
description: Number of unique satellites tasked
title: Satellitecount
type: integer
skippedCount:
description: Number of selected satellites no selected sensor sees in the window, which got no request
title: Skippedcount
type: integer
skippedSatelliteIds:
description: IDs of the selected satellites no selected sensor sees in the window
items:
format: uuid
type: string
title: Skippedsatelliteids
type: array
required:
- createdCount
- collectionRequestIds
- satelliteCount
- skippedCount
- skippedSatelliteIds
title: BatchCollectionRequestResponse
type: object
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
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
type: object
securitySchemes:
HTTPBearer:
scheme: bearer
type: http