---
title: "Get current entitlement"
method: GET
path: "/subscription"
tags: ["Subscription"]
---

# Get current entitlement

`GET /subscription`

## Request

- Base URL: `https://api.caliuapp.com`
- URL: `https://api.caliuapp.com/subscription`
- Auth: one of:
  - HTTP bearer
  - API key in cookie `caliu_session`

The signed-in user's Caliu Pro entitlement. `isPro` is the single value clients gate on.

## Response `200`

Entitlement

- object
  - `isPro` boolean, required
  - `source` 'grandfathered' | 'app_store' | 'play_store' | 'stripe' | 'promotional' | 'none', required
  - `expiresAt` string, nullable, required
  - `willRenew` boolean, required
  - `plan` 'subscription' | 'lifetime' | 'null', nullable, required: What backs a paid entitlement: a renewing `subscription` or the one-time `lifetime` purchase. Both unlock the same features. `null` when Pro comes from no store purchase.
  - `noteLimit` integer, nullable, required: Free note limit for this account (notes outside the trash), or `null` for unlimited. A client-side guard only: note writes and sync are never rejected by the server.
  - `noteCount` integer, nullable, required: Notes that count toward `noteLimit`, or `null` when `noteLimit` is. The apps count locally; the MCP server reads this to guard `create_note`.

## Other responses

- `401`: Not authenticated

## Changes

- **2026-10-19** `1ba4d3f687fe`: 1 info
  - added the required property `noteCount` to the response with the `200` status

[Operation history](https://skmtc.dev/caliuapp/apis/caliu-api/changes/subscription/get.md)

---

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