A giveaway entry form for fair, countable entries

Updated 2026-10-30

Giveaway entries pile up as comments, direct messages and screenshots. I cannot count them, and a winner picked from a comment thread is hard to explain afterwards. A form gives every entry a row and the same few facts.

Use this when

  • You run a prize giveaway for a product, a bundle or a gift, and want every entry in one list.
  • You need each entrant's country and an age confirmation.
  • You want to say "one entry per person" and check it.

Skip it when

  • You want the form to pick the winner. It has no draw tool. You choose from the CSV yourself.
  • Entry needs a photo. A photo contest entry form fits that.

What is asked, and why

Name and email, so you can reach the winner. Country, so you can check who is eligible. The age and rules boxes record that the entrant read your terms. The follow and source questions show what worked. The tie-break sentence gives you a fair way to compare entries.

What an entrant's AI would ask

"What is your name and email?" Then "Which country do you live in?" Then "Have you read the rules?" It shows the answers and sends them only after a yes. See agent-fillable forms.

One tip and one note

Sort the CSV by email to remove repeat entries before the draw. This is a form, not legal advice. Giveaway and prize rules differ by country and by platform, so have a professional check your rules.

Creators who run the giveaway with you can apply with a UGC form. See forms for creators and podcasters and forms for ecommerce and Shopify stores.

Questions

How do I pick a winner fairly?

Remove repeat emails from the CSV, number the rows, and draw a number in a way you can show others. The form has no draw tool, so the method is yours to publish.

Can I close entries on a date?

Yes. Set `close_at` to the closing time of your giveaway, and the form stops accepting entries then. State the time zone in your rules.

Why is the prize address not asked?

Only the winner needs an address. Ask for it by email after the draw, so you hold fewer personal details for everyone else.

Try the form

Live demo ยท nothing is saved

Enter our giveaway

One entry per person. Please fill this in before the closing date.

We use this to check you are eligible.

I am 18 or over (required)
I have read the giveaway rules (required)
I follow the account
How did you find the giveaway?
Add me to the newsletter

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": "Enter our giveaway",
  "description": "One entry per person. Please fill this in before the closing date.",
  "fields": [
    {
      "id": "entrant_name",
      "label": "Your name",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "entrant_email",
      "label": "Your email",
      "type": "email",
      "required": true
    },
    {
      "id": "social_handle",
      "label": "Your social handle",
      "type": "short_text",
      "max_length": 100
    },
    {
      "id": "country_or_region",
      "label": "Country or region you live in",
      "type": "short_text",
      "required": true,
      "help": "We use this to check you are eligible.",
      "max_length": 100
    },
    {
      "id": "over_eighteen",
      "label": "I am 18 or over",
      "type": "checkbox",
      "required": true
    },
    {
      "id": "rules_read",
      "label": "I have read the giveaway rules",
      "type": "checkbox",
      "required": true
    },
    {
      "id": "follows_account",
      "label": "I follow the account",
      "type": "checkbox"
    },
    {
      "id": "how_found",
      "label": "How did you find the giveaway?",
      "type": "single_choice",
      "options": [
        "Instagram",
        "TikTok",
        "YouTube",
        "Newsletter",
        "A friend",
        "Other"
      ]
    },
    {
      "id": "tagged_friend",
      "label": "Friend you tagged",
      "type": "short_text",
      "max_length": 100
    },
    {
      "id": "tiebreak_answer",
      "label": "In one sentence, why do you want to win?",
      "type": "long_text",
      "max_length": 300
    },
    {
      "id": "newsletter_ok",
      "label": "Add me to the newsletter",
      "type": "checkbox"
    }
  ]
}

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":"Enter our giveaway","description":"One entry per person. Please fill this in before the closing date.","fields":[{"id":"entrant_name","label":"Your name","type":"short_text","required":true,"max_length":150},{"id":"entrant_email","label":"Your email","type":"email","required":true},{"id":"social_handle","label":"Your social handle","type":"short_text","max_length":100},{"id":"country_or_region","label":"Country or region you live in","type":"short_text","required":true,"help":"We use this to check you are eligible.","max_length":100},{"id":"over_eighteen","label":"I am 18 or over","type":"checkbox","required":true},{"id":"rules_read","label":"I have read the giveaway rules","type":"checkbox","required":true},{"id":"follows_account","label":"I follow the account","type":"checkbox"},{"id":"how_found","label":"How did you find the giveaway?","type":"single_choice","options":["Instagram","TikTok","YouTube","Newsletter","A friend","Other"]},{"id":"tagged_friend","label":"Friend you tagged","type":"short_text","max_length":100},{"id":"tiebreak_answer","label":"In one sentence, why do you want to win?","type":"long_text","max_length":300},{"id":"newsletter_ok","label":"Add me to the newsletter","type":"checkbox"}]}'

JSON definition

json
{
  "title": "Enter our giveaway",
  "description": "One entry per person. Please fill this in before the closing date.",
  "fields": [
    {
      "id": "entrant_name",
      "label": "Your name",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "entrant_email",
      "label": "Your email",
      "type": "email",
      "required": true
    },
    {
      "id": "social_handle",
      "label": "Your social handle",
      "type": "short_text",
      "max_length": 100
    },
    {
      "id": "country_or_region",
      "label": "Country or region you live in",
      "type": "short_text",
      "required": true,
      "help": "We use this to check you are eligible.",
      "max_length": 100
    },
    {
      "id": "over_eighteen",
      "label": "I am 18 or over",
      "type": "checkbox",
      "required": true
    },
    {
      "id": "rules_read",
      "label": "I have read the giveaway rules",
      "type": "checkbox",
      "required": true
    },
    {
      "id": "follows_account",
      "label": "I follow the account",
      "type": "checkbox"
    },
    {
      "id": "how_found",
      "label": "How did you find the giveaway?",
      "type": "single_choice",
      "options": [
        "Instagram",
        "TikTok",
        "YouTube",
        "Newsletter",
        "A friend",
        "Other"
      ]
    },
    {
      "id": "tagged_friend",
      "label": "Friend you tagged",
      "type": "short_text",
      "max_length": 100
    },
    {
      "id": "tiebreak_answer",
      "label": "In one sentence, why do you want to win?",
      "type": "long_text",
      "max_length": 300
    },
    {
      "id": "newsletter_ok",
      "label": "Add me to the newsletter",
      "type": "checkbox"
    }
  ]
}