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:
- Control plane: The central management service that orchestrates 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 control plane 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 control plane connectivity. 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 control plane.
Base URL
https://demo.us1.cloud.expanso.io:9010/api/v1
Using Your Own Control Plane:
Replace demo.us1.cloud.expanso.io:9010 with your control plane endpoint from Expanso Cloud Console.
Your Expanso endpoint can be found in:
- Expanso Cloud Console → Your Control Plane → Endpoint
The demo endpoint is provided for documentation examples. For production use, provision Expanso in Expanso Cloud and use your unique endpoint.
Authentication
All API requests require authentication using a bearer token:
curl -H "Authorization: Bearer YOUR_TOKEN" \
https://demo.us1.cloud.expanso.io:9010/api/v1/jobs
Get your API token from the Expanso dashboard or use the CLI to generate one.
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://demo.us1.cloud.expanso.io:9010/api/v1/jobs
This will deploy the job to all nodes matching the label env=production.