create_ad_order
Book a flight against a quote_id from estimate_ad_cost, with creative assets. Price and impressions come from the stored quote — anything you send that contradicts it is ignored. Returns an order_id and a Stripe checkout URL for the exact quoted amount. Pass idempotency_key to make retries safe.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| headline | No | Short sponsor headline. | |
| quote_id | Yes | REQUIRED. The quote ID from estimate_ad_cost. | |
| click_url | Yes | Destination HTTPS click-through URL. | |
| image_url | No | HTTPS display creative (required for display formats). | |
| brand_name | Yes | Brand or sponsor company name. | |
| ad_category | Yes | REQUIRED. What the sponsor sells. alcohol and betting ads are shown only to signed in fans who have told us they are 21 or over; general ads are shown to everyone. | |
| artist_name | No | Artist name (required for music slots). | |
| track_title | No | Track title (required for music slots). | |
| voice_script | No | 10-15s spoken script, max 35 words (required for voice_sponsor_read). | |
| cover_art_url | No | Cover artwork image URL. | |
| idempotency_key | No | Optional. Reuse on retry to avoid double-booking. | |
| advertiser_email | No | Optional buyer email for the Stripe receipt. | |
| audio_stream_url | No | HTTPS audio stream (required for music slots). | |
| rights_confirmed | No | Must be true for music slots: you confirm licensing or ownership. | |
| selected_persona | No | AI persona voicing the read. | |
| streaming_platform_url | No | Spotify / Apple Music / SoundCloud link. |