Availability
The ComputeCubed public API is currently available only to selected accounts. When it is enabled for your account, API appears in the Console navigation. The same account, Terms acceptance, ownership rules, listing availability, capacity checks, and billing rules apply whether an action comes from the Console or the API.
The current API version uses paths below /api/v1. Integrations should use only operations shown in the API playground or its downloadable OpenAPI document. Console and internal service routes are not part of the public contract.
Create and protect a key
Open Console → API, enter a descriptive name, choose Read only or Read and write, and select an expiry. The complete key is displayed once. Copy it into your secret manager before dismissing the message; ComputeCubed cannot recover it later.
Use a separate key for each integration. Start with read-only access when the integration only inspects listings, rentals, balances, or transactions. Treat a read/write key like an account password: do not place it in source control, browser URLs, screenshots, support messages, or container images.
Make a request
Send the key in the X-API-Key header. Set COMPUTECUBED_API_URL to the API server URL shown in your Console playground, without a trailing slash. For example, list current node marketplace listings:
curl --fail-with-body \
-H "Accept: application/json" \
-H "X-API-Key: $COMPUTECUBED_API_KEY" \
"$COMPUTECUBED_API_URL/api/v1/marketplace/nodes"Marketplace list responses contain items, next_cursor, observed_at, and refresh_after_seconds. Request up to 50 items with limit; pass the returned cursor as cursor with the same search and vendor filters to continue. A null cursor means the end of the results. A malformed cursor returns 422. Capacity is a recent observation and is checked again when you start a rental.
Never put the key in a query parameter. A read-only key receives 403 if it attempts a create, update, or delete operation. An expired, revoked, unknown, or malformed key receives 401.
Quote and accept a rental
First send the selected listing, rental mode, resources and workspace image where applicable to POST /api/v1/rentals/quote. The response gives the complete renter hourly price and initial reservation in euro cents, the contract end date, any minimum-time terms, and a create_payload. The renter price includes that listing’s marketplace markup; host_hourly_price_minor records the host’s earnings rate separately.
Review these terms before sending the returned create_payload unchanged to POST /api/v1/rentals. It includes the required quote_id and listing version. A quote is valid for five minutes and does not reserve capacity or debit Rental Balance. If the quote expires, pricing changes or capacity becomes unavailable, review a fresh quote before trying again. A 409 never authorizes substituting a different price.
For rental or cluster creation, send a new Idempotency-Key header for each logical request and reuse it with the same payload after a timeout. The response includes an operation_id; read /api/v1/operations/{operation_id} to check progress. Reusing a key with a different payload returns 409. Successful retries return the original result. Accepted rental prices and commitment terms stay fixed, including recurring periods, even when the listing changes later.
Balances and rental prices use euros. A successful top-up of at least €10 credits its full amount to Rental Balance. Minimum-time uptime refunds return funds to that application balance. See Billing and payments for metering, rounding and payout details.
Use the playground
The API page includes a themed interactive reference generated from the same OpenAPI contract as the service. Select Authentication, enter a key, choose an operation, fill in its parameters, and use Test Request. The reference also provides curl and language-specific request examples.
The playground follows the Console light or dark theme. ComputeCubed does not persist keys entered into it. Clear the authentication field when using a shared browser and revoke a key immediately if you think it was exposed.
Responses and limits
Public API errors contain a stable error code, a human-readable message, and a request ID. Include the request ID—not the key—when asking support to investigate a failed call.
Authenticated responses include RateLimit-Limit and RateLimit-Remaining. When the per-key limit is exceeded, the API returns 429 with Retry-After. If rate limiting is temporarily unavailable, the API returns 503 with Retry-After. Wait for the requested interval before retrying. List endpoints that expose page and page_size should be traversed using those fields rather than assuming all records arrive in one response.
Rotate or revoke
Create the replacement key first, update the integration, verify a successful request, and then revoke the old key. Revocation and removal of API access from the account take effect immediately. The Console retains non-secret key metadata such as its name, prefix, permission, expiry, and last-use time so you can identify stale integrations safely.