Maxar Geospatial Platform Monitoring API

Monitoring API for standing watches over user-defined areas of interest — receive notifications when new imagery is collected, when collection windows close, and when analytic detections fire. Exposed via the MGP_SDK Interface.monitoring surface.

Maxar Geospatial Platform Monitoring API is one of 11 APIs that Maxar Technologies publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

Tagged areas include Monitoring, Notifications, AOI, and Webhooks. The published artifact set on APIs.io includes API documentation, SDKs, and an OpenAPI specification.

OpenAPI Specification

monitoring-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Maxar Geospatial Platform Monitoring API
  description: >-
    Monitoring API for standing watches over user-defined areas of interest —
    receive notifications when new imagery is collected, when collection
    windows close and when analytic detections fire. Profile derived from
    MGP_SDK `Interface.monitoring` surface; field shapes follow common Maxar
    monitoring conventions.
  version: '1.0.0'
servers:
  - url: https://api.maxar.com/monitoring/v1
security:
  - bearerAuth: []
tags:
  - name: Monitors
  - name: Events
  - name: Subscriptions
paths:
  /monitors:
    get:
      tags: [Monitors]
      summary: List Monitors
      operationId: listMonitors
      responses:
        '200':
          description: Monitors
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Monitor'
    post:
      tags: [Monitors]
      summary: Create Monitor
      operationId: createMonitor
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MonitorRequest'
      responses:
        '201':
          description: Monitor created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Monitor'
  /monitors/{monitorId}:
    get:
      tags: [Monitors]
      summary: Get Monitor
      operationId: getMonitor
      parameters:
        - { name: monitorId, in: path, required: true, schema: { type: string } }
      responses:
        '200':
          description: Monitor
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Monitor'
    delete:
      tags: [Monitors]
      summary: Delete Monitor
      operationId: deleteMonitor
      parameters:
        - { name: monitorId, in: path, required: true, schema: { type: string } }
      responses:
        '204':
          description: Deleted
  /monitors/{monitorId}/events:
    get:
      tags: [Events]
      summary: List Events For Monitor
      operationId: listEvents
      parameters:
        - { name: monitorId, in: path, required: true, schema: { type: string } }
        - { name: since,     in: query, schema: { type: string, format: date-time } }
        - { name: limit,     in: query, schema: { type: integer, default: 25 } }
      responses:
        '200':
          description: Events
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Event'
  /subscriptions:
    get:
      tags: [Subscriptions]
      summary: List Webhook Subscriptions
      operationId: listSubscriptions
      responses:
        '200':
          description: Subscriptions
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Subscription'
    post:
      tags: [Subscriptions]
      summary: Create Webhook Subscription
      operationId: createSubscription
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required: [monitor_id, target_url, event_types]
              properties:
                monitor_id: { type: string }
                target_url: { type: string, format: uri }
                event_types:
                  type: array
                  items:
                    type: string
                    enum: [new_image, window_closed, detection]
                secret: { type: string }
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Subscription'
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
  schemas:
    MonitorRequest:
      type: object
      required: [name, aoi]
      properties:
        name: { type: string }
        aoi:  { type: object }
        cadence:
          type: string
          enum: [daily, weekly, on_new_image]
        filters:
          type: object
          properties:
            max_cloud_cover: { type: number }
            platforms:
              type: array
              items: { type: string }
    Monitor:
      type: object
      properties:
        id: { type: string }
        name: { type: string }
        status: { type: string, enum: [active, paused] }
        created_at: { type: string, format: date-time }
        cadence: { type: string }
    Event:
      type: object
      properties:
        id: { type: string }
        monitor_id: { type: string }
        type: { type: string, enum: [new_image, window_closed, detection] }
        occurred_at: { type: string, format: date-time }
        payload: { type: object }
    Subscription:
      type: object
      properties:
        id: { type: string }
        monitor_id: { type: string }
        target_url: { type: string, format: uri }
        event_types:
          type: array
          items: { type: string }
        created_at: { type: string, format: date-time }