A gym membership application form that works on a phone

Updated 2026-10-30

A queue at the desk and a pen on a string is a poor welcome. I would rather let people apply from their sofa. They pick a membership and a start day, and you read the list before the doors open.

How it works

  1. The applicant gives a name, a birth date, an email and a phone.
  2. They choose a membership, a start date and the facilities they will use.
  3. They say what they hope to get from joining and how they found you.
  4. They add an emergency contact and accept the gym rules.

A short chat with the applicant's AI

"Which membership are you interested in?" Then "When would you like to start?" Then "Who is your emergency contact?" It shows every answer and sends only after a yes. See agent-fillable forms.

Good to know

Read join_goal before your welcome call. It gives you the first line of the chat. Count the referring member column, too, if you run a refer-a-friend offer.

For the other end of the story, see a membership cancellation form. A gym survey questionnaire checks how members feel after a few months. Add a waiver acknowledgement for consent. More in forms for gyms.

Questions

Does the form take the first payment?

No. It collects no card data and no payments. It gathers who the applicant is and what they want, and you take payment in the system you already use.

Can I use it for a pre-opening sign-up list?

Yes. Share the public link before launch, set close_at to the opening date, and set max_responses if you want a founding list with a cap.

How do I contact applicants who want an induction?

Download the CSV and filter induction_wanted. Those rows carry an email and a phone number, so you can set up the sessions yourself.

Try the form

Live demo ยท nothing is saved

Join the gym

Tell us a little about you and the membership you would like. We will be in touch to finish setting you up. Payment is handled separately.

Which membership are you interested in? (required)
What will you use?
How did you hear about us?
I would like an induction session
I accept the gym rules (required)

Or paste the JSON

Give this to your AI. It needs the AI Form API MCP server or an API key. It makes the form and sends you the link.

