---
title: "Discover the bearer API key's own organization and bounded projects"
method: GET
path: "/v1/workspace-context"
---

# Discover the bearer API key's own organization and bounded projects

`GET /v1/workspace-context`

## Request

- Base URL: `https://api.skysay.ai`
- URL: `https://api.skysay.ai/v1/workspace-context`
- Auth: none declared

A tenant-bound bootstrap read for an organization-bound credential. The route derives the organization exclusively from the bearer principal and rejects organization_id rather than accepting an arbitrary tenant selector. It returns only organization id/name and project id/name/environment in stable created_at,id order, with an exact count and explicit page metadata. It works for an empty-agent starter workspace and never reads users, credentials, provider/operator data, or secrets; it makes no provider call and performs no write, repair, or lazy creation.

## Query parameters

- `limit` integer
- `offset` integer

## Response `200`

Safe organization context and bounded project page

- WorkspaceContext
  - `organization` object, required
    - `id` string, required
    - `name` string, required
  - `project_count` integer, required: Exact number of projects in the bearer organization.
  - `projects` object[], required
    - `environment` string, required
    - `id` string, required
    - `name` string, required
  - `projects_page` OffsetPage, required
    - `has_more` boolean, required
    - `limit` integer, required
    - `next_offset` integer, nullable, required
    - `offset` integer, required
    - `returned_count` integer, required

## Other responses

- `400`: organization_id was supplied or a page value is malformed
- `403`: Credential is not linked to an organization
- `404`: The organization bound to the credential no longer exists

---

[API](https://skmtc.dev/skysay/apis/skysay-api.md) · [All operations](https://skmtc.dev/skysay/apis/skysay-api/llms.txt) · [OpenAPI document](https://skmtc.dev/skysay/apis/skysay-api/revisions/95b8c66f99aa?raw)
