Skip to content

Getting started

How can I start developing with the Satellogic API?

Our API is available for registered account-holders of our platform. API Credentials will be provided upon account provisioning.

API Authentication

To access our API endpoints, requests must include a valid Access Token, which can be obtained using the OAuth Client Credentials Flow. This authentication flow involves an application exchanging its API Credentials for an Access Token.

Depending on the API you are accessing, use the appropriate audience value in the token request:

  • Tasking API and Archive API: https://api.satellogic.com/
  • Accounts API: api

Obtaining an Access Token

Use the following example to obtain an Access Token based on the API you're working with:

Obtaining an Access Token

Request:

curl --location --request POST 'https://auth.platform.satellogic.com/oauth/token'     --header 'content-type: application/json'     --data-raw '{
    "client_id": "<API_CREDENTIAL_ID>",
    "client_secret": "<API_CREDENTIAL_SECRET>",
    "audience": "<AUDIENCE>",   # Replace <AUDIENCE> with "https://api.satellogic.com/" or "api"
    "grant_type": "client_credentials"
}'
Response:
{
    "access_token": "<ACCESS_TOKEN>",
    "scope": "api:tasking api:delivery",
    "expires_in": 86400,
    "token_type": "Bearer"
}

Once generated, the Access Token is valid for 24 hours and must be included in the request under the authorizationToken header, preceded by the Bearer keyword.

Authenticating API Requests

Example for Tasking API or Archive API:

Authenticating API Requests
curl --location --request GET 'https://api.satellogic.com/tasking/tasks/'     --header 'authorizationToken: Bearer <ACCESS_TOKEN>' 

For the Accounts API, use the same authorizationToken header with the obtained Access Token but direct your requests to the Accounts API endpoints.

Python example

import requests
import json

url = "https://auth.platform.satellogic.com/oauth/token"

payload = json.dumps({
  "client_id": "<API_CREDENTIAL_ID>",
  "client_secret": "<API_CREDENTIAL_SECRET>",
  "audience": "https://api.satellogic.com/",
  "grant_type": "client_credentials"
})
headers = {
  'Content-Type': 'application/json'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)

Deprecated Authentication Method

Deprecation notice

Important: We are introducing a new authentication server at https://auth.platform.satellogic.com/oauth/token. The previous authentication server at https://login.satellogic.com/oauth/token will be deprecated on November 30.

We are also discouraging the use of the legacy authentication method, which involves explicitly sending API Credentials in requests. This approach is deemed less secure, and we encourage all users to migrate their API Authentication to the OAuth Client Credentials Flow described above.

Effective November 30:

The previous authentication server will be deprecated. The key,secret authentication method will also be deprecated. All users relying on the deprecated authentication methods must generate new API Credentials in the Accounts Service Console in order to use the new authentication server.

Anatomy of an authorizationToken

authorizationToken: Key,Secret <API_CREDENTIAL_ID>,<API_CREDENTIAL_SECRET> 
Assuming tTcPujCyJTYxIPbdqfgL3gjKTZ39fLl3 is the API_CREDENTIAL_ID and D1xkJk0Eme8xvddBYoQpg33GJqcNwdpRQaoWNP0WYi96d44E0YwzWUb7D_S7L6X1 is the API_CREDENTIAL_SECRET

authorizationToken: Key,Secret tTcPujCyJTYxIPbdqfgL3gjKTZ39fLl3,D1xkJk0Eme8xvddBYoQpg33GJqcNwdpRQaoWNP0WYi96d44E0YwzWUb7D_S7L6X1 

Last update: 2024-10-31