text
Create this form with the AI Form API create_form tool (or POST https://aiformapi.com/v1/forms with my API key). Then reply with the public_url.

{
  "title": "Join the gym",
  "description": "Tell us a little about you and the membership you would like. We will be in touch to finish setting you up. Payment is handled separately.",
  "fields": [
    {
      "id": "applicant_name",
      "label": "Your full name",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "applicant_birth_date",
      "label": "Date of birth",
      "type": "date",
      "required": true
    },
    {
      "id": "applicant_email",
      "label": "Email",
      "type": "email",
      "required": true
    },
    {
      "id": "applicant_phone",
      "label": "Phone",
      "type": "phone"
    },
    {
      "id": "postal_area",
      "label": "Postcode or ZIP code",
      "type": "short_text",
      "max_length": 20
    },
    {
      "id": "membership_choice",
      "label": "Which membership are you interested in?",
      "type": "single_choice",
      "required": true,
      "options": [
        "Monthly, rolling",
        "Annual",
        "Student",
        "Couple",
        "Family",
        "Off-peak only"
      ]
    },
    {
      "id": "wanted_start_date",
      "label": "When would you like to start?",
      "type": "date"
    },
    {
      "id": "facilities_wanted",
      "label": "What will you use?",
      "type": "multi_choice",
      "options": [
        "Free weights",
        "Cardio machines",
        "Group classes",
        "Pool",
        "Sauna",
        "Personal training",
        "Childcare"
      ]
    },
    {
      "id": "join_goal",
      "label": "What do you hope to get from joining?",
      "type": "short_text",
      "max_length": 400
    },
    {
      "id": "heard_from",
      "label": "How did you hear about us?",
      "type": "single_choice",
      "options": [
        "A friend or member",
        "Social media",
        "Online search",
        "I walked past",
        "An event or offer"
      ]
    },
    {
      "id": "referring_member",
      "label": "Name of the member who referred you, if any",
      "type": "short_text",
      "max_length": 150
    },
    {
      "id": "emergency_contact_line",
      "label": "Emergency contact: name and phone",
      "type": "short_text",
      "required": true,
      "max_length": 250
    },
    {
      "id": "induction_wanted",
      "label": "I would like an induction session",
      "type": "checkbox"
    },
    {
      "id": "gym_rules_ack",
      "label": "I accept the gym rules",
      "type": "checkbox",
      "required": true
    }
  ]
}

Or call the API

bash
curl -X POST https://aiformapi.com/v1/forms \
  -H "Authorization: Bearer $AIFORMAPI_KEY" \
  -H "Content-Type: application/json" \
  -d '{"title":"Join the gym","description":"Tell us a little about you and the membership you would like. We will be in touch to finish setting you up. Payment is handled separately.","fields":[{"id":"applicant_name","label":"Your full name","type":"short_text","required":true,"max_length":150},{"id":"applicant_birth_date","label":"Date of birth","type":"date","required":true},{"id":"applicant_email","label":"Email","type":"email","required":true},{"id":"applicant_phone","label":"Phone","type":"phone"},{"id":"postal_area","label":"Postcode or ZIP code","type":"short_text","max_length":20},{"id":"membership_choice","label":"Which membership are you interested in?","type":"single_choice","required":true,"options":["Monthly, rolling","Annual","Student","Couple","Family","Off-peak only"]},{"id":"wanted_start_date","label":"When would you like to start?","type":"date"},{"id":"facilities_wanted","label":"What will you use?","type":"multi_choice","options":["Free weights","Cardio machines","Group classes","Pool","Sauna","Personal training","Childcare"]},{"id":"join_goal","label":"What do you hope to get from joining?","type":"short_text","max_length":400},{"id":"heard_from","label":"How did you hear about us?","type":"single_choice","options":["A friend or member","Social media","Online search","I walked past","An event or offer"]},{"id":"referring_member","label":"Name of the member who referred you, if any","type":"short_text","max_length":150},{"id":"emergency_contact_line","label":"Emergency contact: name and phone","type":"short_text","required":true,"max_length":250},{"id":"induction_wanted","label":"I would like an induction session","type":"checkbox"},{"id":"gym_rules_ack","label":"I accept the gym rules","type":"checkbox","required":true}]}'

JSON definition

json
{
  "title": "Join the gym",
  "description": "Tell us a little about you and the membership you would like. We will be in touch to finish setting you up. Payment is handled separately.",
  "fields": [
    {
      "id": "applicant_name",
      "label": "Your full name",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "applicant_birth_date",
      "label": "Date of birth",
      "type": "date",
      "required": true
    },
    {
      "id": "applicant_email",
      "label": "Email",
      "type": "email",
      "required": true
    },
    {
      "id": "applicant_phone",
      "label": "Phone",
      "type": "phone"
    },
    {
      "id": "postal_area",
      "label": "Postcode or ZIP code",
      "type": "short_text",
      "max_length": 20
    },
    {
      "id": "membership_choice",
      "label": "Which membership are you interested in?",
      "type": "single_choice",
      "required": true,
      "options": [
        "Monthly, rolling",
        "Annual",
        "Student",
        "Couple",
        "Family",
        "Off-peak only"
      ]
    },
    {
      "id": "wanted_start_date",
      "label": "When would you like to start?",
      "type": "date"
    },
    {
      "id": "facilities_wanted",
      "label": "What will you use?",
      "type": "multi_choice",
      "options": [
        "Free weights",
        "Cardio machines",
        "Group classes",
        "Pool",
        "Sauna",
        "Personal training",
        "Childcare"
      ]
    },
    {
      "id": "join_goal",
      "label": "What do you hope to get from joining?",
      "type": "short_text",
      "max_length": 400
    },
    {
      "id": "heard_from",
      "label": "How did you hear about us?",
      "type": "single_choice",
      "options": [
        "A friend or member",
        "Social media",
        "Online search",
        "I walked past",
        "An event or offer"
      ]
    },
    {
      "id": "referring_member",
      "label": "Name of the member who referred you, if any",
      "type": "short_text",
      "max_length": 150
    },
    {
      "id": "emergency_contact_line",
      "label": "Emergency contact: name and phone",
      "type": "short_text",
      "required": true,
      "max_length": 250
    },
    {
      "id": "induction_wanted",
      "label": "I would like an induction session",
      "type": "checkbox"
    },
    {
      "id": "gym_rules_ack",
      "label": "I accept the gym rules",
      "type": "checkbox",
      "required": true
    }
  ]
}