A song request form guests can answer in a minute

Updated 2026-10-30

A DJ can only play so many songs. Requests shouted across the dance floor are loud, hard to remember and often forgotten by midnight. I would collect them weeks ahead in one link, so the set can be built around what people want.

The song

Title, artist and an optional link. These make each request clear, because many songs have more than one version.

The moment

A mood choice (slow dance, singalong, floor filler, throwback or dinner music) and who the song is for. This tells the DJ where in the night it belongs. A dedication note gives the DJ a story to share.

The limits

A tick box for the clean version, and a box for songs a guest would rather not hear. These protect the mood in a mixed crowd, from grandparents to children.

Who fills it and who reads it

Guests fill it in. The couple, the planner or the DJ reads the CSV. A guest can also ask their own AI. It might ask "Which song would you like to hear?" Then "Who is it for?" Then "Is it a floor filler or a slow dance?" It shows all the answers and sends only after a yes. See agent-fillable forms.

A tip

Put the link beside your invitation reply and set close_at a week before the day, so the DJ has time to prepare. Pair it with a wedding RSVP form and a wedding guest book. Hiring a DJ or planner first? An event planner questionnaire covers the inquiry. Browse forms for weddings and forms for events.

Questions

How does the DJ sort a long list of requests?

Download the CSV and sort by dance_mood. That groups slow dances, singalongs and floor fillers, so the DJ can slot each request into the right part of the night.

Can guests say which songs not to play?

Yes. An optional box collects songs a guest would rather not hear. Read it beside the couple's own do-not-play list before you build the set.

Does a guest need a streaming link?

No. The link is optional, and title and artist are enough. A link helps when a song has many versions, because the DJ can open the one the guest means.

Try the form

Live demo ยท nothing is saved

What should we dance to?

Send us the songs that get you moving. The DJ reads every request before the night.

How do you know the hosts?
Where in the night does it fit? (required)
Please play the clean version

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": "What should we dance to?",
  "description": "Send us the songs that get you moving. The DJ reads every request before the night.",
  "fields": [
    {
      "id": "guest_name",
      "label": "Your name",
      "type": "short_text",
      "required": true,
      "max_length": 120
    },
    {
      "id": "relation_to_hosts",
      "label": "How do you know the hosts?",
      "type": "single_choice",
      "options": [
        "Family",
        "Friend",
        "Colleague",
        "Neighbour",
        "Other"
      ]
    },
    {
      "id": "song_title",
      "label": "Song title",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "artist_name",
      "label": "Artist",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "song_link",
      "label": "Link to the song",
      "type": "url",
      "help": "Helps when a song has several versions."
    },
    {
      "id": "dance_mood",
      "label": "Where in the night does it fit?",
      "type": "single_choice",
      "required": true,
      "options": [
        "Slow dance",
        "Singalong",
        "Floor filler",
        "Throwback",
        "Dinner background music"
      ]
    },
    {
      "id": "dedicated_to",
      "label": "Who is it for?",
      "type": "short_text",
      "max_length": 120
    },
    {
      "id": "dedication_note",
      "label": "Why this song?",
      "type": "long_text",
      "max_length": 500
    },
    {
      "id": "clean_version",
      "label": "Please play the clean version",
      "type": "checkbox"
    },
    {
      "id": "second_song",
      "label": "A second song, if the first is not possible",
      "type": "short_text",
      "max_length": 200
    },
    {
      "id": "songs_to_skip",
      "label": "Songs you would rather not hear",
      "type": "long_text",
      "max_length": 500
    }
  ]
}

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":"What should we dance to?","description":"Send us the songs that get you moving. The DJ reads every request before the night.","fields":[{"id":"guest_name","label":"Your name","type":"short_text","required":true,"max_length":120},{"id":"relation_to_hosts","label":"How do you know the hosts?","type":"single_choice","options":["Family","Friend","Colleague","Neighbour","Other"]},{"id":"song_title","label":"Song title","type":"short_text","required":true,"max_length":150},{"id":"artist_name","label":"Artist","type":"short_text","required":true,"max_length":150},{"id":"song_link","label":"Link to the song","type":"url","help":"Helps when a song has several versions."},{"id":"dance_mood","label":"Where in the night does it fit?","type":"single_choice","required":true,"options":["Slow dance","Singalong","Floor filler","Throwback","Dinner background music"]},{"id":"dedicated_to","label":"Who is it for?","type":"short_text","max_length":120},{"id":"dedication_note","label":"Why this song?","type":"long_text","max_length":500},{"id":"clean_version","label":"Please play the clean version","type":"checkbox"},{"id":"second_song","label":"A second song, if the first is not possible","type":"short_text","max_length":200},{"id":"songs_to_skip","label":"Songs you would rather not hear","type":"long_text","max_length":500}]}'

JSON definition

json
{
  "title": "What should we dance to?",
  "description": "Send us the songs that get you moving. The DJ reads every request before the night.",
  "fields": [
    {
      "id": "guest_name",
      "label": "Your name",
      "type": "short_text",
      "required": true,
      "max_length": 120
    },
    {
      "id": "relation_to_hosts",
      "label": "How do you know the hosts?",
      "type": "single_choice",
      "options": [
        "Family",
        "Friend",
        "Colleague",
        "Neighbour",
        "Other"
      ]
    },
    {
      "id": "song_title",
      "label": "Song title",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "artist_name",
      "label": "Artist",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "song_link",
      "label": "Link to the song",
      "type": "url",
      "help": "Helps when a song has several versions."
    },
    {
      "id": "dance_mood",
      "label": "Where in the night does it fit?",
      "type": "single_choice",
      "required": true,
      "options": [
        "Slow dance",
        "Singalong",
        "Floor filler",
        "Throwback",
        "Dinner background music"
      ]
    },
    {
      "id": "dedicated_to",
      "label": "Who is it for?",
      "type": "short_text",
      "max_length": 120
    },
    {
      "id": "dedication_note",
      "label": "Why this song?",
      "type": "long_text",
      "max_length": 500
    },
    {
      "id": "clean_version",
      "label": "Please play the clean version",
      "type": "checkbox"
    },
    {
      "id": "second_song",
      "label": "A second song, if the first is not possible",
      "type": "short_text",
      "max_length": 200
    },
    {
      "id": "songs_to_skip",
      "label": "Songs you would rather not hear",
      "type": "long_text",
      "max_length": 500
    }
  ]
}