Introduction

The UP42 API specification is a work under development where updates and new endpoints are added as needed. If there is anything that you would like to do with our API but it is not listed here, please contact the support team.

Please note that all API requests are made over HTTPS.

The source code of the specification is available on GitHub.

Alternatively, we recommend reading the step-by-step instructions from the API walkthrough.

Project Credentials

Currently, accessing the UP42 API is on a project-by-project basis. The authorization token is generated based on a Project ID and Project API Key that are found in the section Developers on the console. This token can only be used for a specific project.

Note: We advise to safely store the Project ID and Project API Key and never share them with other users, because these credentials allow anyone to access your project and consume the UP42 credits associated with your account.

API Usage Constraints

Our mission is to optimize the access and usage of the diverse geospatial datasets and algorithms available on our marketplace. We expect that the UP42 API is used in a responsible and effective manner.

To prevent API abuse, we set up API usage constraints to guarantee the integrity and reliability of our service for all customers.

Rate limiting

Based on the client IP address, we limit the number of HTTP requests that can be made with our API for a given time.

Current limit: 100 requests/second for extended periods (including the possibility to burst up to 500 requests/second in a very short period). Once the limit is exceeded, the API returns a 429 Too Many Requests response status code.

If you ever experience such an error code, please do one of the following:

  • Adjust the request rate from your UP42 API client application such that the request rate follows an exponential backoff growth rate.
  • Contact the customer support team and request the removal of this restriction, while providing a justification for this action. The customer support team will analyze the requests on a case-by-case basis and can waive this restriction for paying customers who provided a proper justification.

Authentication

basicAuth

Security Scheme Type HTTP
HTTP Authorization Scheme basic

httpBearer

Security Scheme Type HTTP
HTTP Authorization Scheme bearer
Bearer format "JWT"

token

Get the bearer token

Get the bearer token necessary for all API requests.

Authorizations:
header Parameters
Authorization
required
string
Example: MWIwMDE1ZTMtY2M0Zi00ZGE2LTk3NjEtZmJhNzRiYTU3ZjY3OjFkSmVDSVZ4LmV4MGVVNkdSbFhTWUVvNzJJY3c5cHF1ZDdORmJ4dUhxYUp6Cg==

The username:password string Base64 encoded. username is the project ID and password is the project key.

