API Deployment
Deployment pushes API configurations from the Control Plane to the gateways in a target environment. When you deploy an API, the Control Plane communicates with the environment's connected agent, which configures the gateway to expose the API according to its specification. Deployment is asynchronous — the status transitions through DEPLOYMENT_IN_PROGRESS and resolves to either DEPLOYED or DEPLOYMENT_FAILED.
APIs can also be deployed automatically: when a consumer subscribes to an API Product that contains the API, the subscription triggers deployment of all associated resources (APIs, products, plans) to the relevant environment. If a deployment fails, you can inspect the error via the API's deploymentStatus field and retry.
Deploy an API to an environment
curl -X PUT "https://<your-subdomain>.backend.<region>.controlplane.boomi.com/environments/<environment-id>/apis/<api-id>" \
-H "Authorization: Bearer <your-token>"
This is an asynchronous operation. The API's deploymentStatus will change to DEPLOYMENT_IN_PROGRESS and eventually to DEPLOYED or DEPLOYMENT_FAILED.
Check deployment status
Retrieve the API and check its deploymentStatus field:
curl -X GET "https://<your-subdomain>.backend.<region>.controlplane.boomi.com/apis/<api-id>?includeRunningJobs=true" \
-H "Authorization: Bearer <your-token>"
You can also check the deployedOn field when listing APIs with ?includeDeployedOn=true.
List deployed APIs in an environment
curl -X GET "https://<your-subdomain>.backend.<region>.controlplane.boomi.com/environments/<environment-id>/apis" \
-H "Authorization: Bearer <your-token>"
Undeploy an API from an environment
curl -X DELETE "https://<your-subdomain>.backend.<region>.controlplane.boomi.com/environments/<environment-id>/apis/<api-id>" \
-H "Authorization: Bearer <your-token>"
Deployment workflow
A typical deployment workflow:
- Create an API and upload its specification
- Set up an environment with a connected gateway
- Deploy the API to the environment
- Monitor the deployment status
- Verify the API is accessible through the gateway
# 1. Create the API
API_ID=$(curl -s -X POST ".../apis" \
-H "Authorization: Bearer <your-token>" \
-H "Content-Type: application/json" \
-d '{"name":"my-api","displayName":"My API","status":"ACTIVE","tags":[]}' \
| jq -r '.id')
# 2. Upload a spec
curl -X PUT ".../apis/$API_ID/versions/<version-id>/spec" \
-H "Authorization: Bearer <your-token>" \
-H "Content-Type: application/json" \
-d @openapi.json
# 3. Deploy to an environment
curl -X PUT ".../environments/<env-id>/apis/$API_ID" \
-H "Authorization: Bearer <your-token>"
# 4. Check status
curl -X GET ".../apis/$API_ID?includeRunningJobs=true" \
-H "Authorization: Bearer <your-token>" | jq '.deploymentStatus'