---
title: "Grant Custom Trial"
method: POST
path: "/admin/grant-trial"
tags: ["Admin"]
---

# Grant Custom Trial

`POST /admin/grant-trial`

## Request

- Base URL: `https://api.oxlo.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.oxlo.ai/admin/grant-trial`
- Auth: HTTP bearer

Grant a custom free trial to a user by email.

This creates a DB-level trial (no Stripe subscription - no card needed).
The user gets immediate plan access for the specified number of days.

When the trial expires:
- The scheduler's trial countdown emails fire automatically
- After trial_end_date passes, the user is reverted to free
- If the user subscribes via Stripe before expiry, the trial is replaced

If charge_amount_cents is set:
- A Stripe invoice is automatically created, due on the trial end date
- When the customer pays, the enterprise plan activates permanently
- If they don't pay, they get reverted to free when trial expires

Use cases:
- Enterprise demo: 30-day trial, then charge $130/month
- VIP trial extension
- Partner integrations

## Request body

- GrantTrialRequest
  - `email` string, email, required
  - `plan` string, required
  - `trial_days` integer, required
  - `reason` string, nullable
  - `charge_amount_cents` integer, nullable
  - `charge_description` string, nullable

## Response `200`

Successful Response

- GrantTrialResponse
  - `user_id` string, required
  - `email` string, required
  - `plan` string, required
  - `trial_ends_at` string, date-time, required
  - `message` string, required
  - `invoice_id` string, nullable
  - `invoice_amount` string, nullable

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/oxlo/apis/oxlo-backend.md) - [All operations](https://skmtc.dev/oxlo/apis/oxlo-backend/llms.txt) - [OpenAPI document](https://skmtc.dev/oxlo/apis/oxlo-backend/revisions/bc2ecdc94f31?raw)