Content-Type
required
string
Example: application/x-www-form-urlencoded
Request Body schema: application/x-www-form-urlencoded
string

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "access_token": "eyJ0eXAiOiJKV1QiLCJraWQiOiIxIiwidG9rZW5fdHlwZSI6IkFDQ0VTUyIsImFsZyI6IlJTNTEyIn0.eyJpc3MiOiJiYWNrZW5kLWNvcmUiLCJqdGkiOiI1ODdkMTQ3My05ODU5LTRhMDAtYTUwNS1iZTgwMDUzYmJiMzUiLCJpYXQiOjE1NzU5NzE1ODEsInN1YiI6IjFiMDAxNWUzLWNjNGYtNGRhNi05NzYxLWZiYTc0YmE1N2Y2NyIsImF1ZCI6IjFiMDAxNWUzLWNjNGYtNGRhNi05NzYxLWZiYTc0YmE1N2Y2NyIsImV4cCI6MTU3NTk3MTg4MSwiYXV0aG9yaXRpZXMiOlsiVklFV19QUk9KRUNUIiwiUlVOX0pPQiJdfQ.hgJkzcokxZQpEc5walhzDqMubBgT_ukmRLd1-mqBHZBv8hMI-7rJaLaA1-ZB5P5CgLvzUyjkeq4gwuXZgmx7Q0nufnI6qC8gxSOEGjfb-sS4wHew7zhPXwNfhuv0CmhMeHpQXyjxdlKxf4cWbhK3PVQkHMCnxvJkw1T7RJ_XolEzRN2g2ocM-hzhLM3UVhzqyeD_qVr1yCjZzs32gsekmPQkW_XmflrSgzl7AhHxQK9psC3h3H6HveT2WmnYqvnb-a3v8FJTCC21S5KCAV1qj-Hlv1vTUDRoQK5TsH4oklvnmqfU0ylmCDPRKihcyUgFvf5wdcebDgbUHHvlz8gEsTaMGEEDmfzXCQwr9e4bgzildOiqzsS2tRf2m1bJAYF-vQ5Yfsv5mt0xauTEaWARAfe5WzoLKQ7Ex3WKuLnzZlzKZ-BKQuP31rk-O4F-784RM60nto6aQh1Yl3uUVSTRMQ4SwsOO3RWvIP52CqeM4EMXjfLZDsOOuXIlmiVRXSRFi7yY0uC-5DKMkkeBw-RXh2wGMF7axB2Wo7fbcpr2vszkdbGKg-kw2bF_oHd_20riBAUBV0kWC3XGYkDOunUPLDqFhtDQRS-GlL8aDoYX8pe19qiUzLXX3QWLb95FkNyz6w8MjMEMkatSfLhrYX7PHNI3VAa59IB0NdRCi4arDig",
  • "refresh_token": "eyJ0eXAiOiJKV1QiLCJraWQiOiIxIiwidG9rZW5fdHlwZSI6IkFDQ0VTUyIsImFsZyI6IlJTNTEyIn0.eyJpc3MiOiJiYWNrZW5kLWNvcmUiLCJqdGkiOiI1ODdkMTQ3My05ODU5LTRhMDAtYTUwNS1iZTgwMDUzYmJiMzUiLCJpYXQiOjE1NzU5NzE1ODEsInN1YiI6IjFiMDAxNWUzLWNjNGYtNGRhNi05NzYxLWZiYTc0YmE1N2Y2NyIsImF1ZCI6IjFiMDAxNWUzLWNjNGYtNGRhNi05NzYxLWZiYTc0YmE1N2Y2NyIsImV4cCI6MTU3NTk3MTg4MSwiYXV0aG9yaXRpZXMiOlsiVklFV19QUk9KRUNUIiwiUlVOX0pPQiJdfQ.hgJkzcokxZQpEc5walhzDqMubBgT_ukmRLd1-mqBHZBv8hMI-7rJaLaA1-ZB5P5CgLvzUyjkeq4gwuXZgmx7Q0nufnI6qC8gxSOEGjfb-sS4wHew7zhPXwNfhuv0CmhMeHpQXyjxdlKxf4cWbhK3PVQkHMCnxvJkw1T7RJ_XolEzRN2g2ocM-hzhLM3UVhzqyeD_qVr1yCjZzs32gsekmPQkW_XmflrSgzl7AhHxQK9psC3h3H6HveT2WmnYqvnb-a3v8FJTCC21S5KCAV1qj-Hlv1vTUDRoQK5TsH4oklvnmqfU0ylmCDPRKihcyUgFvf5wdcebDgbUHHvlz8gEsTaMGEEDmfzXCQwr9e4bgzildOiqzsS2tRf2m1bJAYF-vQ5Yfsv5mt0xauTEaWARAfe5WzoLKQ7Ex3WKuLnzZlzKZ-BKQuP31rk-O4F-784RM60nto6aQh1Yl3uUVSTRMQ4SwsOO3RWvIP52CqeM4EMXjfLZDsOOuXIlmiVRXSRFi7yY0uC-5DKMkkeBw-RXh2wGMF7axB2Wo7fbcpr2vszkdbGKg-kw2bF_oHd_20riBAUBV0kWC3XGYkDOunUPLDqFhtDQRS-GlL8aDoYX8pe19qiUzLXX3QWLb95FkNyz6w8MjMEMkatSfLhrYX7PHNI3VAa59IB0NdRCi4arDig",
  • "token_type": "bearer"
}

workflows

Get compatible blocks in a workflow

Validates if a block added to a workflow is compatible with the other blocks of that workflow. If no parent or child blocks (workflow tasks) are given, then all blocks that have empty input capabilities are returned.

Authorizations:
path Parameters
project_id
required
string <uuid>
Example: 1b0015e3-cc4f-4da6-9761-fba74ba57f67

A project represents a collection of workflows. The project ID string appears in the console URL, after projects.

workflow_id
required
string <uuid>
Example: 4d86ec1b-be2c-5627-aa80-7e065fc94171

A workflow is a Directed Acyclic Graph of data and processing blocks. The workflow ID string appears in the console URL, after workflows.

query Parameters
parentTaskName
string
Example: parentTaskName=data-conversion-dimap:1

Entering the name of a task as a parent will provide all the compatible blocks downstream or after this block. Adding multiple parents is currently not possible. Use either the parentTaskName or the childTaskName.

childTaskName
string
Example: childTaskName=data-conversion-dimap:1

Entering the name of a task as a child will provide all the compatible blocks upstream or before this block. Use either the parentTaskName or the childTaskName.

Responses

Response samples

Content type
application/json
{
  • "error": null,
  • "data": {