> ## Documentation Index
> Fetch the complete documentation index at: https://docs.60db.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Flow plan

> Access, licence, seats and pending seat invites for the signed-in user

Call at app launch, after sign-in and after a workspace switch. Use `license_id`, `is_owner`, `plan` and `seats` to show the Team seat manager, and `seat_invites` to show pending invitations.

## Request

### Headers

<ParamField header="Authorization" type="string" required>
  `Bearer <login token>` of the signed-in 60db user. API keys (`sk_...`) are not accepted for Flow.
</ParamField>

<ParamField header="X-60db-Client" type="string">
  `flow/<app-version>`, e.g. `flow/1.5.0` (send it from the 60db Flow app)
</ParamField>

### Query Parameters

<ParamField query="workspace_id" type="integer">
  Workspace to check (defaults to the current workspace)
</ParamField>

## Response

<ResponseField name="data.has_access" type="boolean">Free dictation available in this workspace</ResponseField>
<ResponseField name="data.access" type="string">`paid` | `comp` | `trial` | `none`</ResponseField>
<ResponseField name="data.plan" type="string">`flow_solo` | `flow_team` | `null`</ResponseField>
<ResponseField name="data.license_id" type="string">Licence behind this access (`null` without access). Needed for the seat endpoints</ResponseField>
<ResponseField name="data.seats" type="integer">Seats on the licence (3 for Lifetime Team)</ResponseField>
<ResponseField name="data.seats_used" type="integer">Seats taken, including pending invites</ResponseField>
<ResponseField name="data.is_owner" type="boolean">The user bought the licence and can manage seats</ResponseField>
<ResponseField name="data.invite_pending" type="boolean">`seat_invites` is not empty</ResponseField>
<ResponseField name="data.seat_invites" type="array">Pending invites from **any** workspace (same items as [List my invites](/api-reference/flow/list-invites))</ResponseField>
<ResponseField name="data.workspaces_with_access" type="array">Other workspaces where the user has Flow; offer to switch</ResponseField>

## Example

<RequestExample>
  ```bash cURL theme={null}
  curl -X GET "https://api.60db.ai/60db/flow/plan" \
    -H "Authorization: Bearer USER_JWT" \
    -H "X-60db-Client: flow/1.5.0"
  ```
</RequestExample>

<ResponseExample>
  ```json Response theme={null}
  {
    "success": true,
    "data": {
      "has_access": true,
      "access": "paid",
      "plan": "flow_team",
      "plan_name": "Lifetime Team",
      "status": "active",
      "license_id": "2f1c9a4e-6b7d-4c1e-9f0a-1d2e3f4a5b6c",
      "seats": 3,
      "seats_used": 2,
      "is_owner": true,
      "invite_pending": false,
      "seat_invites": [],
      "workspace": { "id": 24, "name": "Acme" },
      "workspaces_with_access": [{ "id": 24, "name": "Acme", "plan": "flow_team", "access": "paid" }]
    }
  }
  ```
</ResponseExample>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.