Skip to main content

Automations API

POST /automations

Create an automation:

curl -X POST https://api.get-nimbus.com/automations \
-H "X-API-Key: $NIMBUS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"repo_id": "repo-xyz789",
"trigger_type": "cron",
"trigger_config": {"schedule": "0 9 * * 1"},
"task_template": "Run the dependency-cve agent",
"enabled": true
}'

Response:

{
"id": "auto-abc123",
"repo_id": "repo-xyz789",
"trigger_type": "cron",
"trigger_config": {"schedule": "0 9 * * 1"},
"task_template": "Run the dependency-cve agent",
"enabled": true,
"last_triggered_at": null,
"last_task_id": null,
"created_at": "2026-04-26T00:00:00Z"
}

GET /automations

List all automations:

curl https://api.get-nimbus.com/automations \
-H "X-API-Key: $NIMBUS_API_KEY"

PATCH /automations/{id}

Update an automation (partial update):

curl -X PATCH https://api.get-nimbus.com/automations/auto-abc123 \
-H "X-API-Key: $NIMBUS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"enabled": false}'

DELETE /automations/{id}

Delete an automation:

curl -X DELETE https://api.get-nimbus.com/automations/auto-abc123 \
-H "X-API-Key: $NIMBUS_API_KEY"

POST /automations/webhook

Public webhook receiver — no API key required. Evaluates all enabled webhook automations and fires matching ones.

curl -X POST https://api.get-nimbus.com/automations/webhook \
-H "Content-Type: application/json" \
-d '{"action": "labeled", "label": {"name": "nimbus"}, "issue": {"title": "Fix login bug", "body": "..."}}'

Response:

{
"matched": 1,
"tasks_created": ["task-def456"]
}

If no automations match the payload, returns {"matched": 0, "tasks_created": []}.