---
title: "Get Workspace Activation"
method: GET
path: "/v1/workspaces/{workspace_id}/activation"
tags: ["workspace-activation"]
---

# Get Workspace Activation

`GET /v1/workspaces/{workspace_id}/activation`

Where a workspace stands on its first successful request.

Readable by any member who can see the workspace. Whether the guide should
actually be offered to this caller is ``experience_eligible``, which also
answers false when the deployment has the flow turned off
(``activation_guide``), so a dashboard left open stops offering it without
needing to be reloaded.

## Path parameters

- `workspace_id` string, uuid, required

## Response `200`

Successful Response

- WorkspaceActivationPublic — Where a workspace stands on its first successful request.
  - `activation_attempt` ActivationAttemptPublic — One gateway request in this workspace, as the guide reports it.
    - `cost_usd` number, nullable
    - `error_category` 'invalid_request' | 'configuration' | 'policy' | 'upstream' | 'timeout' | 'internal', nullable — What kind of failure this was, for a failed attempt only. The dashboard renders its own sentence per category; the provider's own error text is never returned here.
    - `latency_ms` integer, nullable
    - `model` string, nullable — Model the request named.
    - `occurred_at` string, required — When the request was recorded, UTC ISO-8601.
    - `provider` string, nullable — Provider instance that served it, when one did.
    - `request_id` string, required — The usage row's id, which the Activity page can be filtered by.
    - `status` 'success' | 'failed', required
  - `dismissed` boolean, required — Whether someone skipped the guide for this workspace.
  - `experience_eligible` boolean, required — Whether the dashboard should offer the guide to this caller right now: the deployment has it enabled, the workspace is classified for it, nobody dismissed it, no request has succeeded yet, and the caller may manage the workspace.
  - `latest_attempt` ActivationAttemptPublic — One gateway request in this workspace, as the guide reports it.
    - `cost_usd` number, nullable
    - `error_category` 'invalid_request' | 'configuration' | 'policy' | 'upstream' | 'timeout' | 'internal', nullable — What kind of failure this was, for a failed attempt only. The dashboard renders its own sentence per category; the provider's own error text is never returned here.
    - `latency_ms` integer, nullable
    - `model` string, nullable — Model the request named.
    - `occurred_at` string, required — When the request was recorded, UTC ISO-8601.
    - `provider` string, nullable — Provider instance that served it, when one did.
    - `request_id` string, required — The usage row's id, which the Activity page can be filtered by.
    - `status` 'success' | 'failed', required
  - `status` 'waiting' | 'failed' | 'activated', required — 'activated' once a gateway request in this workspace has succeeded, 'failed' when the last one failed and none has yet succeeded, 'waiting' when there has been none at all.

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/mozilla-ai/apis/otari.md) · [All operations](https://skmtc.net/mozilla-ai/apis/otari/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/mozilla-ai/otari/revisions/91764f0b41d6/schema)
