Specala AIDocs
API Reference

Workspace & limits

GET /workspace — check available minutes, plan limits and your key's permissions before starting a batch.

GET /workspace

Returns the key's workspace, the current minute balance, plan limits and the key's own permissions. Call it before a big batch instead of discovering insufficient_balance fifty files in.

Request

curl https://app.specala.ai/api/v1/developer/workspace \
  -H "Authorization: Bearer sk_live_your_key_here"
import httpx

resp = httpx.get(
    "https://app.specala.ai/api/v1/developer/workspace",
    headers={"Authorization": "Bearer sk_live_your_key_here"},
)
resp.raise_for_status()
ws = resp.json()
print(ws["balance"]["available_minutes"], "minutes left")
const res = await fetch("https://app.specala.ai/api/v1/developer/workspace", {
  headers: { Authorization: "Bearer sk_live_your_key_here" },
});
const ws = await res.json();
console.log(ws.balance.available_minutes, "minutes left");

How many transcription minutes do I have left?

The assistant checks the workspace balance before running uploads for you.

Response

200 OK

{
  "workspace": { "id": "a1b2c3d4-...", "name": "Product Team" },
  "balance": { "available_minutes": 1240.5 },
  "limits": {
    "max_file_size_mb": 2048,
    "concurrency": 3,
    "max_duration_hours": 10
  },
  "key": { "scopes": ["read", "uploads:write"], "expires_at": null }
}
FieldTypeDescription
workspaceobjectThe workspace this key is bound to.
balance.available_minutesnumberMinutes you can still spend — already accounts for files currently queued or processing.
limits.max_file_size_mbintegerUpload size cap per file.
limits.concurrencyintegerFiles processed in parallel; extra uploads wait as queued.
limits.max_duration_hoursintegerMax recording length per file.
key.scopesstring[]What this key can do: read, uploads:write, transcriptions:delete.
key.expires_atdatetime | nullKey expiry, if set.

available_minutes is the number to trust for planning: it already subtracts reservations for in-flight transcriptions, so it won't double-promise the same minutes to two scripts.

Errors

StatusWhen
401Missing/invalid key, or key passed in the URL.
403Plan without API access.
429Rate limit exceeded.

On this page