# Satelligence API The satelligence API provides 4 capabilities to synchronize data to and from the platform: 1. Bulk uploads new! A full fledged set of endpoints to manage supply chain data in the platform. Use this endpoint to set up automated data synchronization of supply chain data to the Satelligence platform and fully leverage the risk assessment and mitigation features inside the platform. 2. Plot downloads new! An endpoint that can serve to sync plot data from the platform into your own systems. It can serve both plot metadata, geometries, and risk assessments from the platform. 3. Get Risk Info A lightweight endpoint to access geospatial risk information for a given boundary without uploading supply chain data to the platform. Use this endpoint to leverage the Satelligence geospatial data but build your own risk assessment and mitigation strategies outside of the Satelligence platform. 4. Detections export To fetch all deforestation and fire detections in shapefile format. Use this endpoint to gather the raw Satelligence real time data and build your own archive of detections for fully custom workflows. ### Authentication Authentication requires an API token, contact support@satelligence.com to request one. To authenticate your requests, set the `Authorization: Bearer $token` header in your requests. The token is connected to a personal account, it will have the same permissions as the account that created it. If the linked user belongs to multiple projects, the token will default to the 'active project' for that user. Version: v1 ## Servers Production server ``` https://api.satelligence.com ``` ## Security ### bearerAuth Authentication requires an API token. Contact support@satelligence.com to request one. The token is connected to a personal account created through app.satelligence.com/settings. To authenticate your requests, set the `Authorization: Bearer $token` header in your requests. Type: http Scheme: bearer ## Download OpenAPI description [Satelligence API](https://docs.satelligence.com/_spec/api.yaml) ## Bulk Uploads - New! These endpoints give full control over supply chain data uploads and ingestion. For a bulk upload, plots must be formatted as a GeoJSON file and uploaded to a secure location in Satelligence's Google Cloud Storage bucket through a signed URL. The complete process consists of three steps: 1. Create a bulk upload with the POST `/bulk-uploads` endpoint, which generates signed URLs for each file you want to upload. 2. Use the signed URLs to upload the files to the required place for this upload. 3. Start the bulk upload with the POST `/bulk-uploads/start` endpoint. The process can be automated with the scripts linked [here](https://gitlab.com/satelligence/web-api). ### Create a bulk upload - [POST /v1/bulk-uploads](https://docs.satelligence.com/api/bulk-uploads/preupload.md): This endpoint generates signed URLs needed to upload plot files. The signed URLs are valid for 60 minutes. Any uploaded files for which an upload is not started within the 60 minute timeframe are deleted. After calling this endpoint, you need to upload each file to the provided Google Cloud Storage URLs. To do this with cURL, you can use: Examples showing how to do this in Python and Javascript can be found in the example scripts. The endpoint returns an that needs to be given to the endpoint to trigger the upload, after uploading the plot files to the signed URLs. ### Start a bulk upload - [POST /v1/bulk-uploads/start](https://docs.satelligence.com/api/bulk-uploads/initiateupload.md): Start processing a bulk upload with a given upload ID. Allows choosing whether to overwrite existing data or not. This endpoint validates constraint on the uploaded files: * Less than 100 files can be uploaded at a time * Total size of all files must be less than 2GB Note: only one upload can be in progress for a given supplier at a time. If you try to start an upload for a supplier that already has an upload in progress, you will get a '429 Too Many Requests' error, and will have to retry later. ### Get upload status - [GET /v1/bulk-uploads/status](https://docs.satelligence.com/api/bulk-uploads/getuploadstatus.md): Retrieves the status of a particular bulk upload, or lists all the ongoing uploads in the given project. If an is provided, this endpoint returns information about that upload: what stage it is at, if any errors were encountered. If no is provided, this endpoint returns a list of the ongoing uploads for the given project, which can be useful to get a view of everything currently uploading in a given project. If the is not set this uses the user's active project. ## Plots - New! ### Get plots information - [GET /v1/plots](https://docs.satelligence.com/api/plot-downloads/getplots.md): This endpoint can be useful in many different situations: * Downloading metadata for your plots from the platform * Downloading plot geometries from the platform * Getting plot-level risk assessments from the platform It is paginated and returns 200 plots at a time. Use the returned in the response to fetch the next page of results. ### Get plot information - [GET /v1/plots/{id}](https://docs.satelligence.com/api/plot-downloads/paths/~1v1~1plots~1%7Bid%7D/get.md) ## Risk Information ### Get risk information - [POST /get-risk-info](https://docs.satelligence.com/api/risk-info/getriskinfo.md): Returns computed risk factors for a given geographic area, including deforestation history, remaining forest coverage, and overlap with protected/indigenous territories. The area must be within monitoring regions and meet size constraints. ## Detections Export ### Get detections export - [GET /detections-export](https://docs.satelligence.com/api/detections-export/getdetectionsexport.md): Retrieves download URLs for deforestation and fire detection data for a specified year and month. The downloaded file contains shapefiles with detailed detection information. ## Projects These endpoints provide access to project information, useful for organizations with multiple projects. ### Get accessible projects - [GET /v1/projects](https://docs.satelligence.com/api/projects/getprojects.md): Retrieves a list of projects accessible to the authenticated user.