AGT-38: Add Async Processing API SDK/CLI - #1229
Open
Regan-Koopmans wants to merge 4 commits into
Open
Regan-Koopmans wants to merge 4 commits into
Regan-Koopmans wants to merge 4 commits into
Conversation
Add a client for the Async Processing API, served from services.sentinel-hub.com. The API has two operations: submit a request and get its status. Finished requests return 404. - AsyncProcessingClient: create_request, get_request, wait - AsyncProcessingAPI sync wrapper, exposed as Planet().async_processing - async_processing_request: builders for input, output, data sources, responses, and S3/GCS buckets - `planet async-processing request|create|get|wait`, with --deployment for the EU and US hosts - CLI tutorial, SDK reference entries, auth overview update - Unit tests for the builders; respx tests for client and CLI Requires OAuth2 auth. Planet API keys are not accepted by this API. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Bucket access errors can surface during processing, in error.json, after a successful submit. Say so in create_request, the create command help and the CLI tutorial. GCS delivery needs read and write access to the bucket. roles/storage.objectCreator is not enough; document roles/storage.objectAdmin in gs_bucket, the request command help and the tutorial.
AsyncProcessingClient and AsyncProcessingAPI take a keyword-only deployment argument, aws-eu-central-1 (default) or aws-us-west-2. base_url stays second and overrides it, matching the other clients. Unknown deployments raise ClientError. Planet takes async_processing_deployment, so sync users can reach the US deployment without touching the private session. The CLI passes --deployment and --base-url to the client instead of resolving the URL itself. Drop the BASE_URL constant.
RUNNING in the client and DEFAULT_CRS in the request builder were never referenced. Found with vulture.
Regan-Koopmans
marked this pull request as ready for review
October 5, 2026 11:30
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds SDK and CLI support for the Async Processing API.
API
The API is served from
services.sentinel-hub.com. The public spec has two operations:POST /async/v1/process: submit a requestGET /async/v1/process/{id}: get statusThe only status is
RUNNING. Finished requests return 404, whether they succeeded or failed. The outcome lives in the delivery bucket: results, orerror.json.Changes
planet.AsyncProcessingClient:create_request,get_request,wait.waitpolls until 404.Planet().async_processing: sync wrapper.planet.async_processing_request: builders for input, output, data sources, responses, and S3/GCS buckets. Validates locally.planet async-processing request | create | get | wait.--deploymentselectsaws-eu-central-1oraws-us-west-2. Each command's--helphas an example.Notes
waitcannot tell a finished request from an unknown ID. Both return 404.Open questions for the Async Processing team
sentinel-2-l2athe preferred collection name? The public examples useS2L2A.Testing
Remaining from the ticket
docs/cli/cli-async-processing.md.