Skip to main content
Cyberdesk uses usage-based billing to charge for automation runs. This page explains how billing works, what counts as billable usage, and how edge cases are handled.

Step-Based Billing

Step-based billing is the primary billing model. You are charged based on the number of steps executed during your runs. The specific rates per agentic step and cached step are determined by your contract with Cyberdesk.

What is a Step?

There are two types of billable steps:

Agentic Steps

Each time the AI agent makes a decision and takes action. This includes:
  • Every agent iteration (reasoning + tool calls)
  • Each focused action execution
  • Each extraction prompt (after any LLM retries)
Note: A batch of tool calls in a single agent turn counts as one agentic step.

Cached Steps

Each time a previously-learned action is replayed from cache (trajectory replay). This includes:
  • Every step executed from a matched trajectory
  • Steps with skip_cache_detection enabled or disabled
Note: Cache detection settings don’t affect billing—you’re billed the same whether a step uses cache detection or not. Cached steps are faster and cheaper than agentic steps.

Billing by Run Outcome

What gets billed depends on how your run completes:
OutcomeSteps Billed?Description
Success✅ YesRun completed successfully
User Task Failed✅ YesAgent explicitly failed the task per your instructions
Cancelled✅ YesYou cancelled the run mid-execution
Infrastructure Failure❌ NoCyberdesk system error (e.g., worker crash, connection lost)
Infrastructure failures are never billed. If our systems fail (worker crashes, connection timeouts, etc.), you won’t be charged for any usage from that run attempt.

Understanding “User Task Failed” vs “Infrastructure Failure”

When a run ends in error, the billing outcome depends on why it failed:
The agent explicitly called declare_task_failed because:
  • The task was impossible to complete (e.g., “file not found”)
  • The application was in an unexpected state
  • The user’s instructions led to a dead end
This is billable because the agent did the work of determining the task couldn’t be completed.
The run failed due to Cyberdesk system issues:
  • Cyberdriver became unresponsive after multiple retries
  • Worker crashed or lost connection
  • Internal service errors
You are never charged when our infrastructure fails.

Run Retries

If you retry a failed run, billing accumulates across attempts:
Attempt 1: 10 agentic steps, 5 cached steps (Success → billed)
Attempt 2: 3 agentic steps, 0 cached steps (Infra Failure → not billed)
Attempt 3: 7 agentic steps, 2 cached steps (Success → billed)
────────────────────────────────────────────────────────────────
Total billed: 17 agentic steps, 7 cached steps
Each attempt’s usage is tracked separately, and the totals are cumulative. You can see per-attempt breakdowns in the run’s usage_metadata.

Viewing Usage Data

You can view your usage data in multiple ways through the Cyberdesk Dashboard.

Individual Run Usage

On any run’s detail page, scroll down to the Run Message History section. You’ll see a Usage Data Summary card that displays:
  • Total agentic steps billed
  • Total cached steps billed
  • Billing outcome status (success, cancelled, etc.)
Click View Details to see a full breakdown including per-attempt usage for retried runs.

Aggregated Usage Across Runs

On the Runs table page, select multiple runs using the checkboxes. The toolbar will automatically display the accumulated totals:
  • Total agentic steps billed across selected runs
  • Total cached steps billed across selected runs
Use the Created Date filter to narrow down runs to a specific time period, and expand Rows per page to see more runs at once.

API Access

Every run includes a usage_metadata field with detailed billing information:
{
  "billing_outcome": "success",
  "billing_reason": "Run successful - fully billed",
  "total_agentic_steps_billed": 15,
  "total_cached_steps_billed": 8,
  "total_agentic_steps": 15,
  "total_cached_steps": 8
}
For retried runs, you’ll also see individual_tries_metadata with per-attempt details.

Coming Soon

A more robust usage dashboard with historical trends, cost projections, and detailed analytics is coming soon!
For early 2025 customers: Billed usage data will only appear if you have worked with the Cyberdesk team to migrate your current Stripe invoice to usage-based billing pricing. Please contact us if you need help with the migration.

FAQ

You’ll be billed for any steps that were executed before cancellation.
No. If an LLM call fails and retries internally, it still counts as one agentic step. You’re only charged once the step completes (successfully or not).
Yes. Cached steps replay previously-learned actions without invoking the AI, making them faster and cheaper.
Visit the Cyberdesk Dashboard to view your usage. You can see individual run usage in the run detail page, or select multiple runs in the runs table to see aggregated totals.

Run-Based Billing (Legacy)

Run-based billing is a legacy model. New customers use step-based billing.
In the legacy model, you are charged a flat fee per completed run, regardless of the number of steps.

How It Works

A run_completed billing event is recorded when:
  • A run completes with status success
  • A run completes with status error due to explicit task failure (user-initiated via declare_task_failed)
A run_completed event is not recorded when:
  • The run is cancelled
  • The run fails due to infrastructure issues

Legacy Usage Metadata

Legacy runs include additional fields in usage_metadata:
{
  "billing_outcome": "success",
  "billing_reason": "Run successful - fully billed",
  "total_run_completed_billed": 1,
  "total_agentic_steps_billed": 15,
  "total_cached_steps_billed": 8,
  "total_agentic_steps": 15,
  "total_cached_steps": 8
}
The total_run_completed_billed field indicates whether the run completion was billed (1) or not (0).