Gym Membership Offer
A five-scene, 20-second 9:16 sales card for a gym running a membership push, ordered the way a prospect actually decides: the offer, the price, what's included, the deadline, then join now. Black and concrete grounds alternate under a single volt-yellow accent that is spent only on the price and the expiry, and a five-block "rep meter" fills one block per scene so the piece reads as one offer rather than five slides. 1080x1920, 600 frames at 30fps, hard cuts between grounds, with a background music bed. Sixteen fields swap per render — gym_name, location_name, offer_headline, offer_detail, price_value, price_period, price_note, inclusion_1, inclusion_2, inclusion_3, deadline_label, urgency_line, gym_image, cta_label, cta_detail and the optional terms_note — so a locations spreadsheet produces one MP4 per club, and January's "first month free", the September reset and a new-site opening are the same template with four values changed.
- Aspect ratio
- 9:16 · Vertical
- Duration
- ~20s
- Category
- Social Media
Try it with your own copy
Edit a field and the frame re-renders in your browser. No account, no credits - previews are free because they cost a browser paint, not a render.
What you can customize
This template exposes 16 dynamic fields you can swap per video - edit them in the editor or pass them to the API to batch-render variations at scale. The monospace name is the exact key to send in replacements.
Gym Name
textgym_nameIronworks Athletic
~50 characters max · 1 line
Location Name
textlocation_nameShoreditch
~27 characters max · 1 line
Offer Headline
textoffer_headlineFIRST MONTH FREE
~31 characters max · 3 lines
Offer Detail
textoffer_detailJoin this month and train free until March.
~113 characters max · 3 lines
Price Value
textprice_value£29
~8 characters max · 1 line
Price Period
textprice_periodPER MONTH
~30 characters max · 1 line
Deadline Label
textdeadline_labelENDS 31 JANUARY
~38 characters max · 1 line
Price Note
textprice_noteNo joining fee. No contract. Cancel any time.
~128 characters max · 3 lines
Gym Image
urlgym_imagehttps://images.unsplash.com/photo-1534438327276-14e5300c3a48?w=1080&h=1920&fit=crop&q=85
Inclusion 1
textinclusion_1Unlimited gym access
~32 characters max · 1 line
Inclusion 2
textinclusion_2All classes included
~32 characters max · 1 line
Inclusion 3
textinclusion_3Free induction and plan
~32 characters max · 1 line
Urgency Line
texturgency_lineAfter that, joining costs £49 and the fee comes back.
~124 characters max · 3 lines
Cta Detail
textcta_detailironworks.fit/join
~80 characters max · 2 lines
Cta Label
textcta_labelJOIN NOW
~14 characters max · 1 line
Terms Note
textterms_noteNew members only. 12-month minimum term. Full terms on site.
~183 characters max · 3 lines
Render it from the API
Copy either call below. Both already carry this template's ID and its real variable keys - swap the values for your own.
1. Preview it — free
Same body as a render. Costs no credits, creates no job. Returns a public URL that plays the video in a browser, plus a list of problems with your payload — a mistyped key is otherwise ignored in silence.
curl -X POST https://renderly.video/api/v1/previews \
-H "Authorization: Bearer $RENDERLY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"templateId": "gym-membership-offer",
"replacements": {
"gym_name": "Ironworks Athletic",
"location_name": "Shoreditch",
"offer_headline": "FIRST MONTH FREE",
"offer_detail": "Join this month and train free until March.",
"price_value": "£29",
"price_period": "PER MONTH"
}
}'2. Render it
Change one word in the URL. Keep templateId — it is what links your call to this template, so later improvements reach you automatically.
curl -X POST https://renderly.video/api/v1/renders \
-H "Authorization: Bearer $RENDERLY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"templateId": "gym-membership-offer",
"replacements": {
"gym_name": "Ironworks Athletic",
"location_name": "Shoreditch",
"offer_headline": "FIRST MONTH FREE",
"offer_detail": "Join this month and train free until March.",
"price_value": "£29",
"price_period": "PER MONTH"
}
}'The body above shows 6 of 16 variables. Send any subset — every key you leave out renders its authored default. Read the full contract, with character limits, from GET /api/v1/templates/gym-membership-offer/variables. See the previewing guide, the rendering guide, or the OpenAPI spec.
Frequently asked questions
How do I customize the Gym Membership Offer template?
Open the template in the Renderly editor and replace its 16 customizable fields (such as Gym Name) with your own text, images, or video. Every change previews instantly before you render.
How much does it cost to render this template?
Rendering is credit-based - 1 credit equals 1 minute of 1080p video, billed by the second. You only pay when you export, and credits never expire on the pay-as-you-go plan.
Can I generate this video at scale via the API?
Yes. POST this template's ID and a replacements object to /api/v1/renders - one call per row of data, 16 fields swappable per video. Send the same body to /api/v1/previews first to check it for free. No-code integrations like Zapier work the same way.
More Social Media templates

Crypto Price Alert
A dark, fast vertical alert card for one crypto asset and one price move, fired when a threshold is crossed: the asset, the percentage move in crypto gold, the timeframe, the price now against where it started, and a call to action. 15 seconds, 9:16 (1080x1920). Dynamic fields: asset_symbol, asset_name, move_pct (sign included), timeframe, price_now, price_from, alert_time, source_name and cta_line. Reads the same for a 3% move or a 40% drop, up or down.

Reddit Story Reader
A screen-native story-reader short for faceless channels: a forum post card with the title and source, then three body pages in grey panels with a page counter and progress bar, and an end card that sets up the next part. 53 seconds, 9:16 (1080x1920). Dynamic fields: post_title, source_label, page_1, page_2, page_3 (up to about 380 characters each), part_label, outro_line and channel_handle. Longer stories render as several parts.

Motivational Quote Reel
The moving sibling of the Daily Quote card: one quote over slow, graded footage with an optional AI-narrated read. 23 seconds, 9:16 at 1080x1920, five scenes - a title card, the quote, the attribution, a near-black quote card built to be screenshotted, and a follow outro - in near-black, warm white and a single warm-amber accent, set in Cormorant Garamond with JetBrains Mono furniture. Dynamic fields: series_label, date_label, the_line, attribution, handle (text), background_clip (video) and narration (sound, filled per render with a text-to-speech value). It uses the same field names as the Daily Social Card - Quote, so one row a day renders both the square card and the vertical reel.