Liability waiver form template with a recorded signature

Build & score

Short answer: this is a complete QuizGen JSON definition — waiver text, participant details, an emergency contact, a medical-conditions question, and a required consent checkbox that records a timestamped agreement tied to the participant's email. It is a structural template, not legal advice, and the waiver text inside it is placeholder text you must replace before using it for anything real.

We are not a lawyer and this is not a law firm. Whether an electronic waiver holds up depends on your jurisdiction, your activity, and how it's presented — and in most places, no waiver (electronic or paper) can sign away gross negligence or intentional harm. Take this structure to a lawyer who knows your state or country and your specific activity before you rely on it for anything involving physical risk.

The template

Every line inside the statement question below is generic placeholder text. Replace it entirely with wording your lawyer approves for your activity and jurisdiction before this goes live.

{
  "schema_version": 1,
  "kind": "form",
  "title": "Liability waiver — Riverbend Climbing Gym",
  "description": "Please read the waiver below and complete this form before your first visit.",
  "settings": {
    "collect_respondent": "email_required"
  },
  "sections": [
    {
      "key": "waiver",
      "title": "Waiver of liability",
      "questions": [
        { "id": "waiver_text", "type": "statement",
          "title": "Assumption of risk and release",
          "body": [
            "[PLACEHOLDER — replace with your lawyer's wording.] Participation in climbing activities carries inherent risks, including but not limited to falls, equipment failure, and physical injury.",
            "[PLACEHOLDER] By signing below, I acknowledge these risks and release Riverbend Climbing Gym, its owners, and staff from liability for injuries arising from ordinary negligence, to the extent permitted by law.",
            "[PLACEHOLDER] This waiver does not release the gym from liability for gross negligence or intentional misconduct."
          ] },
        { "id": "participant_name", "type": "short_text", "prompt": "Participant full name",
          "required": true, "placeholder": "Jordan Smith" },
        { "id": "participant_email", "type": "email", "prompt": "Email address",
          "required": true, "placeholder": "you@example.com" },
        { "id": "participant_phone", "type": "phone", "prompt": "Phone number",
          "required": true },
        { "id": "activity_date", "type": "date", "prompt": "Date of activity" },
        { "id": "under_18", "type": "yes_no", "prompt": "Is the participant under 18?",
          "required": true },
        { "id": "guardian_name", "type": "short_text", "prompt": "Parent or guardian full name",
          "required": true,
          "show_if": { "question": "under_18", "op": "eq", "value": "yes" } },
        { "id": "guardian_consent", "type": "consent",
          "prompt": "I am the participant's parent or legal guardian and I consent to their participation and to this waiver on their behalf.",
          "required": true,
          "show_if": { "question": "under_18", "op": "eq", "value": "yes" } }
      ]
    },
    {
      "key": "emergency",
      "title": "Emergency contact",
      "questions": [
        { "id": "emergency_name", "type": "short_text", "prompt": "Emergency contact name",
          "required": true },
        { "id": "emergency_phone", "type": "phone", "prompt": "Emergency contact phone",
          "required": true },
        { "id": "has_medical_conditions", "type": "yes_no",
          "prompt": "Does the participant have any medical conditions or allergies we should know about?",
          "required": true },
        { "id": "medical_details", "type": "long_text",
          "prompt": "Please describe, including any medications carried.",
          "rows": 4,
          "show_if": { "question": "has_medical_conditions", "op": "eq", "value": "yes" } }
      ]
    },
    {
      "key": "agreement",
      "title": "Agreement",
      "questions": [
        { "id": "agreement", "type": "consent",
          "prompt": "I have read and agree to the waiver of liability above.",
          "required": true }
      ]
    }
  ]
}

