Player profile template for teams and clubs

Updated 2026-10-30

Team pages, programmes and banners all need the same facts about each player. Chasing them one by one takes a season. I would rather send one link and get a tidy row for every player.

Who it is for

Coaches, club secretaries and team managers who build a roster page, a match-day programme or a squad poster. It works for youth and adult players.

What each question is for

  • Preferred name and year of birth: the name on the page and the right age group.
  • Position, strong side, years played: a quick picture of the player.
  • Shirt number, two choices: so you can solve clashes before kit is ordered.
  • Strengths, goal and fun fact: lines for the profile text.
  • Photo link: a public link, because files cannot be uploaded.
  • Guardian contact and permission box: for players under 18, and to confirm the profile may be shown.

What a player's AI would ask

"Which shirt number would you like?" Then "What are you good at?" Then "Is a parent or guardian allowed to be listed?" It shows the answers and sends only after a yes. Read about agent-fillable forms.

Before you use it

Ask for one photo link at most. Browse forms for sports clubs and teams. Pair the profile with a player registration form at sign-up, and a player evaluation form for coaches later in the season.

Questions

How do I handle two players who want the same shirt number?

The form asks for a first and a second choice. Sort the CSV by the first choice column, spot the clashes, and give the second choice to whoever signed up later.

Can this work as an athlete profile form for adults?

Yes. Adults can leave the parent or guardian fields empty. Those fields are optional, and only the permission box and a few basics are required.

What do I do with the photo link?

Open each link, check the photo suits your team page, and save it where you keep club media. The form never stores photos itself.

Try the form

Live demo ยท nothing is saved

Your player profile

Tell us a little about you for the team page and the programme. Short answers are fine.

We use it to place you in the right age group.

Which side is stronger?

Share a public link. File uploads are not supported.

My profile may be shown on the team page (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": "Your player profile",
  "description": "Tell us a little about you for the team page and the programme. Short answers are fine.",
  "fields": [
    {
      "id": "preferred_name",
      "label": "Name you like to be called",
      "type": "short_text",
      "required": true,
      "max_length": 100
    },
    {
      "id": "year_of_birth",
      "label": "Year of birth",
      "type": "number",
      "required": true,
      "help": "We use it to place you in the right age group.",
      "min": 1940,
      "max": 2025
    },
    {
      "id": "position_or_role",
      "label": "Position or role",
      "type": "short_text",
      "max_length": 100
    },
    {
      "id": "jersey_first_choice",
      "label": "Shirt number, first choice",
      "type": "number",
      "min": 0,
      "max": 99
    },
    {
      "id": "jersey_second_choice",
      "label": "Shirt number, second choice",
      "type": "number",
      "min": 0,
      "max": 99
    },
    {
      "id": "strong_side",
      "label": "Which side is stronger?",
      "type": "single_choice",
      "options": [
        "Right",
        "Left",
        "Both about the same"
      ]
    },
    {
      "id": "years_played",
      "label": "How many years have you played?",
      "type": "number",
      "min": 0,
      "max": 40
    },
    {
      "id": "player_strengths",
      "label": "What are you good at?",
      "type": "long_text",
      "max_length": 600
    },
    {
      "id": "season_goal",
      "label": "One goal for this season",
      "type": "short_text",
      "max_length": 200
    },
    {
      "id": "fun_fact",
      "label": "A fun fact for your profile",
      "type": "short_text",
      "max_length": 200
    },
    {
      "id": "profile_photo_url",
      "label": "Link to a photo we may use",
      "type": "url",
      "help": "Share a public link. File uploads are not supported."
    },
    {
      "id": "guardian_name",
      "label": "Parent or guardian name, if you are under 18",
      "type": "short_text",
      "max_length": 150
    },
    {
      "id": "guardian_phone",
      "label": "Parent or guardian phone",
      "type": "phone"
    },
    {
      "id": "profile_may_be_shown",
      "label": "My profile may be shown on the team page",
      "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":"Your player profile","description":"Tell us a little about you for the team page and the programme. Short answers are fine.","fields":[{"id":"preferred_name","label":"Name you like to be called","type":"short_text","required":true,"max_length":100},{"id":"year_of_birth","label":"Year of birth","type":"number","required":true,"help":"We use it to place you in the right age group.","min":1940,"max":2025},{"id":"position_or_role","label":"Position or role","type":"short_text","max_length":100},{"id":"jersey_first_choice","label":"Shirt number, first choice","type":"number","min":0,"max":99},{"id":"jersey_second_choice","label":"Shirt number, second choice","type":"number","min":0,"max":99},{"id":"strong_side","label":"Which side is stronger?","type":"single_choice","options":["Right","Left","Both about the same"]},{"id":"years_played","label":"How many years have you played?","type":"number","min":0,"max":40},{"id":"player_strengths","label":"What are you good at?","type":"long_text","max_length":600},{"id":"season_goal","label":"One goal for this season","type":"short_text","max_length":200},{"id":"fun_fact","label":"A fun fact for your profile","type":"short_text","max_length":200},{"id":"profile_photo_url","label":"Link to a photo we may use","type":"url","help":"Share a public link. File uploads are not supported."},{"id":"guardian_name","label":"Parent or guardian name, if you are under 18","type":"short_text","max_length":150},{"id":"guardian_phone","label":"Parent or guardian phone","type":"phone"},{"id":"profile_may_be_shown","label":"My profile may be shown on the team page","type":"checkbox","required":true}]}'

JSON definition

json
{
  "title": "Your player profile",
  "description": "Tell us a little about you for the team page and the programme. Short answers are fine.",
  "fields": [
    {
      "id": "preferred_name",
      "label": "Name you like to be called",
      "type": "short_text",
      "required": true,
      "max_length": 100
    },
    {
      "id": "year_of_birth",
      "label": "Year of birth",
      "type": "number",
      "required": true,
      "help": "We use it to place you in the right age group.",
      "min": 1940,
      "max": 2025
    },
    {
      "id": "position_or_role",
      "label": "Position or role",
      "type": "short_text",
      "max_length": 100
    },
    {
      "id": "jersey_first_choice",
      "label": "Shirt number, first choice",
      "type": "number",
      "min": 0,
      "max": 99
    },
    {
      "id": "jersey_second_choice",
      "label": "Shirt number, second choice",
      "type": "number",
      "min": 0,
      "max": 99
    },
    {
      "id": "strong_side",
      "label": "Which side is stronger?",
      "type": "single_choice",
      "options": [
        "Right",
        "Left",
        "Both about the same"
      ]
    },
    {
      "id": "years_played",
      "label": "How many years have you played?",
      "type": "number",
      "min": 0,
      "max": 40
    },
    {
      "id": "player_strengths",
      "label": "What are you good at?",
      "type": "long_text",
      "max_length": 600
    },
    {
      "id": "season_goal",
      "label": "One goal for this season",
      "type": "short_text",
      "max_length": 200
    },
    {
      "id": "fun_fact",
      "label": "A fun fact for your profile",
      "type": "short_text",
      "max_length": 200
    },
    {
      "id": "profile_photo_url",
      "label": "Link to a photo we may use",
      "type": "url",
      "help": "Share a public link. File uploads are not supported."
    },
    {
      "id": "guardian_name",
      "label": "Parent or guardian name, if you are under 18",
      "type": "short_text",
      "max_length": 150
    },
    {
      "id": "guardian_phone",
      "label": "Parent or guardian phone",
      "type": "phone"
    },
    {
      "id": "profile_may_be_shown",
      "label": "My profile may be shown on the team page",
      "type": "checkbox",
      "required": true
    }
  ]
}