Trial API
Check the free trial status for the authenticated user. New accounts receive a 7-day free trial automatically on sign-up.
Get trial status
Returns the current trial state for the authenticated user. When no session is present, returns { trial: false } without an error.
Response (active trial)
When the user has an active trial that has not expired:
{
"trial": true,
"expired": false,
"daysLeft": 5,
"endsAt": "2026-04-09T01:24:53.000Z"
}
| Field | Type | Description |
|---|
trial | boolean | Whether the user is on a trial |
expired | boolean | Whether the trial period has ended |
daysLeft | number | Number of days remaining in the trial (minimum 0) |
endsAt | string | ISO 8601 timestamp of when the trial ends |
Response (expired trial)
When the trial period has ended and the user has not upgraded:
{
"trial": true,
"expired": true,
"daysLeft": 0,
"endsAt": "2026-04-02T01:24:53.000Z"
}
Response (paid user)
When the user has an active subscription or a non-free plan:
{
"trial": false,
"plan": "solo"
}
| Field | Type | Description |
|---|
trial | boolean | Always false for paid users |
plan | string | Current subscription plan |
Response (no trial)
When the user has no trial configured (legacy accounts or accounts without a trial end date):
{
"trial": false,
"plan": "free"
}
Response (unauthenticated)
When no valid session is present:
This endpoint does not return a 401 error for unauthenticated requests. It returns { trial: false } instead, allowing the client to render a default state without handling authentication errors.