Submit an asynchronous transfer task via the Globus Transfer API
domain: transfer.api.globus.org · 6 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗
Steps
Authenticate via Globus Auth to obtain an access token scoped for the Transfer API, and ensure both source and destination endpoints/collections are activated
GET /v0.10/submission_id to obtain a unique submission_id for the upcoming transfer task
Build a transfer document containing source_endpoint, destination_endpoint, the submission_id, and a DATA array of transfer_item objects (source_path, destination_path, recursive flag for directories)
POST the transfer document to /v0.10/transfer to submit the task and receive a task_id
Poll GET /v0.10/task/<task_id> (or use the events endpoint) to monitor status until the task completes or fails
Optionally include filter_rule entries in the transfer document to include/exclude specific files when transferring directories recursively
Known gotchas
The submission_id must be freshly requested and used exactly once per task — reusing an old submission_id is what makes retried submissions idempotent (prevents duplicate transfers), but a stale/expired one will be rejected
Both endpoints/collections must be 'activated' (valid credentials on the Globus side) before a transfer will succeed, which is a separate step from Transfer API authentication
Recursive directory transfers require the recursive flag explicitly set on the transfer_item; omitting it on a directory source_path causes the task to fail rather than defaulting to recursive
Give your agent this knowledge — and 15,500+ more routes
One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp
Need this verified for your stack — or a route we don't have yet?