# Create a trial offer Creates a trial offer. ## Returns Returns a trial offer object if the call succeeded. ## Parameters - `duration` (object, required) Duration of one service period of the trial. - `duration.type` (enum, required) Specifies how the trial offer duration is determined. Possible enum values: - `relative` The duration of trials created from this offer are determined relative to the trial start date. - `timestamp` The duration of trials created from this offer are determined by a specific timestamp. - `duration.relative` (object, optional) The relative duration of the trial period computed as the number of recurring price intervals. - `duration.relative.iterations` (integer, required) The number of recurring price’s interval to apply for the trial period. - `end_behavior` (object, required) Define behavior that occurs at the end of the trial. - `end_behavior.transition` (object, required) The transition to apply when the trial offer ends. - `end_behavior.transition.price` (string, required) The price to transition the recurring item to when the trial offer ends. - `price` (string, required) Price configuration during the trial period (amount, billing scheme, etc). - `name` (string, optional) A brief, user-friendly name for the trial offer-for identification purposes. The maximum length is 255 characters. ```curl curl https://api.stripe.com/v1/product_catalog/trial_offers \ -u "<>" \ -H "Stripe-Version: 2026-03-25.preview" \ -d "duration[relative][iterations]=2" \ -d "end_behavior[transition][price]=price_1Hh5Xx2eZvKYlo2C8JaUOv3P" \ -d price=price_1Hh5Xx2eZvKYlo2C8JaUOv2Q ``` ### Response ```json { "id": "to_1Hh5Xx2eZvKYlo2C8JaUOv4R", "object": "product_catalog.trial_offer", "livemode": false, "duration": { "relative": { "iterations": 2 }, "type": "relative" }, "end_behavior": { "transition": { "price": "price_1Hh5Xx2eZvKYlo2C8JaUOv3P" }, "type": "transition" }, "price": "price_1Hh5Xx2eZvKYlo2C8JaUOv2Q" } ```