Citra Space Tasks API
The tasks API from Citra Space — 3 operation(s) for tasks.
The tasks API from Citra Space — 3 operation(s) for tasks.
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-tasks-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 Tasks API
version: 0.1.0
tags:
- name: Tasks
paths:
/tasks:
post:
operationId: create_task_tasks_post
parameters:
- in: header
name: X-Scenario-Context
required: false
schema:
format: uuid
type:
- string
- 'null'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TaskCreate'
required: true
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/Task'
description: Successful Response
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
description: Validation Error
summary: Create Task
tags:
- Tasks
/tasks/{task_id}:
put:
operationId: update_task_tasks__task_id__put
parameters:
- description: The ID of the task to update
in: path
name: task_id
required: true
schema:
format: uuid
type: string
- in: header
name: X-Scenario-Context
required: false
schema:
format: uuid
type:
- string
- 'null'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TaskInput'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Task'
description: Successful Response
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
description: Validation Error
summary: Update Task
tags:
- Tasks
/tasks/{task_id}/report:
get:
operationId: get_task_report_tasks__task_id__report_get
parameters:
- description: The ID of the task to read the report for
in: path
name: task_id
required: true
schema:
format: uuid
type: string
- in: header
name: X-Scenario-Context
required: false
schema:
format: uuid
type:
- string
- 'null'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/TaskReportRead'
description: Successful Response
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
description: Validation Error
summary: Get Task Report
tags:
- Tasks
post:
description: 'The report body is always stored; a report-carried status follows
first-terminal-wins, so a losing terminal status is dropped rather than
rejecting the report. A token caller''s status for a Pending task, other
than Canceled, is dropped too: the owner has not accepted the task.'
operationId: upsert_task_report_tasks__task_id__report_post
parameters:
- description: The ID of the task to report on
in: path
name: task_id
required: true
schema:
format: uuid
type: string
- in: header
name: X-Scenario-Context
required: false
schema:
format: uuid
type:
- string
- 'null'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TaskReportCreate'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/TaskReportUpsertResponse'
description: Successful Response
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
description: Validation Error
summary: Upsert Task Report
tags:
- Tasks
components:
schemas:
TaskReportCreate:
description: 'A report submitted by either the public HTTP API or an attached device.
Deserialization accepts both the public camelCase keys and the internal
snake_case spellings. Call [`Self::normalize`] after deserialization, then
[`Self::validate_payload`]. A task of any sensor accepts it.'
properties:
adapterName:
maxLength: 128
type:
- string
- 'null'
citrascopeVersion:
maxLength: 64
type:
- string
- 'null'
report:
additionalProperties: {}
propertyNames:
type: string
type: object
reportSchemaVersion:
format: int64
minimum: 1
type: integer
reportType:
maxLength: 64
minLength: 1
type: string
status:
oneOf:
- type: 'null'
- $ref: '#/components/schemas/TaskStatus'
required:
- reportType
- reportSchemaVersion
- report
type: object
CollectionMode:
enum:
- Sample
- Dwell
- TimeSearch
- GridSearch
- Resolve
title: CollectionMode
type: string
TaskReportUpsertResponse:
properties:
adapterName:
type:
- string
- 'null'
citrascopeVersion:
type:
- string
- 'null'
lateTerminalDropped:
default: false
description: 'True when this report carried a status that was not applied: a terminal
status that lost to an already-terminal task (first-terminal-wins), or a
token caller''s status other than Canceled for a Pending task its owner has
not accepted. The report body was still stored; only the status was
discarded.'
type: boolean
receivedAt:
format: date-time
type: string
reportSchemaVersion:
format: int32
type: integer
reportType:
type: string
taskId:
format: uuid
type: string
updatedAt:
format: date-time
type: string
required:
- taskId
- reportType
- reportSchemaVersion
- receivedAt
- updatedAt
type: object
TaskStatus:
enum:
- Pending
- Canceled
- Scheduled
- Succeeded
- Failed
title: TaskStatus
type: string
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
TaskReportRead:
properties:
adapterName:
type:
- string
- 'null'
citrascopeVersion:
type:
- string
- 'null'
receivedAt:
format: date-time
type: string
report:
additionalProperties: {}
propertyNames:
type: string
type: object
reportSchemaVersion:
format: int32
type: integer
reportType:
type: string
taskId:
format: uuid
type: string
updatedAt:
format: date-time
type: string
required:
- taskId
- reportType
- reportSchemaVersion
- receivedAt
- updatedAt
- report
type: object
TaskCreate:
description: Task schema for creation.
properties:
antennaId:
description: Antenna this task is associated with.
format: uuid
type:
- string
- 'null'
satelliteId:
description: Satellite this task is associated with.
format: uuid
type: string
taskStart:
description: Time the task can start to be collected.
format: date-time
type: string
taskStop:
description: Time the task should stop being collected.
format: date-time
type: string
telescopeId:
description: Telescope this task is associated with.
format: uuid
type:
- string
- 'null'
required:
- taskStart
- taskStop
- satelliteId
type: object
MissionEffect:
enum:
- Identification
- Custody
- Characterization
- ThreatAssessment
- OutcomeAssessment
- Discrimination
- ChangeDetection
title: MissionEffect
type: string
TaskInput:
description: Task schema for updates.
properties:
status:
$ref: '#/components/schemas/TaskStatus'
description: Status of the task.
required:
- status
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