autodisc
Storage

M1 Storage

Private files for application inputs, outputs, and logs.

M1 Storage keeps files in a private namespace for each Autodisc project. Use your existing Autodisc API authentication. Reading requires project read permission; uploading and deleting require project update permission. Files are returned through the Autodisc API. Storage credentials are never needed in your application.

This API is available only where M1 Storage has been enabled. A 503 response saying M1 Storage is not available yet means the deployment has not enabled it. It is an HTTP object API, with a 64 MiB limit per object; it does not implement the S3 protocol.

Set AUTODISC_API_KEY to your existing API credential and PROJECT_ID to your project UUID. Keep the token out of source control.

BASE="https://api.autodisc.xyz/api/v1/projects/$PROJECT_ID/storage/objects"

# Store an input archive. PUT replaces the same key.
curl --fail-with-body -X PUT "$BASE/inputs/repository.zip" \
  -H "X-API-Key: $AUTODISC_API_KEY" \
  --data-binary @repository.zip

# List up to 100 objects. Pass next_after as the after query parameter for the next page.
curl --fail-with-body "$BASE" \
  -H "X-API-Key: $AUTODISC_API_KEY"

# Download a worker result.
curl --fail-with-body "$BASE/results/run.patch" \
  -H "X-API-Key: $AUTODISC_API_KEY" -o run.patch

# Permanently delete one object.
curl --fail-with-body -X DELETE "$BASE/inputs/repository.zip" \
  -H "X-API-Key: $AUTODISC_API_KEY"

A successful upload returns storage, key, and size_bytes. List responses contain objects and next_after. Object keys can contain folders, but cannot contain empty, dot, or parent-directory segments. Downloads require authentication on every request; there are no public or temporary download links.

Usage and compute credits

Billing shows M1's current calendar-month spend, successful writes/list requests, reads, and the latest stored bytes. M1 uses the same workspace compute credits as VPS usage. Subscription payments remain separate. The panel shows whether M1 charging is enabled; usage collected while charging is disabled is never billed later.

When charging is enabled, requests reserve credit before they run. Failed or unconfirmed requests release that reservation. Uploads and each list page count as writes/lists; downloads count as reads. Deletions and internal usage inventory requests are free. Insufficient credit returns HTTP 402 for uploads, lists, and reads. Add funds in Billing to resume; existing objects remain private and can still be deleted without credit. M1 does not create overage charges.

Storage is measured about once a minute. Charges start with the first measured inventory, never with historical usage. An unchanged object observed at both ends of an interval contributes its bytes over that interval; changed or deleted objects do not receive an estimated charge for an uncertain interval. Storage is prorated by seconds in each UTC calendar month, using 1 GB = 1,000,000,000 bytes. The panel identifies when usage tracking began. Stored totals may lag a recent upload or deletion by a minute.

Workspace members with billing read permission can retrieve the same summary:

curl --fail-with-body "https://api.autodisc.xyz/api/v1/accounts/$ACCOUNT_ID/storage/usage" \
  -H "X-API-Key: $AUTODISC_API_KEY"

The response includes period, tracking_started_at, storage, operations, and billing. Monetary values are decimal strings in USD; charged_usd is settled M1 spending, pending_usd is reserved credit, and remaining_credit_usd is the shared wallet's available balance.

On this page