API Reference
The Artemis REST API lets you programmatically manage robots, trigger training runs, push deployments, and retrieve telemetry data.
Base URL
https://api.kairo.dev/v1All API requests must be made over HTTPS. HTTP requests will be rejected.
Authentication
Authenticate by passing your API key in the Authorization header as a Bearer token:
curl https://api.kairo.dev/v1/robots \
-H "Authorization: Bearer kai_live_xxxxxxxxxxxx"API keys carry three permission scopes:
readRead robots, models, deployments, and telemetry.
writeCreate and update robots, trigger training, push deployments.
adminManage team members, billing, and delete resources.
Rate Limits
| Plan | Requests / min | Requests / day |
|---|---|---|
| Starter | 60 | 1,000 |
| Builder | 300 | 10,000 |
| Pro | Unlimited | Unlimited |
When rate limited, the API returns 429 Too Many Requests. The Retry-After header indicates when to retry.
Robots
Manage your robot fleet.
/robotsList all robots in your fleet.
/robotsRegister a new robot.
/robots/{id}Get a single robot by ID.
/robots/{id}Update robot name or metadata.
/robots/{id}Remove a robot from the fleet.
/robots/{id}/statusGet real-time status and telemetry.
Example — list all robots:
curl https://api.kairo.dev/v1/robots \
-H "Authorization: Bearer kai_live_xxxxxxxxxxxx"
# 200 OK
{
"data": [
{
"id": "rob_a1b2c3d4",
"name": "my-arm-01",
"type": "manipulator",
"status": "online",
"ros_distro": "humble",
"created_at": "2026-01-15T10:30:00Z"
}
],
"total": 1
}Models
Manage AI model training and versioning.
/modelsList all trained models.
/models/trainStart a new training run.
/models/{id}Get model details and metrics.
/models/{id}/runsList training run history for a model.
/models/{id}/exportExport model as a ROS 2 package.
/models/{id}Delete a model and its artifacts.
Example — start a training run:
curl -X POST https://api.kairo.dev/v1/models/train \
-H "Authorization: Bearer kai_live_xxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"dataset_id": "ds_xyz123",
"robot_id": "rob_a1b2c3d4",
"task": "manipulation",
"config": {
"epochs": 20,
"learning_rate": "auto"
}
}'
# 202 Accepted
{
"run_id": "run_789abc",
"status": "queued",
"estimated_duration_s": 240
}Deployments
Push models to robots and manage rollouts.
/deploymentsList all active deployments.
/deploymentsDeploy a model to a robot.
/deployments/{id}Get deployment status.
/deployments/{id}/rollbackRoll back to the previous model version.
/deployments/{id}Stop and remove a deployment.
Error Codes
| Code | Meaning |
|---|---|
| 400 | Bad Request — missing or invalid parameters. |
| 401 | Unauthorized — invalid or missing API key. |
| 403 | Forbidden — your key lacks the required scope. |
| 404 | Not Found — resource does not exist. |
| 409 | Conflict — e.g. a training run is already in progress. |
| 429 | Too Many Requests — rate limit exceeded. |
| 500 | Server Error — something went wrong on our end. |