openapi: 3.0.3
info:
title: UP42 API
description: >-
The UP42 API is the programmatic surface of the UP42 geospatial marketplace
and developer platform, operated by Airbus Defence and Space. It covers the
full Earth observation workflow: searching the archive (Catalog), commissioning
new satellite acquisitions (Tasking), estimating/placing/tracking Orders,
storing and downloading results as cloud-native Assets, browsing storage
through a STAC-compliant data management API, running Processing/analytics, and
receiving order and job status changes via Webhooks.
All requests go to https://api.up42.com and are authenticated with an OAuth2
Bearer access token. Access tokens are short-lived (about 5 minutes) and are
obtained either from a UP42 API key or from account credentials via the UP42
authentication server
(https://auth.up42.com/realms/public/protocol/openid-connect/token, grant_type
password or client_credentials, client_id up42-api). Most ordering, storage,
and processing operations are scoped to a workspace by its workspaceId.
Endpoint accuracy: paths marked `x-up42-endpoint-status: confirmed` were
verified against the UP42 developer documentation (docs.up42.com /
developer.up42.com). Paths marked `modeled` are named operations from the UP42
API reference whose exact REST path/method were reconstructed from
documentation and the UP42 Python SDK, and should be re-verified against the
live reference during reconciliation.
version: '2.0'
contact:
name: UP42 Support
url: https://up42.com/company/contact-us
termsOfService: https://up42.com/legal/terms-and-conditions
servers:
- url: https://api.up42.com
description: UP42 production API
security:
- bearerAuth: []
tags:
- name: Catalog
description: Search the archive of previously captured imagery.
- name: Tasking
description: Commission new satellite acquisitions on demand.
- name: Orders
description: Estimate, place, and track catalog and tasking orders.
- name: Storage Assets
description: List, inspect, and download geospatial assets in storage.
- name: STAC Data Management
description: STAC-compliant view of everything in your storage.
- name: Processing
description: Run analytics and processing over stored assets.
- name: Webhooks
description: Register HTTPS endpoints for order and job status events.
- name: Workspaces & Account
description: Account, workspace, and budget context.
paths:
# ------------------------- Catalog -------------------------
/v2/collections:
get:
operationId: listCollections
tags:
- Catalog
summary: Get geospatial collections
description: >-
Returns the list of geospatial collections available on UP42 (both catalog
and tasking), each describing a data product, its provider/host, and
supported ordering parameters.
x-up42-endpoint-status: modeled
parameters:
- name: type
in: query
required: false
description: Filter collections by ordering type (ARCHIVE or TASKING).
schema:
type: string
enum: [ARCHIVE, TASKING]
responses:
'200':
description: A paged list of collections.
content:
application/json:
schema:
$ref: '#/components/schemas/CollectionList'
'401':
$ref: '#/components/responses/Unauthorized'
/v2/collections/{collection}:
parameters:
- name: collection
in: path
required: true
description: The unique name of the collection.
schema:
type: string
get:
operationId: getCollection
tags:
- Catalog
summary: Get a geospatial collection
description: Retrieves a single geospatial collection by its unique name.
x-up42-endpoint-status: modeled
responses:
'200':
description: The requested collection.
content:
application/json:
schema:
$ref: '#/components/schemas/Collection'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/catalog/hosts/{host}/stac/search:
parameters:
- name: host
in: path
required: true
description: The catalog host to search (for example, oneatlas).
schema:
type: string
post:
operationId: searchCatalogByHost
tags:
- Catalog
summary: Search the catalog by host
description: >-
Runs a STAC search against a host's archive catalog. Filter by collection,
area of interest (intersects/bbox), acquisition datetime range, and
property queries such as cloud cover, then page through matching scenes.
x-up42-endpoint-status: modeled
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/StacSearchRequest'
responses:
'200':
description: A STAC FeatureCollection of matching scenes.
content:
application/geo+json:
schema:
$ref: '#/components/schemas/StacItemCollection'
'401':
$ref: '#/components/responses/Unauthorized'
/catalog/{provider}/image/{imageId}/quicklook:
parameters:
- name: provider
in: path
required: true
schema:
type: string
- name: imageId
in: path
required: true
schema:
type: string
get:
operationId: getQuicklookImage
tags:
- Catalog
summary: Get a quicklook
description: Returns a low-resolution quicklook preview image for an archive scene.
x-up42-endpoint-status: modeled
responses:
'200':
description: The quicklook image.
content:
image/jpeg:
schema:
type: string
format: binary
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
# ------------------------- Tasking -------------------------
/v2/tasking/feasibility:
get:
operationId: listTaskingFeasibilityStudies
tags:
- Tasking
summary: Get feasibility studies
description: >-
Lists tasking feasibility studies for your workspace. A feasibility study
evaluates whether and how a requested acquisition can be captured and
returns one or more options to choose from.
x-up42-endpoint-status: modeled
parameters:
- $ref: '#/components/parameters/WorkspaceIdQuery'
responses:
'200':
description: A list of feasibility studies.
content:
application/json:
schema:
$ref: '#/components/schemas/FeasibilityList'
'401':
$ref: '#/components/responses/Unauthorized'
/v2/tasking/feasibility/{feasibilityId}:
parameters:
- name: feasibilityId
in: path
required: true
schema:
type: string
format: uuid
patch:
operationId: updateTaskingFeasibilityStudy
tags:
- Tasking
summary: Choose a feasibility option
description: Accepts one of the options returned by a tasking feasibility study.
x-up42-endpoint-status: modeled
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
acceptedOption:
type: string
format: uuid
responses:
'200':
description: The updated feasibility study.
content:
application/json:
schema:
$ref: '#/components/schemas/Feasibility'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/v2/tasking/quotations:
get:
operationId: listTaskingQuotations
tags:
- Tasking
summary: Get quotations
description: >-
Lists tasking quotations. After a feasibility option is chosen, UP42
produces a quotation with the credit price that must be accepted before the
tasking order is placed.
x-up42-endpoint-status: modeled
parameters:
- $ref: '#/components/parameters/WorkspaceIdQuery'
responses:
'200':
description: A list of quotations.
content:
application/json:
schema:
$ref: '#/components/schemas/QuotationList'
'401':
$ref: '#/components/responses/Unauthorized'
/v2/tasking/quotations/{quotationId}:
parameters:
- name: quotationId
in: path
required: true
schema:
type: string
format: uuid
patch:
operationId: updateTaskingQuotation
tags:
- Tasking
summary: Accept or decline a quotation
description: Accepts or declines a tasking quotation by setting its decision.
x-up42-endpoint-status: modeled
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
decision:
type: string
enum: [ACCEPTED, DECLINED]
responses:
'200':
description: The updated quotation.
content:
application/json:
schema:
$ref: '#/components/schemas/Quotation'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/v2/tasking/orders/opportunities:
get:
operationId: listTaskingOrderOpportunities
tags:
- Tasking
summary: Get tasking opportunities
description: >-
Lists acquisition opportunities (satellite passes) for a tasking
collection over an area of interest and time window.
x-up42-endpoint-status: modeled
parameters:
- $ref: '#/components/parameters/WorkspaceIdQuery'
responses:
'200':
description: A list of tasking opportunities.
content:
application/json:
schema:
type: object
additionalProperties: true
'401':
$ref: '#/components/responses/Unauthorized'
# ------------------------- Orders -------------------------
/v2/orders/schema:
get:
operationId: getOrderJsonSchema
tags:
- Orders
summary: Get a JSON schema of an order form
description: >-
Returns the JSON schema describing the parameters required to place an
order for a given data product, so a client can build and validate an
order form.
x-up42-endpoint-status: modeled
parameters:
- name: dataProductId
in: query
required: true
schema:
type: string
format: uuid
responses:
'200':
description: The order form JSON schema.
content:
application/json:
schema:
type: object
additionalProperties: true
'401':
$ref: '#/components/responses/Unauthorized'
/v2/orders/estimate:
post:
operationId: estimateOrder
tags:
- Orders
summary: Estimate the cost of an order
description: >-
Estimates the credit cost of an order for the given data product and
parameters (area of interest, image selection) before it is placed.
x-up42-endpoint-status: modeled
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/OrderInput'
responses:
'200':
description: The order cost estimate, in credits.
content:
application/json:
schema:
$ref: '#/components/schemas/OrderEstimate'
'401':
$ref: '#/components/responses/Unauthorized'
/v2/orders:
get:
operationId: listOrders
tags:
- Orders
summary: Get orders
description: Lists orders, optionally filtered by workspace and status.
x-up42-endpoint-status: modeled
parameters:
- $ref: '#/components/parameters/WorkspaceIdQuery'
- name: status
in: query
required: false
schema:
type: string
responses:
'200':
description: A paged list of orders.
content:
application/json:
schema:
$ref: '#/components/schemas/OrderList'
'401':
$ref: '#/components/responses/Unauthorized'
post:
operationId: createOrder
tags:
- Orders
summary: Create an order
description: >-
Places a catalog or tasking order under a workspace. The workspaceId query
parameter is required. Catalog orders are fulfilled immediately; tasking
orders proceed to acquisition after the quotation is accepted.
x-up42-endpoint-status: confirmed
parameters:
- name: workspaceId
in: query
required: true
description: The workspace the order is placed under.
schema:
type: string
format: uuid
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/OrderInput'
responses:
'201':
description: The created order.
content:
application/json:
schema:
$ref: '#/components/schemas/Order'
'401':
$ref: '#/components/responses/Unauthorized'
'422':
$ref: '#/components/responses/ValidationError'
/v2/orders/{orderId}:
parameters:
- name: orderId
in: path
required: true
schema:
type: string
format: uuid
get:
operationId: getOrder
tags:
- Orders
summary: Get an order
description: Retrieves a single order by its ID, including its current status.
x-up42-endpoint-status: modeled
responses:
'200':
description: The requested order.
content:
application/json:
schema:
$ref: '#/components/schemas/Order'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
patch:
operationId: updateOrder
tags:
- Orders
summary: Update an order
description: Updates mutable fields of an order (for example, its tags).
x-up42-endpoint-status: modeled
requestBody:
required: true
content:
application/json:
schema:
type: object
additionalProperties: true
responses:
'200':
description: The updated order.
content:
application/json:
schema:
$ref: '#/components/schemas/Order'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/v2/orders/{orderId}/cancel:
parameters:
- name: orderId
in: path
required: true
schema:
type: string
format: uuid
post:
operationId: cancelOrder
tags:
- Orders
summary: Cancel an order
description: >-
Cancels an order that is still in a cancellable state (for example CREATED
or PLACEMENT_FAILED).
x-up42-endpoint-status: modeled
responses:
'200':
description: The cancelled order.
content:
application/json:
schema:
$ref: '#/components/schemas/Order'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
# ------------------------- Storage Assets -------------------------
/v2/assets:
get:
operationId: listAssets
tags:
- Storage Assets
summary: Get assets
description: >-
Lists the geospatial assets in your storage produced by completed catalog
and tasking orders. Filter by workspace, collection, producer, and
acquisition date.
x-up42-endpoint-status: confirmed
parameters:
- $ref: '#/components/parameters/WorkspaceIdQuery'
- name: size
in: query
required: false
description: Page size.
schema:
type: integer
default: 50
responses:
'200':
description: A paged list of assets.
content:
application/json:
schema:
$ref: '#/components/schemas/AssetList'
'401':
$ref: '#/components/responses/Unauthorized'
/v2/assets/{assetId}:
parameters:
- name: assetId
in: path
required: true
schema:
type: string
format: uuid
get:
operationId: getAsset
tags:
- Storage Assets
summary: Get an asset
description: Retrieves metadata for a single asset by its ID.
x-up42-endpoint-status: modeled
responses:
'200':
description: The requested asset.
content:
application/json:
schema:
$ref: '#/components/schemas/Asset'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/v2/assets/{assetId}/download-url:
parameters:
- name: assetId
in: path
required: true
schema:
type: string
format: uuid
post:
operationId: createAssetDownloadUrl
tags:
- Storage Assets
summary: Create a download URL
description: >-
Generates a short-lived, pre-signed URL to download an asset's files
directly, without additional authentication.
x-up42-endpoint-status: confirmed
responses:
'200':
description: A pre-signed download URL.
content:
application/json:
schema:
type: object
properties:
url:
type: string
format: uri
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
# ------------------------- STAC Data Management -------------------------
/v2/sas:
get:
operationId: getStacLandingPage
tags:
- STAC Data Management
summary: Get the STAC landing page
description: >-
Returns the STAC API landing page for your storage, including the API
version and the STAC extensions it conforms to.
x-up42-endpoint-status: confirmed
responses:
'200':
description: The STAC landing page.
content:
application/json:
schema:
type: object
additionalProperties: true
'401':
$ref: '#/components/responses/Unauthorized'
/v2/sas/collections:
get:
operationId: getStacCollections
tags:
- STAC Data Management
summary: Get STAC collections
description: Lists all STAC collections in your storage.
x-up42-endpoint-status: confirmed
responses:
'200':
description: A list of STAC collections.
content:
application/json:
schema:
type: object
additionalProperties: true
'401':
$ref: '#/components/responses/Unauthorized'
/v2/sas/collections/{collectionId}:
parameters:
- name: collectionId
in: path
required: true
schema:
type: string
get:
operationId: getStacCollection
tags:
- STAC Data Management
summary: Get a STAC collection
description: Retrieves a single STAC collection by its ID.
x-up42-endpoint-status: confirmed
responses:
'200':
description: The requested STAC collection.
content:
application/json:
schema:
type: object
additionalProperties: true
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
delete:
operationId: deleteStacCollection
tags:
- STAC Data Management
summary: Remove a STAC collection
description: Deletes a STAC collection and its items from your storage.
x-up42-endpoint-status: confirmed
responses:
'204':
description: The collection was removed.
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/v2/sas/collections/{collectionId}/items:
parameters:
- name: collectionId
in: path
required: true
schema:
type: string
get:
operationId: getStacItems
tags:
- STAC Data Management
summary: Get STAC items
description: Lists all STAC items in a collection.
x-up42-endpoint-status: confirmed
responses:
'200':
description: A STAC FeatureCollection of items.
content:
application/geo+json:
schema:
$ref: '#/components/schemas/StacItemCollection'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/v2/sas/collections/{collectionId}/items/{itemId}:
parameters:
- name: collectionId
in: path
required: true
schema:
type: string
- name: itemId
in: path
required: true
schema:
type: string
get:
operationId: getStacItem
tags:
- STAC Data Management
summary: Get a STAC item
description: Retrieves a single STAC item by ID within a collection.
x-up42-endpoint-status: confirmed
responses:
'200':
description: The requested STAC item.
content:
application/geo+json:
schema:
$ref: '#/components/schemas/StacItem'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
patch:
operationId: updateStacItem
tags:
- STAC Data Management
summary: Update a STAC item
description: Updates the title or tags of a STAC item.
x-up42-endpoint-status: confirmed
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
title:
type: string
tags:
type: array
items:
type: string
responses:
'200':
description: The updated STAC item.
content:
application/geo+json:
schema:
$ref: '#/components/schemas/StacItem'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/v2/sas/queryables:
get:
operationId: getStacQueryables
tags:
- STAC Data Management
summary: Get data management search parameters
description: Returns the queryable properties available for STAC searches over your storage.
x-up42-endpoint-status: confirmed
responses:
'200':
description: The set of queryable properties.
content:
application/schema+json:
schema:
type: object
additionalProperties: true
'401':
$ref: '#/components/responses/Unauthorized'
/v2/sas/search:
post:
operationId: searchStacItems
tags:
- STAC Data Management
summary: Search for STAC items
description: >-
Runs a STAC search across all STAC items in your storage, filtering by
collection, geometry, datetime, and queryable properties.
x-up42-endpoint-status: confirmed
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/StacSearchRequest'
responses:
'200':
description: A STAC FeatureCollection of matching items.
content:
application/geo+json:
schema:
$ref: '#/components/schemas/StacItemCollection'
'401':
$ref: '#/components/responses/Unauthorized'
# ------------------------- Processing -------------------------
/v2/processing/processes:
get:
operationId: listProcesses
tags:
- Processing
summary: Get available processes
description: Lists the processing/analytics operations available to run over stored assets.
x-up42-endpoint-status: modeled
responses:
'200':
description: A list of available processes.
content:
application/json:
schema:
type: object
additionalProperties: true
'401':
$ref: '#/components/responses/Unauthorized'
/v2/processing/processes/{processId}/validation:
parameters:
- name: processId
in: path
required: true
schema:
type: string
post:
operationId: evaluateProcess
tags:
- Processing
summary: Determine process cost and validity
description: >-
Validates process inputs and returns the estimated credit cost of running a
process before it is executed.
x-up42-endpoint-status: modeled
requestBody:
required: true
content:
application/json:
schema:
type: object
additionalProperties: true
responses:
'200':
description: The validation result and cost estimate.
content:
application/json:
schema:
type: object
additionalProperties: true
'401':
$ref: '#/components/responses/Unauthorized'
/v2/processing/processes/{processId}/execution:
parameters:
- name: processId
in: path
required: true
schema:
type: string
post:
operationId: executeProcess
tags:
- Processing
summary: Run a process
description: Executes a process against input assets, creating a processing job.
x-up42-endpoint-status: modeled
parameters:
- $ref: '#/components/parameters/WorkspaceIdQuery'
requestBody:
required: true
content:
application/json:
schema:
type: object
additionalProperties: true
responses:
'201':
description: The created processing job.
content:
application/json:
schema:
$ref: '#/components/schemas/ProcessingJob'
'401':
$ref: '#/components/responses/Unauthorized'
/v2/processing/jobs:
get:
operationId: listProcessingJobs
tags:
- Processing
summary: Get processing jobs
description: Lists processing jobs and their status.
x-up42-endpoint-status: modeled
parameters:
- $ref: '#/components/parameters/WorkspaceIdQuery'
responses:
'200':
description: A list of processing jobs.
content:
application/json:
schema:
type: object
additionalProperties: true
'401':
$ref: '#/components/responses/Unauthorized'
/v2/processing/jobs/{jobId}:
parameters:
- name: jobId
in: path
required: true
schema:
type: string
format: uuid
get:
operationId: getProcessingJob
tags:
- Processing
summary: Get a processing job
description: Retrieves a single processing job by ID.
x-up42-endpoint-status: modeled
responses:
'200':
description: The requested processing job.
content:
application/json:
schema:
$ref: '#/components/schemas/ProcessingJob'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
# ------------------------- Webhooks -------------------------
/v2/webhooks:
get:
operationId: listWebhooks
tags:
- Webhooks
summary: Get webhooks
description: Lists the webhooks registered for your account.
x-up42-endpoint-status: modeled
responses:
'200':
description: A list of webhooks.
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookList'
'401':
$ref: '#/components/responses/Unauthorized'
post:
operationId: createWebhook
tags:
- Webhooks
summary: Create a webhook
description: >-
Registers a new webhook: a name, a unique HTTPS URL to receive events, a
secret used to sign the payload, and the event types that trigger it.
x-up42-endpoint-status: modeled
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookInput'
responses:
'201':
description: The created webhook.
content:
application/json:
schema:
$ref: '#/components/schemas/Webhook'
'401':
$ref: '#/components/responses/Unauthorized'
'422':
$ref: '#/components/responses/ValidationError'
/v2/webhooks/{webhookId}:
parameters:
- name: webhookId
in: path
required: true
schema:
type: string
format: uuid
get:
operationId: getWebhook
tags:
- Webhooks
summary: Get a webhook
description: Retrieves a single webhook by ID.
x-up42-endpoint-status: modeled
responses:
'200':
description: The requested webhook.
content:
application/json:
schema:
$ref: '#/components/schemas/Webhook'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
put:
operationId: updateWebhook
tags:
- Webhooks
summary: Update a webhook
description: Replaces the configuration of an existing webhook.
x-up42-endpoint-status: modeled
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookInput'
responses:
'200':
description: The updated webhook.
content:
application/json:
schema:
$ref: '#/components/schemas/Webhook'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
delete:
operationId: deleteWebhook
tags:
- Webhooks
summary: Delete a webhook
description: Removes a webhook so it no longer receives events.
x-up42-endpoint-status: modeled
responses:
'204':
description: The webhook was deleted.
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/v2/webhooks/events:
get:
operationId: listWebhookEvents
tags:
- Webhooks
summary: Get webhook events
description: >-
Lists the event types that a webhook can subscribe to (for example
order.status and job.status changes).
x-u
# --- truncated at 32 KB (41 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/up42/refs/heads/main/openapi/up42-openapi.yml