A key request form for every door you manage

Updated 2026-10-30

Keys have a habit of disappearing into pockets. A landlord, a caretaker or a club secretary is then left asking who had the shed key in March. I want one list: who asked, which key, why, and who said yes.

Who it is for

Landlords and property managers, school and club caretakers, small offices and shared workspaces that hand out keys, fobs or gate tags.

What each question is for

  • Which key and which door: the exact key, not "the office key".
  • Reason: a lost key and a new starter are handled differently.
  • Copies and dates: show how many keys are out and for how long.
  • Approver: who said yes, so you can ask them.
  • Hand-back box: a plain reminder.

What a requester's AI would ask

"Which door is the key for?" Then "Why do you need it?" Then "By what date?" It shows the answers and sends them only after a yes. See agent-fillable forms.

Before you use it

The form is a key log sheet. It does not issue keys or open doors. Hand keys over in person and note the hand-over yourself. A lost key may mean a new lock, so book that as a repair with a work order request. Temporary passes for guests fit a visitor registration form. See IT and operations forms and forms for real estate and landlords.

Questions

Does the form show who has which key now?

Not on its own. Each row is a request. Keep your own list of keys out, or sort the CSV by `door_or_unit` and `return_by` to see what should be back.

What if a key is lost?

The reason list has a lost key choice, plus a field for when it was last seen. Use that to decide whether a lock change is needed, and book it as a repair.

Can contractors request keys?

Yes. The reason list has contractor access. Ask who approved the request and set a return date, so you can chase the key when the job is done.

Try the form

Live demo ยท nothing is saved

Request a key

Tell us which key you need and why. We hand keys over in person after approval.

Which kind of key? (required)
Why do you need it? (required)

For borrowed keys only.

I will hand the key back when asked

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": "Request a key",
  "description": "Tell us which key you need and why. We hand keys over in person after approval.",
  "fields": [
    {
      "id": "requester_name",
      "label": "Your name",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "requester_phone",
      "label": "Your phone",
      "type": "phone",
      "required": true
    },
    {
      "id": "door_or_unit",
      "label": "Door, unit or room the key is for",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "key_type",
      "label": "Which kind of key?",
      "type": "single_choice",
      "required": true,
      "options": [
        "Front door",
        "Unit or office",
        "Mailbox",
        "Storage room",
        "Gate or fob",
        "Master key"
      ]
    },
    {
      "id": "key_reason",
      "label": "Why do you need it?",
      "type": "single_choice",
      "required": true,
      "options": [
        "New tenant or starter",
        "Lost key",
        "Extra copy",
        "Contractor access",
        "Temporary borrow"
      ]
    },
    {
      "id": "copies_needed",
      "label": "How many copies?",
      "type": "number",
      "min": 1,
      "max": 5
    },
    {
      "id": "needed_by",
      "label": "Needed by",
      "type": "date"
    },
    {
      "id": "return_by",
      "label": "Date you will return it",
      "type": "date",
      "help": "For borrowed keys only."
    },
    {
      "id": "approved_by",
      "label": "Who approved this?",
      "type": "short_text",
      "max_length": 150
    },
    {
      "id": "last_seen_date",
      "label": "If lost, when did you last have it?",
      "type": "date"
    },
    {
      "id": "will_hand_back",
      "label": "I will hand the key back when asked",
      "type": "checkbox"
    },
    {
      "id": "key_notes",
      "label": "Anything else",
      "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":"Request a key","description":"Tell us which key you need and why. We hand keys over in person after approval.","fields":[{"id":"requester_name","label":"Your name","type":"short_text","required":true,"max_length":150},{"id":"requester_phone","label":"Your phone","type":"phone","required":true},{"id":"door_or_unit","label":"Door, unit or room the key is for","type":"short_text","required":true,"max_length":150},{"id":"key_type","label":"Which kind of key?","type":"single_choice","required":true,"options":["Front door","Unit or office","Mailbox","Storage room","Gate or fob","Master key"]},{"id":"key_reason","label":"Why do you need it?","type":"single_choice","required":true,"options":["New tenant or starter","Lost key","Extra copy","Contractor access","Temporary borrow"]},{"id":"copies_needed","label":"How many copies?","type":"number","min":1,"max":5},{"id":"needed_by","label":"Needed by","type":"date"},{"id":"return_by","label":"Date you will return it","type":"date","help":"For borrowed keys only."},{"id":"approved_by","label":"Who approved this?","type":"short_text","max_length":150},{"id":"last_seen_date","label":"If lost, when did you last have it?","type":"date"},{"id":"will_hand_back","label":"I will hand the key back when asked","type":"checkbox"},{"id":"key_notes","label":"Anything else","type":"long_text","max_length":500}]}'

JSON definition

json
{
  "title": "Request a key",
  "description": "Tell us which key you need and why. We hand keys over in person after approval.",
  "fields": [
    {
      "id": "requester_name",
      "label": "Your name",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "requester_phone",
      "label": "Your phone",
      "type": "phone",
      "required": true
    },
    {
      "id": "door_or_unit",
      "label": "Door, unit or room the key is for",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "key_type",
      "label": "Which kind of key?",
      "type": "single_choice",
      "required": true,
      "options": [
        "Front door",
        "Unit or office",
        "Mailbox",
        "Storage room",
        "Gate or fob",
        "Master key"
      ]
    },
    {
      "id": "key_reason",
      "label": "Why do you need it?",
      "type": "single_choice",
      "required": true,
      "options": [
        "New tenant or starter",
        "Lost key",
        "Extra copy",
        "Contractor access",
        "Temporary borrow"
      ]
    },
    {
      "id": "copies_needed",
      "label": "How many copies?",
      "type": "number",
      "min": 1,
      "max": 5
    },
    {
      "id": "needed_by",
      "label": "Needed by",
      "type": "date"
    },
    {
      "id": "return_by",
      "label": "Date you will return it",
      "type": "date",
      "help": "For borrowed keys only."
    },
    {
      "id": "approved_by",
      "label": "Who approved this?",
      "type": "short_text",
      "max_length": 150
    },
    {
      "id": "last_seen_date",
      "label": "If lost, when did you last have it?",
      "type": "date"
    },
    {
      "id": "will_hand_back",
      "label": "I will hand the key back when asked",
      "type": "checkbox"
    },
    {
      "id": "key_notes",
      "label": "Anything else",
      "type": "long_text",
      "max_length": 500
    }
  ]
}