Skip to main content

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

GET /api/trial
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"
}
FieldTypeDescription
trialbooleanWhether the user is on a trial
expiredbooleanWhether the trial period has ended
daysLeftnumberNumber of days remaining in the trial (minimum 0)
endsAtstringISO 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"
}
FieldTypeDescription
trialbooleanAlways false for paid users
planstringCurrent 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:
{
  "trial": false
}
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.