Arlula Orders API

Manage orders, campaigns, datasets, and resources

OpenAPI Specification

arlula-orders-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Arlula Archive Orders API
  description: 'The Arlula API provides programmatic access to satellite imagery ordering, archive search, tasking, and earth observation data services. The API covers four main areas: Archive (historical imagery search and ordering), Tasking (future satellite capture scheduling), Orders Management (order tracking and resource downloads), and connection testing.'
  version: 2025-10
  contact:
    name: Arlula Support
    url: https://arlula.com/
  x-generated-from: documentation
  x-last-validated: '2026-04-19'
servers:
- url: https://api.arlula.com
  description: Production API
security:
- BasicAuth: []
tags:
- name: Orders
  description: Manage orders, campaigns, datasets, and resources
paths:
  /api/orders:
    get:
      operationId: listOrders
      summary: Arlula List Orders
      description: List all pending and completed orders on the account. Supports pagination via page and size parameters.
      tags:
      - Orders
      parameters:
      - name: page
        in: query
        required: false
        description: Page index (0-indexed) for pagination.
        schema:
          type: integer
        example: 0
      - name: size
        in: query
        required: false
        description: Number of results per page.
        schema:
          type: integer
        example: 25
      responses:
        '200':
          description: Successfully retrieved list of orders.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrdersListResponse'
              examples:
                listOrders200Example:
                  summary: Default listOrders 200 response
                  x-microcks-default: true
                  value:
                    orders:
                    - orderId: order-500123
                      status: completed
                      createdAt: '2026-04-15T09:00:00Z'
        '400':
          description: Malformed request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /api/order/{order}:
    get:
      operationId: getOrder
      summary: Arlula Get Order Details
      description: Retrieve detailed information about a specific order including its campaigns and datasets.
      tags:
      - Orders
      parameters:
      - name: order
        in: path
        required: true
        description: UUID of the order to retrieve.
        schema:
          type: string
          format: uuid
        example: order-a1b2c3d4-e5f6-7890
      responses:
        '200':
          description: Successfully retrieved order details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Order'
              examples:
                getOrder200Example:
                  summary: Default getOrder 200 response
                  x-microcks-default: true
                  value:
                    orderId: order-a1b2c3d4-e5f6-7890
                    status: completed
                    createdAt: '2026-04-15T09:00:00Z'
                    campaigns:
                    - campaignId: campaign-001
                      status: completed
        '400':
          description: Malformed request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /api/campaigns:
    get:
      operationId: listCampaigns
      summary: Arlula List Campaigns
      description: List all pending and completed campaigns across all orders. Supports pagination.
      tags:
      - Orders
      parameters:
      - name: page
        in: query
        required: false
        description: Page index (0-indexed).
        schema:
          type: integer
        example: 0
      - name: size
        in: query
        required: false
        description: Results per page.
        schema:
          type: integer
        example: 25
      responses:
        '200':
          description: Successfully retrieved campaigns.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CampaignsListResponse'
              examples:
                listCampaigns200Example:
                  summary: Default listCampaigns 200 response
                  x-microcks-default: true
                  value:
                    campaigns:
                    - campaignId: campaign-a1b2
                      orderId: order-a1b2c3d4
                      status: completed
        '401':
          description: Unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /api/datasets:
    get:
      operationId: listDatasets
      summary: Arlula List Datasets
      description: List all pending and completed datasets across all orders. Supports pagination.
      tags:
      - Orders
      parameters:
      - name: page
        in: query
        required: false
        description: Page index (0-indexed).
        schema:
          type: integer
        example: 0
      - name: size
        in: query
        required: false
        description: Results per page.
        schema:
          type: integer
        example: 25
      responses:
        '200':
          description: Successfully retrieved datasets.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DatasetsListResponse'
              examples:
                listDatasets200Example:
                  summary: Default listDatasets 200 response
                  x-microcks-default: true
                  value:
                    datasets:
                    - datasetId: dataset-a1b2
                      campaignId: campaign-a1b2
                      status: completed
        '401':
          description: Unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /api/dataset/{dataset}:
    get:
      operationId: getDataset
      summary: Arlula Get Dataset Details
      description: Retrieve a detailed dataset object with its available resources for download.
      tags:
      - Orders
      parameters:
      - name: dataset
        in: path
        required: true
        description: UUID of the dataset to retrieve.
        schema:
          type: string
          format: uuid
        example: dataset-a1b2c3d4
      responses:
        '200':
          description: Successfully retrieved dataset.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Dataset'
              examples:
                getDataset200Example:
                  summary: Default getDataset 200 response
                  x-microcks-default: true
                  value:
                    datasetId: dataset-a1b2c3d4
                    campaignId: campaign-a1b2
                    status: completed
                    resources:
                    - resourceId: resource-001
                      type: GeoTIFF
                      filename: imagery.tif
        '401':
          description: Unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /api/resource/{resource}/data:
    get:
      operationId: downloadResource
      summary: Arlula Download Resource Data
      description: Download the binary content of a specific resource (imagery file, metadata, thumbnail, etc.). Returns the file content as a binary stream.
      tags:
      - Orders
      parameters:
      - name: resource
        in: path
        required: true
        description: UUID of the resource to download.
        schema:
          type: string
          format: uuid
        example: resource-a1b2c3d4
      responses:
        '200':
          description: Resource file content.
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
        '401':
          description: Unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '410':
          description: Resource expired and no longer available.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas:
    Dataset:
      title: Dataset
      description: A dataset produced from a campaign containing downloadable resources.
      type: object
      properties:
        datasetId:
          type: string
          description: Dataset identifier.
          example: dataset-a1b2c3d4
        campaignId:
          type: string
          description: Parent campaign identifier.
          example: campaign-a1b2
        status:
          type: string
          description: Dataset status.
          example: completed
        resources:
          type: array
          description: Downloadable resources in this dataset.
          items:
            $ref: '#/components/schemas/Resource'
    OrderResponse:
      title: OrderResponse
      description: Response after placing an imagery order.
      type: object
      properties:
        orderId:
          type: string
          description: Unique order identifier.
          example: order-500123
        status:
          type: string
          description: Current order status.
          enum:
          - processing
          - pending-approval
          - scheduled
          - completed
          - failed
          example: processing
        createdAt:
          type: string
          format: date-time
          description: Time the order was created.
          example: '2026-04-19T09:00:00Z'
    Resource:
      title: Resource
      description: A downloadable resource within a dataset.
      type: object
      properties:
        resourceId:
          type: string
          description: Resource identifier.
          example: resource-001
        type:
          type: string
          description: Resource type (GeoTIFF, Preview, Metadata, etc.).
          example: GeoTIFF
        filename:
          type: string
          description: Original filename.
          example: imagery.tif
    Order:
      title: Order
      description: A detailed order with campaigns and datasets.
      type: object
      properties:
        orderId:
          type: string
          description: Order identifier.
          example: order-a1b2c3d4
        status:
          type: string
          description: Order status.
          example: completed
        createdAt:
          type: string
          format: date-time
          description: Order creation timestamp.
          example: '2026-04-15T09:00:00Z'
        campaigns:
          type: array
          description: Campaigns within this order.
          items:
            $ref: '#/components/schemas/Campaign'
    OrdersListResponse:
      title: OrdersListResponse
      description: Paginated list of orders.
      type: object
      properties:
        orders:
          type: array
          description: List of orders.
          items:
            $ref: '#/components/schemas/OrderResponse'
    DatasetsListResponse:
      title: DatasetsListResponse
      description: Paginated list of datasets.
      type: object
      properties:
        datasets:
          type: array
          description: List of datasets.
          items:
            $ref: '#/components/schemas/Dataset'
    CampaignsListResponse:
      title: CampaignsListResponse
      description: Paginated list of campaigns.
      type: object
      properties:
        campaigns:
          type: array
          description: List of campaigns.
          items:
            $ref: '#/components/schemas/Campaign'
    ErrorResponse:
      title: ErrorResponse
      description: Error response from the API.
      type: object
      properties:
        code:
          type: integer
          description: HTTP status code.
          example: 400
        message:
          type: string
          description: Error message.
          example: Bad Request - invalid parameters
    Campaign:
      title: Campaign
      description: A capture campaign within an order.
      type: object
      properties:
        campaignId:
          type: string
          description: Campaign identifier.
          example: campaign-001
        orderId:
          type: string
          description: Parent order identifier.
          example: order-a1b2c3d4
        status:
          type: string
          description: Campaign status.
          example: completed
  securitySchemes:
    BasicAuth:
      type: http
      scheme: basic
      description: HTTP Basic Authentication using API Key as username and API Secret as password. Credentials are obtained from the Arlula dashboard at https://dashboard.arlula.com/apis.