Pre-release. HareBox is a working local build with no public service yet. Statuses on every feature say what runs today; speed and reliability figures are targets until measured. Status

API reference

Base URL: https://api.harebox.com/v1. A local build answers at http://127.0.0.1:8787/v1. The machine-readable form is openapi.yaml.

Conventions. State names are the same on every surface. Every error has code, message and, when one exists, fix. Every create accepts Idempotency-Key. Every list uses limit and cursor. Every stream resumes from its last event ID.

Account

Operation Route
Get the current identity GET /me
List organizations GET /orgs
Create an organization POST /orgs
Update organization settings PATCH /orgs/{org}
Set the active organization PATCH /orgs/active
List members GET /orgs/{org}/members
Invite a member POST /orgs/{org}/members
Change a member's role or caps PATCH /orgs/{org}/members/{member}
Remove a member DELETE /orgs/{org}/members/{member}
List projects GET /projects
Create a project POST /projects
Update a project PATCH /projects/{project}
Delete an empty project DELETE /projects/{project}
Register an agent without a pasted key POST /agent-registrations
Start a human claim of an agent account POST /agent-registrations/{registration}/claim
Get limits and what remains GET /limits

Catalog

Operation Route
Get the public rate card GET /rates
Show the EU region GET /regions
List harnesses and models GET /harnesses

Data

Operation Route
Get the retention policy GET /account/data-retention
Update the retention policy PATCH /account/data-retention
Get a deletion operation GET /deletion-operations/{operation}
Get any long-running operation GET /operations/{operation}
Read the audit log GET /audit-log

Environments

Operation Route
List connected repositories GET /repos
Connect a repository POST /repos
List environments GET /environments
Create an environment POST /environments
Update an environment and make a new version PUT /environments/{environment}
Delete an environment DELETE /environments/{environment}
Move running sandboxes to a version POST /environments/{environment}/upgrade
Set a variable PUT /environments/{environment}/vars/{key}
Remove a variable DELETE /environments/{environment}/vars/{key}
Write a secret file PUT /environments/{environment}/secret-files
Remove a secret file DELETE /environments/{environment}/secret-files
Add a repository POST /environments/{environment}/repos
Remove a repository DELETE /environments/{environment}/repos/{repository}

Keys

Operation Route
List API keys GET /api-keys
Create a scoped API key POST /api-keys
Edit a key's name, scopes, IP allowlist or budget PATCH /api-keys/{key}
Revoke an API key DELETE /api-keys/{key}
Rotate an API key with an overlap window POST /api-keys/{key}/rotate
Get usage of an API key GET /api-keys/{key}/usage

Events

Operation Route
List webhooks GET /webhooks
Create a webhook POST /webhooks
Get a webhook GET /webhooks/{webhook}
Update a webhook PATCH /webhooks/{webhook}
Delete a webhook DELETE /webhooks/{webhook}
Rotate the signing secret with an overlap window POST /webhooks/{webhook}/rotate
List delivery attempts GET /webhooks/{webhook}/deliveries
Redeliver an event POST /webhooks/{webhook}/deliveries/{delivery}/redeliver
Send a signed test event POST /webhooks/{webhook}/test
List every event type and schema URL GET /event-types
Read account events with a cursor GET /events
Stream account events over SSE GET /events/stream
Get the OpenTelemetry export GET /telemetry
Set the OpenTelemetry export PUT /telemetry
Remove the OpenTelemetry export DELETE /telemetry

CI

Operation Route
Get CI status and connected accounts GET /ci
Connect a GitHub account or org POST /ci/connect
Set the policy for public repositories POST /ci/public
Get a CI job GET /ci/jobs/{job}
Read CI job logs GET /ci/jobs/{job}/logs

Credentials

