UP42 Processing API

Run advanced analytics and processing over geospatial assets in storage. List available processes, evaluate the cost and validity of a process against inputs, execute a process, and list and track the resulting processing jobs.

OpenAPI Specification

up42-openapi.yml Raw ↑
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