# Get organization context (https://terac.com/docs/developers/reference/getOrganizationContext)

`GET https://terac.com/api/external/v2/organizations/current/context`

Returns a markdown briefing on the organization your API key belongs to. It covers identity, balance and where to add credit, dashboard links, projects, opportunity counts, the operating guide for building an opportunity, and any policies the organization set for task and panel descriptions. Identity, balance and dashboard links also come back as structured fields.

## Authorization

Requires a Bearer token via the `Authorization` header.

```
Authorization: Bearer <token>
```

## Responses

### 200: The organization's briefing as markdown, with its identity, balance and dashboard links as fields.

- `markdown` (string) **(required)**
- `organizationId` (string) **(required)**
- `organizationName` (string) **(required)**
- `organizationSlug` (string) **(required)**
- `balanceDollars` (number) **(required)**
- `dashboard` (object) **(required)**: The organization's pages in the researcher dashboard, as absolute URLs. Never null - this organization's slug is what builds them. The same URLs appear under `## Dashboard` in the markdown.
  - `home` (string) **(required)**: The organization's landing page in the dashboard, with recent activity across every project. Give this when the customer wants somewhere to start rather than a specific study or page.
  - `opportunities` (string) **(required)**: Every opportunity in the organization, across all projects, filterable by status. Give this when the customer asks where they can see everything they have running, or when they want to pause or resume something - those two controls live on a list row here, not on the study's own pages.
  - `drafts` (string) **(required)**: The same opportunities list, pre-filtered to drafts. Give this when the customer wants to find the drafts you built without hunting through launched studies.
  - `feasibility` (string) **(required)**: The organization's feasibility requests and the incentives Terac quoted back. There is no page for a single request, so this list is the only feasibility link; give it after you request feasibility or when the customer asks where a quote went.
  - `finance` (string) **(required)**: Where the organization checks its balance and adds credit. Give this when the balance will not cover a launch. Requires billing permission; a member without it gets a 404.
  - `api_keys` (string) **(required)**: Where the organization creates and revokes the API keys that authenticate this connection. Give this when the customer needs a new key or wants to revoke one, never for anything about a study.
### 400: Invalid input data

- `message` (string) **(required)**: The error message
- `code` (string) **(required)**: The error code
- `issues` (array): An array of issues that were responsible for the error
  - `message` (string) **(required)**
### 401: The API key is missing, invalid, disabled, expired or revoked, its owner no longer exists, or it is not linked to an organization. The body is nested under `error`.

- `error` (object) **(required)**
  - `code` (string) **(required)**: one of: `UNAUTHORIZED`: The error code.
  - `message` (string) **(required)**: What went wrong.
### 403: Either the account that owns the API key is banned or deleted (from the key check, nested under `error`), or the key's owner lacks the organization permission this operation needs (from the operation, with `code` and `message` at the top level).

- One of: API key error (403)
  - `error` (object) **(required)**
    - `code` (string) **(required)**: one of: `FORBIDDEN`: The error code.
    - `message` (string) **(required)**: What went wrong.
- One of: Insufficient access error (403)
  - `message` (string) **(required)**: The error message
  - `code` (string) **(required)**: The error code
  - `issues` (array): An array of issues that were responsible for the error
    - `message` (string) **(required)**
### 404: Not found

- `message` (string) **(required)**: The error message
- `code` (string) **(required)**: The error code
- `issues` (array): An array of issues that were responsible for the error
  - `message` (string) **(required)**
### 429: The API key is rate limited. A key accepts 100 requests, then refuses every request until more than 60 seconds pass with no accepted request; refused requests do not extend the wait. Wait the number of seconds in `Retry-After`, then retry. The body is nested under `error`.

- `error` (object) **(required)**
  - `code` (string) **(required)**: one of: `RATE_LIMITED`: The error code.
  - `message` (string) **(required)**: What went wrong.
### 500: Internal server error

- `message` (string) **(required)**: The error message
- `code` (string) **(required)**: The error code
- `issues` (array): An array of issues that were responsible for the error
  - `message` (string) **(required)**