API Reference
The Expanso API provides a REST interface for managing jobs, nodes, and executions across your edge computing infrastructure.
How It Works
The Expanso API is available on two types of endpoints:
- Orchestrator: The central management service for your edge fleet
- Edge nodes: Individual edge agents (when running in local mode)
Most API operations work against both endpoint types, with responses varying based on the target. For example, querying the orchestrator returns data across all nodes, while querying an edge node returns data for that specific node only.
Local Mode
Edge nodes running in "local mode" expose the same API for direct management without an orchestrator connection. This enables:
- Local development and testing workflows
- Direct troubleshooting of specific edge nodes
- Air-gapped or isolated deployments
- Deploying jobs directly to edge nodes
To use the API against an edge node in local mode, point your requests to the edge node's endpoint instead of the orchestrator.
Base URL
https://YOUR_WORKSPACE_ID.us1.cloud.expanso.io:9010/api/v1
Using Your Managed Expanso Cloud Endpoint:
Each workspace in Managed Expanso Cloud comes with its own orchestrator and a unique endpoint. The examples on this page use the placeholder YOUR_WORKSPACE_ID. Replace it with your workspace ID, or copy the full endpoint from:
- Expanso Cloud Console → Your Workspace → Endpoint
Prefer to run the orchestrator in your own environment? A private deployment is available too. Contact the Expanso team at [email protected] for details and to get set up.
Authentication
All API requests require authentication. You can use an Expanso Cloud API key:
curl -H "Authorization: Bearer exp_ak_YOUR_API_KEY" \
https://YOUR_WORKSPACE_ID.us1.cloud.expanso.io:9010/api/v1/jobs
Create an API key from the Expanso Cloud dashboard under Settings → API Keys.
Quick Start
Deploy a job to your edge nodes:
curl -X PUT \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "log-processor",
"type": "pipeline",
"config": {
"pipeline": {
"inputs": [...],
"processors": [...],
"outputs": [...]
}
},
"selector": {
"match_labels": {
"env": "production"
}
}
}' \
https://YOUR_WORKSPACE_ID.us1.cloud.expanso.io:9010/api/v1/jobs
This will deploy the job to all nodes matching the label env=production.