Overview
The Cyberdesk API provides programmatic access to all platform features, enabling you to automate desktop tasks at scale. Whether you’re building custom integrations, managing fleets of machines, or orchestrating complex workflows, our API gives you full control.OpenAPI Specification
View the complete OpenAPI specification
Base URL
All API requests should be made to:Authentication
Most API endpoints require authentication using Bearer tokens. Include your API key in the Authorization header:/v1/health and /v1/health/db, do not require authentication.
Core Resources
The Cyberdesk API is organized around these main resources:Machines
Virtual or physical desktops connected via Cyberdriver
Workflows
Automation blueprints that define tasks to be executed
Runs
Instances of workflow executions on specific machines
Connections
Active connections between machines and Cyberdesk
Trajectories
Recorded sequences of actions for workflow replay
Quick Start with SDKs
While you can use the API directly, we recommend using our official SDKs for a better developer experience:TypeScript SDK
Type-safe client with full IntelliSense support
Python SDK
Async/sync client with comprehensive type hints
Rate Limits
Authenticated API requests are subject to rate limits. When rate limiting is enabled for your environment, responses include standard headers such asX-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset, and blocked requests return HTTP 429 Too Many Requests with a Retry-After header.
If you have concerns about rate limits or need higher limits for your specific use case, please contact our team and we’ll work with you to find a solution.
Public endpoints such as health checks are exempt from authentication and HTTP rate limiting.
Error Handling
The API uses standard HTTP status codes to indicate success or failure:| Status Code | Description |
|---|---|
| 200 | Success |
| 201 | Created |
| 400 | Bad Request - Invalid parameters |
| 401 | Unauthorized - Invalid or rejected credentials |
| 403 | Forbidden - Missing credentials |
| 404 | Not Found - Resource doesn’t exist |
| 429 | Too Many Requests - Rate limit exceeded |
| 500 | Internal Server Error |
detail array. Check the OpenAPI schema for the exact response model used by each endpoint.
Pagination
List endpoints support pagination usingskip and limit parameters:
Including Related Resources
Many endpoints support theinclude query parameter to fetch related resources in a single request, following the JSON:API pattern. This reduces the number of API calls needed to get complete data.
How It Works
When you use theinclude parameter, related resources are returned in a separate included array in the response. The original ID fields remain unchanged for backward compatibility.
Available Includes
| Resource | Includable Fields | Example |
|---|---|---|
| Run | workflow, machine, machine.pools | ?include=workflow,machine |
| Trajectory | workflow | ?include=workflow |
| Machine | pools | ?include=pools |
| Pool | machines | ?include=machines |
SDK Usage
- Python
- TypeScript
List Endpoints
When usinginclude on list endpoints, related resources from all items are deduplicated:
included array.
Including many relationships on large lists can impact performance. Use sparingly for list operations.
Next Steps
Explore Endpoints
Browse all available API endpoints in the sidebar
Get Your API Key
Sign in to get your API key from the dashboard
Join Discord
Get help from our community and team