Skip to content

status

Status endpoint handlers.

StatusEndpoint

Bases: BaseEndpoint

Handles status-related API endpoints.

Provides health checks and system status information.

analyses(limit=None) async

Get recent analyses across all projects, newest first.

The server bounds the list by default so that polling it stays cheap during large batches. :meth:analyses_counts carries the full totals.

Parameters:

Name Type Description Default
limit int | None

Maximum analyses to return (1-500); the server's default when omitted

None

Returns:

Type Description
list[AnalysisOut]

List of recent analyses with parent project/study info

Raises:

Type Description
AuthenticationError

If not authenticated

analyses_counts() async

Get counts of recent analyses by status.

Returns:

Type Description
dict[str, int]

Dictionary mapping analysis status to count

Example
counts = await client.status.analyses_counts()
print(counts)  # {'pending': 5, 'running': 2, 'completed': 100}

Raises:

Type Description
AuthenticationError

If not authenticated

audit_actions() async

Get the audit action vocabulary: each action's name and readers.

Public. An audit view offers as filters the actions whose readers include its own, and reads each event's action by name.

Returns:

Type Description
list[AuditActionInfo]

Every action the server records, in the server's order

Example
org_actions = [
    a.action
    for a in await client.status.audit_actions()
    if "organisation" in a.readers
]

billing_rates() async

Get the public billing rates (platform pricing in credits).

Clients must display these rather than hardcoding prices, so the UI always matches what the server actually charges.

Returns:

Type Description
BillingRates

The current billing rates.

enabled_features() async

Get server features that are currently enabled.

Returns:

Type Description
ServerFeaturesEnabled

Server feature flags

Example
features = await client.status.enabled_features()
print(f"Login: {features.login}, Registration: {features.registration}")

Raises:

Type Description
AuthenticationError

If not authenticated

health() async

Check API health status.

Returns:

Type Description
dict[str, str]

Health status dictionary with 'status' key

Example
health = await client.status.health()
print(health)  # {'status': 'ok'}

limits() async

Get the server's client-relevant request limits.

Currently exposes the per-request item caps for the batch endpoints (deployment-configurable; e.g. the max number of files one batch analysis submission may target). Distinct from per-user usage quotas, which are available via client.user.usage_limits().

Returns:

Type Description
ServerLimits

The server's configured limits.

Example
limits = await client.status.limits()
print(limits.batch.max_analysis_submissions)

permissions() async

Get the permission vocabulary, with what an API key may be scoped to.

Public. The one list a permission editor renders and a key dialog offers from; key_scopeable is the server's decision.

Returns:

Type Description
list[PermissionInfo]

Every permission, in the server's order

Example
scopeable = [p.value for p in await client.status.permissions() if p.key_scopeable]

study_import_columns() async

Get the recognised column vocabulary for bulk study-data imports.

The server's authoritative copy of STUDY_IMPORT_COLUMNS (keys, aliases, units) — clients building a mapping UI fetch it from here instead of mirroring the constant, so new columns arrive without a package upgrade. Public, no authentication required.

Example
columns = await client.status.study_import_columns()
print([column.key for column in columns])

version() async

Get API server and common module version information.

Returns:

Type Description
ServerVersionInfo

ServerVersionInfo with api_version and common_version

Example
version = await client.status.version()
print(f"API: {version.api_version}, Common: {version.common_version}")