---
title: "Get effective plan and feature map"
method: GET
path: "/organization/{id}/entitlements"
tags: ["Entitlements"]
---

# Get effective plan and feature map

`GET /organization/{id}/entitlements`

## Request

- Base URL: `https://api.elaichi.ai`
- URL: `https://api.elaichi.ai/organization/{id}/entitlements`
- Auth: HTTP bearer

Returns what this organization may use right now. Call this before offering a gated feature rather than reading `plan` off the organization: `plan` here is the effective plan (null when locked), which folds in the trial and the Stripe subscription status. Any member may read it.

## Path parameters

- `id` string, required

## Response `200`

OK

- object
  - `plan` 'gold' | 'black' | 'null', nullable: Effective plan. `null` means locked — gated routes answer 403 `subscription_required`.
  - `trial_ends_at` string, date-time, nullable
  - `trial_active` boolean: The Gold trial before a subscription starts.
  - `trial_indefinite` boolean: Elaichi-granted indefinite trial: unlocked with no end date. `trial_active` stays false because there is no clock to count down.
  - `features` object: Feature key → allowed. A key that is absent is not offered to this organization — not an error. The response can carry further informational fields beyond those listed here.

## Other responses

- `400`: Bad request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not found
- `429`: Rate limited

---

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