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:
https://api.cyberdesk.io

Authentication

All API endpoints require authentication using Bearer tokens. Include your API key in the Authorization header:
Authorization: Bearer YOUR_API_KEY
You can find your API key in the Cyberdesk Dashboard under Settings.
Keep your API key secure and never expose it in client-side code or public repositories.

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:

Rate Limits

Our rate limiting system is currently in development. For now, all users are issued a standard, reasonable rate limit that should accommodate most use cases without any issues. 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.
Rate limit headers will be included in responses once the system is fully implemented.

Error Handling

The API uses standard HTTP status codes to indicate success or failure:
Status CodeDescription
200Success
201Created
400Bad Request - Invalid parameters
401Unauthorized - Invalid API key
404Not Found - Resource doesn’t exist
429Too Many Requests - Rate limit exceeded
500Internal Server Error
Error responses include a JSON body with details:
{
  "detail": "Validation error",
  "errors": {
    "field_name": ["Error message"]
  }
}

Pagination

List endpoints support pagination using skip and limit parameters:
GET /v1/runs?skip=20&limit=10
Paginated responses follow this structure:
{
  "items": [...],
  "total": 100,
  "skip": 20,
  "limit": 10
}

Next Steps