Operation Route
List credential profiles GET /credential-profiles
Create a credential profile POST /credential-profiles
Rename a profile or make it the default PUT /credential-profiles/{profile}
Delete a credential profile DELETE /credential-profiles/{profile}
Set an API key PUT /credential-profiles/{profile}/keys/{credential}
Remove a credential DELETE /credential-profiles/{profile}/keys/{credential}
List accounts of a credential GET /credential-profiles/{profile}/accounts/{credential}
Add another key to a credential POST /credential-profiles/{profile}/accounts/{credential}
Switch to another account PUT /credential-profiles/{profile}/accounts/{credential}/{account}/active
Forget an account DELETE /credential-profiles/{profile}/accounts/{credential}/{account}
Set a custom API PUT /credential-profiles/{profile}/custom-apis/{name}
Remove a custom API DELETE /credential-profiles/{profile}/custom-apis/{name}
Get the credentials proxy GET /proxy
Configure the credentials proxy PUT /proxy
List secret-injection rules GET /proxy/rules
Add a rule binding a secret to host POST /proxy/rules
Remove a rule DELETE /proxy/rules/{rule}
List vault connections GET /vault-connections
Connect an external vault POST /vault-connections
Disconnect a vault DELETE /vault-connections/{vault}
Get AI usage GET /ai-usage
Get AI usage of a sandbox GET /sandboxes/{sandbox}/ai-usage
Block or allow AI access or set a budget PUT /sandboxes/{sandbox}/ai-access
Get the account secrets setup GET /secrets
Update the account secrets setup POST /secrets

Sandboxes

Operation Route
List sandboxes GET /sandboxes
Create a sandbox, optionally from a template, and optionally queue it POST /sandboxes
Create many sandboxes in one call POST /sandboxes/batch
Get a sandbox GET /sandboxes/{sandbox}
Update name, labels, deadline, sleep policy or subdomain PATCH /sandboxes/{sandbox}
Delete a sandbox and erase its data DELETE /sandboxes/{sandbox}
Sleep now and keep memory POST /sandboxes/{sandbox}/sleep
Wake a sleeping sandbox POST /sandboxes/{sandbox}/wake
Save the disk and release the machine POST /sandboxes/{sandbox}/stop
Get a stop GET /sandboxes/{sandbox}/stops/{stop}
Resume a stopped or failed sandbox POST /sandboxes/{sandbox}/resume
Fork a running or stopped sandbox POST /sandboxes/{sandbox}/fork
Change size live where possible POST /sandboxes/{sandbox}/resize
Restore to a point in time POST /sandboxes/{sandbox}/restore
Restart a machine that does not answer POST /sandboxes/{sandbox}/recover
Share with the organization POST /sandboxes/{sandbox}/share
Make private POST /sandboxes/{sandbox}/unshare
Get the exact bill of a sandbox GET /sandboxes/{sandbox}/usage
Get CPU GET /sandboxes/{sandbox}/metrics

Commands

Operation Route
Run a command: wait, stream or detach POST /sandboxes/{sandbox}/commands
List the command history GET /sandboxes/{sandbox}/commands
Get a command GET /sandboxes/{sandbox}/commands/{command}
Signal or stop a command DELETE /sandboxes/{sandbox}/commands/{command}
Attach to a command over SSE GET /sandboxes/{sandbox}/commands/{command}/stream
Read command logs GET /sandboxes/{sandbox}/commands/{command}/logs
List processes GET /sandboxes/{sandbox}/processes

Files

Operation Route
Read a file GET /sandboxes/{sandbox}/files
Write a file PUT /sandboxes/{sandbox}/files
Delete a file DELETE /sandboxes/{sandbox}/files
List a directory GET /sandboxes/{sandbox}/files/list
Get file details GET /sandboxes/{sandbox}/files/info
Search files by name GET /sandboxes/{sandbox}/files/search
Find text in files GET /sandboxes/{sandbox}/files/find
Create a directory POST /sandboxes/{sandbox}/files/folder
Move or rename POST /sandboxes/{sandbox}/files/move
Set permissions POST /sandboxes/{sandbox}/files/permissions
Replace text in files POST /sandboxes/{sandbox}/files/replace
Get a signed download URL POST /sandboxes/{sandbox}/files/download-url
Get a signed upload URL POST /sandboxes/{sandbox}/files/upload-url
Download a file or folder as an archive GET /sandboxes/{sandbox}/artifacts

Agents

Operation Route
Prompt a harness POST /sandboxes/{sandbox}/prompts
Get a prompt GET /sandboxes/{sandbox}/prompts/{prompt}
List conversations GET /sandboxes/{sandbox}/conversations
Read sandbox and agent events with a cursor GET /sandboxes/{sandbox}/events
Stream sandbox and agent events over SSE or WebSocket GET /sandboxes/{sandbox}/events/stream
Steer a running turn POST /sandboxes/{sandbox}/steer
Interrupt running work POST /sandboxes/{sandbox}/interrupt

