Skip to content

Method reference

Every route of the node’s API is a method of a group on Client: client.<group>.<method>(...). Arguments are keyword-only; a method returns the generated model of the answer (client.json.<group>.<method>(...) returns the node’s JSON instead). How the arguments, step-ups and answers work is in Using the client.

In the tables, passkey marks a method that answers 412 CONFIRM_REQUIRED (with confirm=, or the client’s use_passkey), and operator one that answers 428 OPERATOR_SIGNATURE_REQUIRED (with operator_proof=, or the client’s use_operator_key / use_operator_signer). Refusals are the error codes the document lists for the method beyond the ones every call can get (UNAUTHENTICATED, FORBIDDEN, NOT_FOUND, …): see errors.

Generated from core f9f06c789.

Method Route What it does
abi(app) GET /apps/{app}/abi An app’s ABI
access(app, access) POST /apps/{app}/access Set who may reach an app
attestation(app, nonce) GET /apps/{app}/attestation Every replica’s receipt-key attestation
blob_delete(app, id) DELETE /apps/{app}/blobs/{id} Forget a blob
blob_download(app, id, grant=…) GET /apps/{app}/blobs/{id} Download a blob
blob_info(app, id) GET /apps/{app}/blobs/{id}/info A blob’s size. Refusals: 409 NOT_SUPPORTED
blob_list(app) GET /apps/{app}/blobs List an app’s blobs
blob_revoke(app, id) POST /apps/{app}/blobs/{id}/revoke Invalidate a blob’s grants
blob_upload(app, sealed=…, body, content_type='application/octet-stream') POST /apps/{app}/blobs Upload a blob. Refusals: 400 USE_FILES_API, 429 QUOTA_EXCEEDED
call(app, method, args=…, idempotency_key=…, confirm=None) POST /apps/{app}/intents Call a method. passkey (the method is a confirm method of the app’s ABI). Refusals: 409 RELEASE_DEADLINE, 413 ARGS_TOO_LARGE, 422 APP_ERROR, 422 TRAP, 429 QUOTA_EXCEEDED, 503 TIMEOUT
create(name=…, bundle=…, package=…, version=…, service=…, org=…, access=…, init_args=…, metadata=…, deployment=…) POST /apps Create an app instance. Refusals: 400 AMBIGUOUS_COMPUTE, 400 NOT_OFFERED, 400 NO_SUCH_SERVICE, 400 VERSION_REQUIRED, 409 RELEASE_DEADLINE, 409 RUNTIME_TOO_OLD, 422 INIT_FAILED, 429 QUOTA_EXCEEDED
delete(app) DELETE /apps/{app} Delete an app
exports_export(app, id, recipient) POST /apps/{app}/files/{id}/export Export a sealed file’s key. Refusals: 400 BAD_RECIPIENT, 429 TOO_MANY_EXPORTS
exports_segment(app, id, k) GET /apps/{app}/files/{id}/segments/{k} One segment of a sealed file. Refusals: 404 NO_SUCH_SEGMENT
file_info(app, id) GET /apps/{app}/files/{id} One sealed file
files_list(app) GET /apps/{app}/files List an app’s sealed files
files_upload(app, body) POST /apps/{app}/files Upload a sealed file. Refusals: 429 QUOTA_EXCEEDED
get(app) GET /apps/{app} One app
list(package=…, bundle=…) GET /apps Apps the caller reaches
metadata(app, metadata) POST /apps/{app}/metadata Set an app’s metadata
method(app, method, args=…, idempotency_key=…, consistency=…, min_index=…, confirm=None) POST /apps/{app}/methods/{method} Call a method by its path. passkey (the method is a confirm method of the app’s ABI). Refusals: 400 RESERVED_METHOD, 409 RELEASE_DEADLINE, 413 ARGS_TOO_LARGE, 422 APP_ERROR, 422 TRAP, 429 QUOTA_EXCEEDED, 503 NOT_CAUGHT_UP, 503 TIMEOUT
move(app, to_org, bring_members=…, confirm=None) POST /apps/{app}/move Move an app to another organization. passkey. Refusals: 409 FEATURE_NOT_ACTIVE
openapi(app) GET /apps/{app}/openapi.json An app’s OpenAPI document. Refusals: 410 UNSUPPORTED_ENGINE, 422 BAD_ABI
pipeline_receipt_receipt(app, run) GET /apps/{app}/pipeline-runs/{run}/receipt A pipeline run’s receipt. Refusals: 409 RUN_NOT_ENDED
pipelines_cancel(app, run) POST /apps/{app}/pipeline-runs/{run}/cancel Cancel a pipeline run
pipelines_estimate_run(app, name, inputs=…, counts=…, params=…) POST /apps/{app}/pipelines/{name}/estimate Estimate a pipeline run. Refusals: 400 BAD_INPUTS, 400 BAD_PARAMS, 404 NO_SUCH_PIPELINE
pipelines_get(app, run) GET /apps/{app}/pipeline-runs/{run} One pipeline run
pipelines_list(app, limit=…) GET /apps/{app}/pipeline-runs An app’s pipeline runs. Refusals: 400 BAD_LIMIT
pipelines_retry(app, run, limits=…, max_cost=…) POST /apps/{app}/pipeline-runs/{run}/retry Retry a pipeline run. Refusals: 400 BAD_LIMITS, 400 BAD_MAX_COST, 400 LIMIT_EXCEEDS_CAP, 409 CLUSTER_NOT_UPGRADED, 409 NO_PRICE_TABLE, 409 STILL_RUNNING, 410 OUTPUT_EXPIRED, 429 TOO_MANY_PIPELINE_RUNS
pipelines_start(app, name, inputs=…, params=…, max_cost=…) POST /apps/{app}/pipelines/{name}/runs Start a pipeline run. Refusals: 400 BAD_INPUTS, 400 BAD_MAX_COST, 400 BAD_PARAMS, 404 NO_SUCH_PIPELINE, 409 CLUSTER_NOT_UPGRADED, 409 NO_PRICE_TABLE, 410 OUTPUT_EXPIRED, 422 PIPELINES_NEED_ONE_SERVICE, 429 TOO_MANY_PIPELINE_RUNS
pipelines_validate(source, package=…, version=…) POST /pipelines/validate Validate a pipeline. Refusals: 400 BAD_RELEASE
presence_get(app) GET /apps/{app}/presence Who is present
presence_publish(app, seq, state=…) POST /apps/{app}/presence Publish presence. Refusals: 400 BAD_STATE
run(app, run) GET /apps/{app}/runs/{run} One compute run
run_logs(app, run) GET /apps/{app}/runs/{run}/logs A compute run’s attempt logs
runs(app, limit=…, before=…) GET /apps/{app}/runs An app’s compute runs. Refusals: 400 BAD_CURSOR, 400 BAD_LIMIT
storage(app) GET /apps/{app}/storage What an app stores
transfer(app, to, confirm=None) POST /apps/{app}/transfer Hand an app to another account. passkey
upgrade(app, bundle=…, package=…, version=…, service=…, migrate=…, confirm=None) POST /apps/{app}/upgrade Upgrade an app instance. passkey. Refusals: 400 AMBIGUOUS_COMPUTE, 400 BAD_BUNDLE, 400 VERSION_REQUIRED, 409 CONFLICT, 409 RELEASE_DEADLINE, 409 RUNTIME_TOO_OLD, 422 UPGRADE_FAILED
upload_abort(app, upload) DELETE /apps/{app}/files/uploads/{upload} Abort an upload
upload_begin(app, size) POST /apps/{app}/files/uploads Begin a file upload. Refusals: 429 QUOTA_EXCEEDED
upload_complete(app, upload) POST /apps/{app}/files/uploads/{upload}/complete Commit an upload. Refusals: 409 UPLOAD_INCOMPLETE
upload_part(app, upload, k, body) PUT /apps/{app}/files/uploads/{upload}/parts/{k} Send one part. Refusals: 400 BAD_PART, 409 PART_CONFLICT, 409 PART_OUT_OF_ORDER, 503 FILES_UNAVAILABLE
upload_status(app, upload) GET /apps/{app}/files/uploads/{upload} Where an upload is
usage(app) GET /apps/{app}/usage An app’s runs per day
view(app, method, args=…, consistency=…, min_index=…) POST /apps/{app}/views Read with a view method. Refusals: 422 APP_ERROR, 422 TRAP, 503 NOT_CAUGHT_UP, 503 TIMEOUT
xcalls(app) GET /apps/{app}/xcalls An app’s cross-app calls
Method Route What it does
account_apps(after=…, limit=…) GET /auth/apps The account’s own apps
account_backup_key() GET /auth/backup-key The account’s backup key
account_proof_prove(nonce, audience) POST /auth/account-proof Prove the account to another party. Refusals: 400 BAD_AUDIENCE, 400 BAD_NONCE
account_recovery_begin(code) POST /auth/recovery/begin Start an account recovery
account_recovery_cancel(confirm=None) POST /auth/recovery/cancel Cancel an account recovery. passkey
account_recovery_finish(account_id=…, confirm=None) POST /auth/recovery/finish Finish an account recovery. passkey. Refusals: 409 RECOVERY_NOT_READY
account_recovery_start(challenge_id, code, registration) POST /auth/recovery/start Spend the recovery code. Refusals: 400 BAD_REGISTRATION, 409 RECOVERY_PENDING
account_set_backup_key(public_key, confirm=None) POST /auth/backup-key Set the account’s backup key. passkey. Refusals: 400 BAD_BACKUP_KEY, 409 FEATURE_NOT_ACTIVE
activity_list(after=…) GET /auth/activity What the account’s passkeys did
alias_delete(alias) DELETE /auth/aliases/{alias} Remove an alias
alias_get(alias) GET /auth/aliases/{alias} Resolve an alias
alias_list() GET /auth/aliases The account’s aliases
alias_set(alias, app) PUT /auth/aliases/{alias} Set an alias
apikey_create(label=…, apps=…, methods=…, read_only=…, allow_confirm=…, ttl_secs=…, upgrades=…, confirm=None) POST /auth/apikeys Make an API key. passkey. Refusals: 400 BAD_UPGRADE_KEY, 429 QUOTA_EXCEEDED
apikey_list() GET /auth/apikeys The account’s API keys
apikey_revoke(key, confirm=None) DELETE /auth/apikeys/{key} Revoke an API key. passkey
login_begin(origin=…) POST /auth/passkey/login/begin Start a sign-in
login_finish(challenge_id, assertion) POST /auth/passkey/login/finish Finish a sign-in. Refusals: 401 PASSKEY_UNKNOWN_HERE
logout() POST /auth/logout End this session
logout_all() POST /auth/logout-all End every session of the account
me() GET /auth/me The caller’s account
passkey_add_begin() POST /auth/passkeys/add/begin Start adding a passkey
passkey_add_finish(challenge_id, registration, confirm=None) POST /auth/passkeys/add/finish Finish adding a passkey. passkey. Refusals: 400 BAD_REGISTRATION
passkey_label(cred, label) POST /auth/passkeys/{cred} Name a passkey
passkey_remove(cred, confirm=None) DELETE /auth/passkeys/{cred} Remove a passkey. passkey
recovery_create(confirm=None) POST /auth/recovery Make a recovery code. passkey
recovery_remove(confirm=None) DELETE /auth/recovery Remove the recovery code. passkey
refresh(refresh_token) POST /auth/refresh Refresh a session
register_begin(name=…, origin=…, invite=…) POST /auth/passkey/register/begin Start a sign-up. Refusals: 403 SIGN_UP_REFUSED
register_finish(challenge_id, registration, invite=…, confirm=None) POST /auth/passkey/register/finish Finish a sign-up. passkey. Refusals: 400 BAD_REGISTRATION, 401 PASSKEY_UNKNOWN_HERE, 403 SIGN_UP_REFUSED
session_revoke(session) DELETE /auth/sessions/{session} End one session
sessions_list() GET /auth/sessions The account’s live sessions
usage() GET /auth/usage The account’s usage against its quotas
Method Route What it does
page_create(body) POST /consent/requests Ask the account’s owner to approve
page_result(request) GET /consent/{request}/result What became of a consent request
Method Route What it does
create(name, owner, confirm=None) POST /deployments Create a deployment. passkey
delete(id, confirm=None) DELETE /deployments/{id} Delete a deployment. passkey
deployer_grant(deployer, until=…, confirm=None) POST /deployers Grant a deployer. passkey
deployer_list() GET /deployers The deployers
deployer_revoke(key, confirm=None) DELETE /deployers/{key} Revoke a deployer. passkey
get(id) GET /deployments/{id} One deployment
list() GET /deployments Deployments
offer(id, app, package, version, confirm=None) POST /deployments/{id}/apps Offer a release in a deployment. passkey
orgs(id) GET /deployments/{id}/orgs The organizations a deployment serves
sign_up_invite_create(uses=…, ttl_secs=…, confirm=None) POST /sign-up/invites Issue a cluster sign-up invite. passkey
sign_up_invite_list() GET /sign-up/invites Cluster sign-up invites
sign_up_invite_revoke(key, confirm=None) DELETE /sign-up/invites/{key} Withdraw a cluster sign-up invite. passkey
sign_up_public() GET /sign-up The sign-up policy
sign_up_set(policy, confirm=None) POST /sign-up Set the sign-up policy. passkey
withdraw(id, app, confirm=None) DELETE /deployments/{id}/apps/{app} Withdraw an offer. passkey
Method Route What it does
apps(after=…, limit=…) GET /ops/apps What each app runs
backup(all_=…) POST /ops/backup Snapshot the apps this node leads
backup_key() GET /ops/backup-key The operator’s backup key
cluster() GET /ops/cluster The cluster’s identity
cluster_owner(owner, operator_proof=None) POST /ops/cluster-owner Name the cluster’s owner. operator. Refusals: 409 CONFLICT
deployer_grant(deployer, until=…, operator_proof=None) POST /ops/deployers Grant a deployer. operator
deployer_revoke_delete(key, operator_proof=None) DELETE /ops/deployers/{key} Revoke a deployer. operator
deployer_revoke_post(key, operator_proof=None) POST /ops/deployers/{key}/revoke Revoke a deployer (POST). operator
deployments_granted(operator_proof=None) POST /ops/deployments/granted Require deployer grants. operator. Refusals: 409 CONFLICT
job_node_attestation(id) GET /ops/job-nodes/{id}/attestation Whether the cluster accepts a job node
metrics() GET /ops/metrics Prometheus metrics
org_upgrade(org, package, version, team=…, cascade=…, migrate=…, operator_proof=None) POST /ops/orgs/{org}/upgrade An operator’s upgrade run. operator
orgs(after=…, limit=…) GET /ops/orgs Each organization’s approved releases
outbound(package, prefixes=…, replace=…, operator_proof=None) POST /ops/outbound Approve outbound prefixes. operator
package_install(package, version) POST /ops/packages/install Install a release from the registry as the operator. Refusals: 400 BAD_BUNDLE, 400 COMPUTE_ABI_MISMATCH, 400 UNSUPPORTED_BUNDLE
package_list() GET /ops/packages The releases the operator installed
package_uninstall(package) DELETE /ops/packages/{package} Uninstall what the operator installed
package_upload(body) POST /ops/packages Install an uploaded release as the operator. Refusals: 400 BAD_BUNDLE, 400 BAD_PACKAGE, 400 COMPUTE_ABI_MISMATCH, 400 UNSUPPORTED_BUNDLE
package_version_uninstall(package, version) DELETE /ops/packages/{package}/{version} Uninstall one operator-installed version
placement() GET /ops/placement Where every app’s replicas are
pools_get() GET /ops/pools Compute pools
pools_set(pools, operator_proof=None) POST /ops/pools Set the compute pools. operator. Refusals: 409 POOL_IN_USE, 409 UPGRADE_PENDING
prices_get() GET /ops/prices The price table
prices_set(table, operator_proof=None) POST /ops/prices Set the price table. operator. Refusals: 400 BAD_PRICES, 409 PRICE_VERSION, 409 UPGRADE_PENDING
quotas_get() GET /ops/quotas The quotas
quotas_set(org=…, orgs=…, max_apps_per_account=…, max_bundle_bytes_per_account=…, max_api_keys_per_account=…, max_orgs_per_account=…, max_accounts=…, max_file_bytes_per_org=…, max_concurrent_runs_per_org=…, compute_fuel_per_org=…, max_fuel_per_developer_per_day=…, max_concurrent_runs=…, compute_fuel=…, max_file_bytes=…, operator_proof=None) POST /ops/quotas Change quotas. operator. Refusals: 400 UNKNOWN_QUOTA, 409 UPGRADE_PENDING
receipt_key(id) GET /ops/nodes/{id}/receipt-key A node’s receipt key
recover(system, code=…) POST /ops/recover Found the cluster again from its recovery disk. Refusals: 400 BAD_RECOVERY_FILE, 400 BAD_RECOVERY_KEY, 400 TOO_MANY_FILES, 400 UNATTESTED_RECOVERY_FILE, 409 NOT_RECOVERING, 409 OLD_CLUSTER_ANSWERS, 409 OTHER_DEPLOYMENT
recovery_files(holder=…) GET /ops/recovery-files The recovery files a node reads. Refusals: 409 NO_BACKUP_DIR
register_node(id, addr, zone=…, role=…, pool=…, operator_proof=None) POST /ops/nodes Register a node. operator. Refusals: 400 BAD_ADDRESS, 400 BAD_POOL, 400 NODE_HOLDS_CLUSTER, 400 POOL_FOR_JOB_NODES, 409 ADDRESS_TAKEN
release(version, approved=…, operator_proof=None) POST /ops/releases Approve a mero-tee release for every app. operator
release_deadline(version, after=…, operator_proof=None) POST /ops/releases/{version}/deadline Set a release deadline. operator
release_deadline_lift(version, operator_proof=None) DELETE /ops/releases/{version}/deadline Lift a release deadline. operator
remove_node(id, operator_proof=None) DELETE /ops/nodes/{id} Remove a node. operator. Refusals: 400 LAST_NODE
restore(app, backup=…, recovery=…, operator_proof=None) POST /ops/apps/{app}/restore Restore an app from its sealed backup. operator. Refusals: 400 BAD_BACKUP, 400 BAD_RECOVERY_FILE, 400 BAD_RECOVERY_KEY, 400 NOT_A_REPLICA_NODE, 400 UNATTESTED_RECOVERY_FILE, 404 BACKUP_NOT_FOUND, 409 BACKUP_FROM_NEWER_RELEASE, 409 BUNDLE_GONE, 409 MOVE_IN_PROGRESS, 409 NO_BACKUP_DIR, 409 RECOVERY_SEGMENTS_MISSING, 409 UNKNOWN_BACKUP_FORMAT, 409 UPGRADE_PENDING
served() GET /ops/served-origins Custom domains to serve
set_backup_key(public_key, operator_proof=None) POST /ops/backup-key Set the operator’s backup key. operator. Refusals: 400 BAD_BACKUP_KEY, 409 FEATURE_NOT_ACTIVE
set_replicas(app, replicas, operator_proof=None) POST /ops/apps/{app}/replicas Move an app’s replicas. operator. Refusals: 400 DUPLICATE_REPLICA, 400 JOB_NODE, 400 TOO_FEW, 400 UNKNOWN_NODE, 409 MOVE_IN_PROGRESS, 409 RUNTIME_TOO_OLD
sign_up_invite_create(token, uses=…, expires_at, operator_proof=None) POST /ops/sign-up/invites Issue a cluster sign-up invite. operator
sign_up_invite_list() GET /ops/sign-up/invites Cluster sign-up invites
sign_up_invite_revoke_delete(key, operator_proof=None) DELETE /ops/sign-up/invites/{key} Withdraw a cluster sign-up invite. operator
sign_up_invite_revoke_post(key, operator_proof=None) POST /ops/sign-up/invites/{key}/revoke Withdraw a cluster sign-up invite (POST). operator
sign_up_set(policy, operator_proof=None) POST /ops/sign-up Set the sign-up policy. operator
status() GET /ops/status The node and the cluster
upgrade(app, bundle=…, package=…, version=…, service=…, migrate=…, operator_proof=None) POST /ops/apps/{app}/upgrade Upgrade an app as the operator. operator. Refusals: 400 AMBIGUOUS_COMPUTE, 409 NOT_INSTALLED, 409 RELEASE_DEADLINE, 409 RUNTIME_TOO_OLD, 422 UPGRADE_FAILED
Method Route What it does
all_apps(org, account, all_apps, confirm=None) POST /orgs/{org}/all-apps Give a member every app added later. passkey. Refusals: 409 FEATURE_NOT_ACTIVE
app_team_list(org) GET /orgs/{org}/app-teams The organization’s app teams
app_teams_scope(org, apps=…, shared=…, confirm=None) POST /orgs/{org}/app-teams Give apps app teams, or open or close one. passkey. Refusals: 400 TOO_MANY_PACKAGES, 409 FEATURE_NOT_ACTIVE
apps(org, after=…, limit=…) GET /orgs/{org}/apps The organization’s apps
backup_key(org) GET /orgs/{org}/backup-key The organization’s backup key
capabilities(org, account=…, team=…, capabilities, confirm=None) POST /orgs/{org}/capabilities Set capabilities. passkey
create(name, recovery_key=…) POST /orgs Create an organization. Refusals: 429 QUOTA_EXCEEDED
delete(org, confirm=None) DELETE /orgs/{org} Delete an organization. passkey
get(org) GET /orgs/{org} One organization
invite_create(org, role, teams=…, ttl_secs=…, uses=…, all_apps=…, confirm=None) POST /orgs/{org}/invites Make an invite. passkey. Refusals: 409 FEATURE_NOT_ACTIVE
invite_list(org) GET /orgs/{org}/invites The organization’s invites
invite_redeem(token) POST /invites/{token}/redeem Join with an invite
invite_revoke(org, key, confirm=None) DELETE /orgs/{org}/invites/{key} Revoke an invite. passkey
member_metadata(org, account, metadata) POST /orgs/{org}/members/{account}/metadata Set a member’s metadata
member_remove_teams(org, account, teams, confirm=None) DELETE /orgs/{org}/members/{account}/teams Remove a member from several teams, or leave them. passkey. Refusals: 400 BAD_TEAMS, 409 FEATURE_NOT_ACTIVE
member_set_teams(org, account, teams, confirm=None) POST /orgs/{org}/members/{account}/teams Set a member’s rows in several teams. passkey. Refusals: 400 BAD_TEAMS, 409 FEATURE_NOT_ACTIVE
members(org, detail=…) GET /orgs/{org}/members Members’ lockout risk
metadata(org, metadata) POST /orgs/{org}/metadata Set an organization’s metadata
outbound_approval(org, package, prefixes=…, replace=…, confirm=None) POST /orgs/{org}/outbound Approve outbound prefixes for the organization’s apps. passkey
publisher(org, signer_id, public_key, signature, confirm=None) POST /orgs/{org}/publishers Bind a package signing key. passkey
publisher_upgrade(org, package, version, migrate=…, confirm=None) POST /orgs/{org}/packages/{package}/upgrade Upgrade every instance of a publisher’s package. passkey
recovery_cancel(org, confirm=None) POST /orgs/{org}/recovery/cancel Cancel an organization recovery. passkey
recovery_finish(org, confirm=None) POST /orgs/{org}/recovery/finish Finish an organization recovery. passkey. Refusals: 409 RECOVERY_NOT_READY
recovery_set(org, public_key=…, confirm=None) POST /orgs/{org}/recovery Set the organization’s recovery key. passkey. Refusals: 400 BAD_RECOVERY_KEY
recovery_start(org, nonce, signature) POST /orgs/{org}/recovery/start Start an organization recovery. Refusals: 403 WRONG_RECOVERY_KEY, 409 RECOVERY_PENDING
release_approval(org, version, approved=…, confirm=None) POST /orgs/{org}/releases Approve a mero-tee release for the organization’s apps. passkey
remove_member(org, account, confirm=None) DELETE /orgs/{org}/members/{account} Remove a member, or leave. passkey
rename(org, name, confirm=None) POST /orgs/{org}/name Rename an organization. passkey. Refusals: 409 FEATURE_NOT_ACTIVE
set_backup_key(org, public_key, confirm=None) POST /orgs/{org}/backup-key Set the organization’s backup key. passkey. Refusals: 400 BAD_BACKUP_KEY, 409 FEATURE_NOT_ACTIVE
set_member(org, account, role, confirm=None) POST /orgs/{org}/members Set a member’s role. passkey
team_create(org, name, parent=…, join) POST /orgs/{org}/teams Create a team
team_delete(org, team, confirm=None) DELETE /orgs/{org}/teams/{team} Delete a team. passkey
team_get(org, team) GET /orgs/{org}/teams/{team} One team
team_remove_member(org, team, account, confirm=None) DELETE /orgs/{org}/teams/{team}/members/{account} Remove a team member, or leave. passkey
team_set_member(org, team, account, lead=…, role=…, capabilities=…, confirm=None) POST /orgs/{org}/teams/{team}/members Add or change a team member. passkey
team_update(org, team, name=…, join=…, parent=…, metadata=…) POST /orgs/{org}/teams/{team} Update a team
upgrade(org, package, version, team=…, cascade=…, migrate=…, confirm=None) POST /orgs/{org}/upgrade Start an upgrade run. passkey
upgrade_retry(org, run, confirm=None, operator_proof=None) POST /orgs/{org}/upgrades/{run}/retry Retry an upgrade run’s failed apps. passkey, operator
upgrade_status(org, run) GET /orgs/{org}/upgrades/{run} An upgrade run’s progress
usage(org) GET /orgs/{org}/usage An organization’s usage
Method Route What it does
bundle_put(body) POST /bundles Upload a raw component. Refusals: 400 BAD_BUNDLE, 400 UNSUPPORTED_BUNDLE, 429 QUOTA_EXCEEDED
get(package) GET /packages/{package} One package
install(package, version) POST /packages/install Install a release from the registry. Refusals: 400 BAD_BUNDLE, 400 BAD_PACKAGE, 400 COMPUTE_ABI_MISMATCH, 400 NO_REGISTRY, 400 UNSUPPORTED_BUNDLE, 403 DEPLOY_NOT_GRANTED
list() GET /packages Installed packages
origins_add(package, origin, rp_id=…, served=…, confirm=None) POST /package-origins/{package} Register a frontend origin. passkey. Refusals: 400 BAD_RP_ID, 429 QUOTA_EXCEEDED
origins_list(package) GET /package-origins/{package} A package’s frontend origins
origins_remove(package, origin, confirm=None) DELETE /package-origins/{package} Remove a frontend origin. passkey
pipelines(package, version) GET /packages/{package}/{version}/pipelines A release’s pipelines
uninstall(package) DELETE /packages/{package} Uninstall a package
upload(body) POST /packages Upload a signed release. Refusals: 400 BAD_BUNDLE, 400 BAD_PACKAGE, 400 COMPUTE_ABI_MISMATCH, 400 UNSUPPORTED_BUNDLE, 403 DEPLOY_NOT_GRANTED, 403 UPLOADS_DISABLED
version_uninstall(package, version) DELETE /packages/{package}/{version} Uninstall one version
Method Route What it does
attestation(nonce, app=…, app_hash=…, purpose=…) GET /attestation The node’s attestation. Refusals: 400 BAD_HASH, 400 BAD_NONCE
health() GET /health Node health
publisher_binding(signer) GET /publishers/{signer} Whether a signing key is bound
releases_public() GET /releases The cluster’s releases
restore_recover_holder(holder, slice_, apps=…, code=…, operator_proof=None) POST /recover/holder Bring an organization’s or account’s apps back from its recovery files. operator. Refusals: 400 BAD_RECOVERY_FILE, 400 BAD_RECOVERY_KEY, 400 NOT_A_REPLICA_NODE, 400 TOO_MANY_FILES, 400 UNATTESTED_RECOVERY_FILE, 409 FEATURE_NOT_ACTIVE, 409 NO_BACKUP_DIR, 409 RECOVERY_SEGMENTS_MISSING