---
title: "Create Trial Endpoint"
method: POST
path: "/infra/trials"
tags: ["trials"]
---

# Create Trial Endpoint

`POST /infra/trials`

## Request

- Base URL: `https://api.4chems.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.4chems.com/infra/trials`
- Auth: HTTP bearer

Provision a trial tenant (async). Returns 202 + Location: /infra/operations/{id}.

Blocked when TRIALS_PROVISIONING_ENABLED=false and caller is TENANT_PROVISIONER
(UC-045 kill-switch halts the prospect funnel without affecting infra-admin).

A domain that already had its trial answers 409 `trial.exists_for_domain`;
`override_trial_once` with `override_reason` (ops-realm `sales` or
`infra-admin` only) lets it through and is audited (UC-099).

## Request body

- TrialCreateIn
  - `legal_entity` LegalEntityIn, required: Composite legal-entity input validated against the country catalog. Rules: - *country* must be a supported market (validated at field level via SupportedCountry, caught in the model validator against the loaded catalog). - *legal_entity_type* must appear in that country's catalog file. - When *legal_entity_type* is ``<CC>_OTHER``, *other_label* is required (2-80 chars). - For any other type, *other_label* must be absent.
    - `country` string, required
    - `legal_entity_type` string, required
    - `other_label` string, nullable
    - `name` string, required
  - `initial_admin_email` string, email, required
  - `products` string[], required
  - `seed` 'empty' | 'demo' | 'with_data'
  - `ttl` integer
  - `override_trial_once` boolean
  - `override_reason` string, nullable

## Response `202`

Successful Response

- OperationOut
  - `operation_id` string, uuid, required
  - `status` string, required
  - `type` string, required
  - `target_type` string, nullable
  - `target_id` string, nullable
  - `result` unknown
  - `error` ErrorDetail
    - `code` string, required
    - `message` string, required
  - `created_at` string, date-time, required
  - `finished_at` string, date-time, nullable

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/4chems/apis/platform-api.md) · [All operations](https://skmtc.dev/4chems/apis/platform-api/llms.txt) · [OpenAPI document](https://skmtc.dev/4chems/apis/platform-api/revisions/65e4f7b4dba0?raw)