Access

Operation Route
Get a desktop stream URL POST /sandboxes/{sandbox}/desktop
Start a screen recording POST /sandboxes/{sandbox}/recordings
List recordings GET /sandboxes/{sandbox}/recordings
Stop a recording DELETE /sandboxes/{sandbox}/recordings/{recording}
Screenshot, click, type or scroll POST /sandboxes/{sandbox}/computer
List public endpoints GET /sandboxes/{sandbox}/endpoints
Expose a port POST /sandboxes/{sandbox}/endpoints
Change auth, domain or title PATCH /sandboxes/{sandbox}/endpoints/{endpoint}
Stop exposing a port DELETE /sandboxes/{sandbox}/endpoints/{endpoint}
Rotate a URL token atomically POST /sandboxes/{sandbox}/endpoints/{endpoint}/rotate
Authorize an SSH key POST /sandboxes/{sandbox}/ssh-keys
Open a byte stream to a port inside a sandbox, over WebSocket: what SSH, SCP and port forwarding use GET /sandboxes/{sandbox}/tunnel

Network

Operation Route
Get host-enforced firewall rules GET /sandboxes/{sandbox}/firewall
Replace firewall rules PUT /sandboxes/{sandbox}/firewall
List reserved IPs GET /static-ips
Reserve an IP POST /static-ips
Attach an IP to a sandbox PUT /static-ips/{ip}/attachment
Release an IP DELETE /static-ips/{ip}
List custom domains GET /domains
Add a custom domain POST /domains
Remove a custom domain DELETE /domains/{domain}
List private meshes GET /meshes
Create a private mesh POST /meshes
Delete a private mesh DELETE /meshes/{mesh}

Snapshots

Operation Route
List snapshots GET /snapshots
List snapshots of a sandbox GET /sandboxes/{sandbox}/snapshots
Take a disk or memory snapshot now POST /sandboxes/{sandbox}/snapshots
Delete all snapshots of a sandbox DELETE /sandboxes/{sandbox}/snapshots
Get the latest snapshot GET /sandboxes/{sandbox}/snapshots/latest
Delete a snapshot DELETE /snapshots/{snapshot}
Browse a snapshot GET /snapshots/{snapshot}/tree
Download a file or folder from a snapshot GET /snapshots/{snapshot}/files
Get a signed archive URL GET /snapshots/{snapshot}/download

Templates

Operation Route
List templates GET /templates
Save a sandbox as a new template version POST /templates
Get a template and its versions GET /templates/{template}
Delete a template or a version DELETE /templates/{template}
List share codes GET /templates/{template}/shares
Create a share code POST /templates/{template}/shares
Revoke a share code DELETE /templates/{template}/shares/{share}

Fleets

Operation Route
List fleets GET /fleets
Create a fleet POST /fleets
Get a fleet GET /fleets/{fleet}
Change a fleet or scale it PATCH /fleets/{fleet}
Delete a fleet and its sandboxes DELETE /fleets/{fleet}
Send one prompt to every member POST /fleets/{fleet}/prompts
List wake timers and schedules GET /schedules
Create a wake timer or schedule POST /schedules
Delete a schedule DELETE /schedules/{schedule}

Billing

Operation Route
Get the plan GET /billing/plan
Change the plan PUT /billing/plan
Get the wallet GET /billing/wallet
Quote a top-up with its bonus GET /billing/wallet/quote
Add money to the wallet POST /billing/wallet/payments
Set auto top-up PUT /billing/wallet/auto-top-up
Add a payment card POST /billing/cards
List invoices GET /billing/invoices
Get usage by project, fleet, label, member or size GET /usage
Export usage per sandbox, with labels, as CSV or JSON Lines GET /usage/export
List budgets GET /budgets
Create a hard or soft dollar budget POST /budgets
Change a budget PATCH /budgets/{budget}
Delete a budget DELETE /budgets/{budget}
List reservations GET /reservations
Commit to capacity for one year POST /reservations

Co-pilot

Operation Route
Forecast this month GET /copilot/forecast
List savings recommendations with evidence GET /copilot/recommendations
Apply a recommendation POST /copilot/recommendations/{recommendation}/apply

View as Markdownllms.txt for agents