What each piece is doing

  • kind: "form" — everything on one page with a progress bar, which fits a document someone reads once and completes in order, rather than a quiz stepped through one question per screen.
  • waiver_text — a statement question: title + body (an array of paragraphs), display-only, collects nothing. This is where your lawyer's actual waiver language goes, not the placeholder text shown above.
  • participant_phone and activity_date use the dedicated phone and date types rather than generic text fields, so QuizGen validates the format instead of accepting anything typed in.
  • under_18 + show_if — a yes reveals guardian_name and a second consent question for the guardian, so a minor's registration requires a guardian's agreement rather than the minor's own. show_if supports exactly one condition referencing an earlier question; hidden questions are never required.
  • has_medical_conditions + show_if on medical_details — the detail box only appears when there's something to say, instead of showing an empty text field to everyone.
  • agreement — the required consent question that stands in for the signature. With collect_respondent: "email_required", every response is tied to a real email address, so the stored record is a timestamped, attributable "yes I agree" — not an anonymous checkbox.

What this actually records — and its limits

Be clear-eyed about what you're getting versus a dedicated e-signature product:

  • QuizGen records a checkbox agreement with a timestamp and an email address. It does not produce a cryptographically signed PDF, an audit certificate, or a chain-of-custody record the way DocuSign or Dropbox Sign do.
  • You can attach a photo — a scanned ID, an insurance card, or a picture of a signed paper form — using a file_upload question on the Pro or Business plan. That strengthens the record, but it is still a photo stored next to a checkbox, not a signature a court-ready audit trail is built around.
  • If you need a legally robust, independently verifiable signed document — for higher-risk activities, insurance requirements, or anywhere your liability exposure is significant — use a real e-signature product built for that, and ask your lawyer whether it needs to be paired with an in-person or notarized process for your activity.

QuizGen's honest use case here is a low-friction, good-faith record for lower-risk activities (gyms, rentals, day trips, kids' classes) where "we have their name, contact info, and a timestamped agreement" is what your lawyer says is sufficient — not a substitute for a signed legal instrument where more is required.

Optional: collect a photo ID

The template above works on every plan. If you're on Pro or Business and your process needs a photo — an ID, an insurance card, a guardian's signed paper consent — add this question to the participant section:

{ "id": "photo_id", "type": "file_upload",
  "prompt": "Upload a photo of your ID",
  "help": "A clear photo or scan is fine.",
  "max_files": 1, "accept": ["image", "pdf"] }

Leave it out on the free plan — a definition containing file_upload returns 402 plan_limit there. And think before you ask: ID photos are sensitive personal data, so collect them only if you genuinely need them, and know how long you're keeping them.

Customize it with an AI assistant

Because it's plain JSON against a documented schema, an AI assistant connected to QuizGen's MCP server can adapt the structure directly — though it should never write your waiver language for you. For example:

Read https://quizgen.dev/blog/liability-waiver-form-template.md and rebuild the structure for a kayak rental business — keep the emergency contact and minor/guardian sections, but leave the waiver_text body exactly as three placeholder paragraphs I'll fill in with my lawyer's wording. Give me the live link.

FAQ

Is a checkbox "signature" enforceable? It depends entirely on your jurisdiction and activity — ask a lawyer. Many places treat a clear, attributable electronic agreement as valid for lower-risk activities, but this varies enough that a blanket answer would be irresponsible to give.

Can I collect a real drawn signature? Not in QuizGen — there's no signature-pad or file-upload question type. If a drawn signature is a hard requirement, use DocuSign or Dropbox Sign instead.

What about minors? Use the under_18 yes_no question with show_if to reveal guardian name and consent fields, as in the template above — the guardian's consent, not the minor's, is what should govern whether they can participate.

Can I require the waiver be re-signed each visit? Yes — send the same link (or a fresh POST of the definition) each time and treat every completed response as a new signature; GET /quizzes/:id/responses shows you each one by completed_at.

Where do responses go? Your dashboard at quizgen.dev/dashboard, or export via GET /quizzes/:id/responses — add ?format=csv for a spreadsheet you can hand to insurance or legal on request.

$ curl quizgen.dev/blog/liability-waiver-form-template.md

This guide as raw markdown — no HTML for your agent to parse.

View .md

Keep reading