Automations
Create an automation
Create an API-managed automation.
TypeScript SDKThe npm client, generated from the API spec.Python SDKThe PyPI client, sync and async.
| Method | Path | Required permissions |
|---|---|---|
| POST | /v1/automations | write:configs |
Token access
- API key
- Supported.
- CLI user token
- Supported.
- Sandbox token
- Unavailable. Not supported by sandbox tokens, even with permissions.ellipsis enabled.
Higher permission levels include lower levels: read < write < delete.
Grant match patterns can further restrict access to individual resources.
It is live immediately.
curl -X POST "https://api.ellipsis.dev/v1/automations" \
-H "Authorization: Bearer $ELLIPSIS_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"automation": {
"ellipsis": {
"name": "check-tests",
"version": "v1",
"enabled": true,
"metadata": {
"labels": [],
"annotations": {}
}
},
"session": {
"harness": {
"type": "claude_code"
},
"instructions": "Run the tests and report failures.",
"environment": "api-environment",
"budget": {
"session": 3
},
"permissions": {
"github": {},
"ellipsis": true
},
"skills": []
}
}
}'import os
from ellipsis import Ellipsis
from ellipsis import models
client = Ellipsis(api_key=os.environ["ELLIPSIS_API_TOKEN"])
request = models.CreateAutomationRequest.model_validate(
{
"automation": {
"ellipsis": {
"name": "check-tests",
"version": "v1",
"enabled": True,
"metadata": {
"labels": [],
"annotations": {}
}
},
"session": {
"harness": {
"type": "claude_code"
},
"instructions": "Run the tests and report failures.",
"environment": "api-environment",
"budget": {
"session": 3
},
"permissions": {
"github": {},
"ellipsis": True
},
"skills": []
}
}
}
)
result = client.automations.create(request.automation)
print(result)import { Ellipsis } from '@ellipsis-dev/sdk';
const client = new Ellipsis({
apiKey: process.env.ELLIPSIS_API_TOKEN!,
});
const request: Parameters<typeof client.automations.create>[0] = {
"automation": {
"ellipsis": {
"name": "check-tests",
"version": "v1",
"enabled": true,
"metadata": {
"labels": [],
"annotations": {}
}
},
"session": {
"harness": {
"type": "claude_code"
},
"instructions": "Run the tests and report failures.",
"environment": "api-environment",
"budget": {
"session": 3
},
"permissions": {
"github": {},
"ellipsis": true
},
"skills": []
}
}
};
const result = await client.automations.create(request);
console.log(result);Request
Example request body
{
}
Body parameters
automationAutomationConfig-Inputrequired
The automation's definition, in the same schema as a YAML file under .ellipsis/.
Response
Example response, 201
{
}