openapi: 3.1.0 info: title: Capella Space Collects RepeatRequests API description: 'Capella Space provides on-demand synthetic aperture radar (SAR) imagery through a self-service Console and public API. This specification consolidates publicly documented endpoints from the Capella Space documentation (https://docs.capellaspace.com/) for tasking, repeat tasking, orders, downloads, and API keys. All requests authenticate with a bearer token obtained from the Capella Console; long-lived API keys are managed via the /keys endpoint. Best-effort hand-authored spec. Request and response payloads use permissive schemas where the public docs do not enumerate the full property set; consult the Capella documentation for production integrations. ' version: 1.0.0 contact: name: Capella Space Support url: https://support.capellaspace.com/ servers: - url: https://api.capellaspace.com security: - bearerAuth: [] tags: - name: RepeatRequests paths: /repeat-requests: post: tags: - RepeatRequests summary: Submit a repeat tasking request requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/RepeatRequest' responses: '201': description: Repeat request accepted. content: application/json: schema: $ref: '#/components/schemas/RepeatRequest' /repeat-requests/{repeatrequestId}: parameters: - $ref: '#/components/parameters/RepeatRequestId' get: tags: - RepeatRequests summary: Get a repeat tasking request responses: '200': description: Repeat request details. content: application/json: schema: $ref: '#/components/schemas/RepeatRequest' /repeat-requests/{repeatrequestId}/status: parameters: - $ref: '#/components/parameters/RepeatRequestId' get: tags: - RepeatRequests summary: Get repeat request status responses: '200': description: Status object. content: application/json: schema: $ref: '#/components/schemas/StatusObject' post: tags: - RepeatRequests summary: Update repeat request status (review/approve/cancel) requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/StatusUpdate' responses: '200': description: Updated status. content: application/json: schema: $ref: '#/components/schemas/StatusObject' /repeat-requests/search: post: tags: - RepeatRequests summary: Search repeat tasking requests requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SearchQuery' responses: '200': description: Search results. content: application/json: schema: type: object properties: results: type: array items: $ref: '#/components/schemas/RepeatRequest' components: schemas: RepeatRequest: type: object properties: repeatrequestId: type: string type: type: string default: Feature geometry: $ref: '#/components/schemas/GeoJSON' properties: allOf: - $ref: '#/components/schemas/CollectionProperties' - type: object properties: repetitionProperties: type: object properties: repeatStart: type: string format: date-time repeatEnd: type: string format: date-time repetitionInterval: type: integer repetitionCount: type: integer additionalProperties: true StatusObject: type: object properties: status: type: string statusHistory: type: array items: type: object additionalProperties: true additionalProperties: true SearchQuery: type: object properties: bbox: type: array items: type: number datetime: type: string limit: type: integer sortby: type: string additionalProperties: true GeoJSON: type: object description: GeoJSON Geometry object. additionalProperties: true StatusUpdate: type: object properties: status: type: string enum: - review - accepted - rejected - cancelled - completed comments: type: string additionalProperties: true CollectionProperties: type: object properties: collectionTier: type: string enum: - urgent - priority - standard - flexible productCategory: type: string windowOpen: type: string format: date-time windowClose: type: string format: date-time offNadirMin: type: number offNadirMax: type: number lookDirection: type: string enum: - left - right - either polarization: type: string enum: - HH - VV - HV - VH additionalProperties: true parameters: RepeatRequestId: in: path name: repeatrequestId required: true schema: type: string securitySchemes: bearerAuth: type: http scheme: bearer description: 'Bearer token issued via the Capella Console. API keys can be requested at POST /keys and exchanged for bearer tokens per the documented authentication flow. '