Genesis Fight APIgenesis-fight.com ↗
Access Genesis Training Academy's published membership terms: drop-in rates, trial offer, cancellation and hold policies, and current promotions via one API endpoint.
What is the Genesis Fight API?
The Genesis Fight Club API exposes the publicly published membership terms from Genesis Training Academy (Wheat Ridge, CO) through a single endpoint, get_membership_terms, returning 8 structured response fields. One call returns the current promotional offer, drop-in class pricing, free intro-session trial details, hold policy specifics (including advance notice requirements and per-year limits), cancellation terms, and agreement type names — all in one response with no inputs required.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/d8756e20-11d4-4580-bf43-03954b1680d7/get_membership_terms' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace genesis-fight-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Genesis Training Academy membership terms — single-call read."""
from parse_apis.genesis_fight_com_api import GenesisFight, ParseError
client = GenesisFight()
# Fetch all published membership terms in one call.
try:
terms = client.membership_terms.get()
except ParseError as e:
print("Extraction failed:", e.code)
raise
print(terms.gym_name)
print("Pricing published:", terms.membership_pricing_published)
print("Agreement types:", terms.agreement_types)
# Current promotion (may be absent when no sale is running).
if terms.current_promotion is not None:
promo = terms.current_promotion
print(f"Promo: {promo.headline} — {promo.percent_off}% off until {promo.valid_until}")
# Trial offer details.
if terms.trial_offer is not None:
print("Trial:", terms.trial_offer.text)
# Drop-in rate.
print(f"Drop-in: {terms.drop_in.rate_text} ({terms.drop_in.price_usd} USD {terms.drop_in.unit})")
# Hold policy numeric terms (nullable when wording changes).
hp = terms.hold_policy
if hp is not None:
print(f"Hold policy: {hp.holds_per_calendar_year} holds/year, "
f"up to {hp.max_consecutive_months_per_hold} consecutive months each")
# Cancellation policy.
cp = terms.cancellation_policy
if cp is not None:
print(f"Cancel: {cp.written_notice_days}-day written notice, "
f"refundable={cp.payments_refundable}, "
f"grandfathered rates forfeited={cp.grandfathered_rates_forfeited_on_cancel}")
print("exercised: membership_terms.get")
Returns everything the gym publishes about membership terms in one call (one page load, no pagination, no inputs). Includes the current membership promotion (percent off and expiry date when present, otherwise null), the free intro-session offer, the drop-in class rate in USD, the membership agreement types named in the policies (month-to-month and annual), and the hold and cancellation policies as full text plus parsed numeric limits. Actual membership prices, and what a membership includes for group classes, open gym, or private lessons, are not published on the site (the site only offers to send pricing after a contact form is submitted), so membership_pricing_published, initiation_fee_published and class_limits_published are always false and no price tiers are returned. Parsed numeric fields inside hold_policy and cancellation_policy are null when the policy wording changes so they can no longer be read.
No input parameters required.
{
"type": "object",
"fields": {
"drop_in": "object: rate_text as written, price_usd (number), unit",
"gym_name": "string, name of the gym",
"hold_policy": "object: full text plus holds_per_calendar_year, max_consecutive_months_per_hold, advance_notice_business_days, minimum_hold_days (integers or null)",
"trial_offer": "object or null: type (free_intro_session) and the site's wording",
"agreement_types": "array of strings, membership agreement types named in the hold policy",
"current_promotion": "object or null: headline, detail text, percent_off (integer), valid_until (M/D/YYYY string as written on the site)",
"cancellation_policy": "object: full text plus written_notice_days (integer or null), payments_refundable (boolean), grandfathered_rates_forfeited_on_cancel (boolean)",
"class_limits_published": "boolean, false: no class-count limits are published",
"membership_pricing_note": "string explaining where pricing sits (behind a contact form)",
"initiation_fee_published": "boolean, false: no initiation fee information is published",
"membership_pricing_published": "boolean, false: membership price tiers are not published on the site"
},
"sample": {
"data": {
"drop_in": {
"unit": "per class",
"price_usd": 25,
"rate_text": "$25 Per Class"
},
"gym_name": "Genesis Training Academy",
"hold_policy": {
"text": "Month-to-Month Membership Agreements and Annual Membership Agreements: You may place your Membership on hold two (2) times per calendar year up to three (3) consecutive months each time. Advanced notice of at least two (2) business days is required. The hold must be 30 days in duration at a minimum and 30 days must elapse between holds. Upon expiration of the term of the hold, your account will automatically become active and payments will resume. Should you choose to return prior to the end of their hold period, the hold will be released and payments will resume.",
"minimum_hold_days": 30,
"holds_per_calendar_year": 2,
"advance_notice_business_days": 2,
"max_consecutive_months_per_hold": 3
},
"trial_offer": {
"text": "Simply fill out the form below and then schedule Your FREE intro session on the next page.",
"type": "free_intro_session"
},
"agreement_types": [
"Annual",
"Month-to-Month"
],
"current_promotion": {
"detail": "15% off all memberships until 1/1/2027.",
"headline": "Membership Sales Event!",
"percent_off": 15,
"valid_until": "1/1/2027"
},
"cancellation_policy": {
"text": "All membership agreements require 30-days written notice to cancel your membership. This form will serve as your 30-days written cancellation notice. Note that if you have a scheduled renewal payment within 30-days of your invoice billing date, the payment will be processed as scheduled. Your membership will be canceled at the end of your final paid month. All payments are non-refundable. All grandfathered membership rates will also be forfeited and returning members will be subject to current rates.",
"payments_refundable": false,
"written_notice_days": 30,
"grandfathered_rates_forfeited_on_cancel": true
},
"class_limits_published": false,
"membership_pricing_note": "Membership prices, and what a membership includes for group classes, open gym and private lessons, are not published on the site; the PRICING link opens a contact form that requests name, phone and email before pricing is sent.",
"initiation_fee_published": false,
"membership_pricing_published": false
},
"status": "success"
}
}About the Genesis Fight API
What the API Returns
The get_membership_terms endpoint returns everything Genesis Training Academy publishes about joining and managing a membership. The current_promotion object includes a headline, detail text, percent_off as an integer, and valid_until as a date string exactly as written on the site — or null when no promotion is active. The trial_offer object identifies the free intro-session offer and includes the site's own wording. The drop_in object provides the rate as written, a numeric price_usd, and the unit (e.g., per class).
Hold and Cancellation Details
The hold_policy object breaks the gym's written hold rules into structured fields: holds_per_calendar_year, max_consecutive_months_per_hold, advance_notice_business_days, and minimum_hold_days. The agreement_types array lists every membership agreement type named in that policy. The cancellation_policy object parses out written_notice_days, a payments_refundable boolean, and a flag for whether grandfathered rates are forfeited upon cancellation — alongside the full policy text.
What Is Not Included
The endpoint sets class_limits_published to false and initiation_fee_published to false, reflecting that Genesis Training Academy does not publish class-count caps or initiation fees on the page this API covers. The membership_pricing_note field explains that ongoing membership pricing sits behind a contact form rather than being published directly. No pagination, filtering, or input parameters are needed or accepted.
The Genesis Fight API is a managed, monitored endpoint for genesis-fight.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when genesis-fight.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official genesis-fight.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Display current Genesis Training Academy membership promotions (percent off and expiration date) on a local gym aggregator site
- Automate alerts when a new promotional offer appears or when
valid_untilchanges - Surface the drop-in class rate for price-comparison tools covering martial arts and fitness gyms
- Populate a gym directory entry with accurate hold-policy details, including advance notice days and per-year hold limits
- Audit cancellation terms programmatically — specifically the
payments_refundableflag and written-notice requirement - Integrate the free intro-session trial offer into a local fitness onboarding flow or lead-generation tool
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does genesis-fight.com have an official developer API?+
What does the hold_policy object actually contain?+
holds_per_calendar_year (how many holds a member may take per year), max_consecutive_months_per_hold (the cap on a single hold's duration), advance_notice_business_days (notice required before a hold starts), and minimum_hold_days. The agreement_types array lists the membership contract types the hold policy applies to.Does the API return monthly membership prices or initiation fees?+
membership_pricing_note explaining that recurring membership prices are behind a contact form, not published on the page this API covers. initiation_fee_published is returned as false for the same reason. You can fork this API on Parse and revise it to target the contact-form response or any subsequently published pricing page.Is there any filtering or pagination for this endpoint?+
get_membership_terms takes no inputs and returns the full set of published terms in a single response. The source publishes all this information on one page, so pagination and filtering are not applicable.