Generate a move-in condition walkthrough checklist
A careful move-in walkthrough creates a shared record of a property's condition before boxes, furniture, and everyday activity make causes difficult to establish.
Run — free
This generator builds a consistent checklist for an apartment or house, with individually numbered rooms plus the kitchen, bathroom, entrance, utilities, safety points, and property-specific areas. Use it to guide an inspection, note defects precisely, and organize supporting photographs. It is a practical template rather than a legal determination or a substitute for a qualified inspection when safety or structural concerns arise.
Prepare a record that can be understood later
Schedule the walkthrough before belongings arrive, ideally while the property is empty and there is enough daylight to see surfaces clearly. Bring a phone or camera, a charger, a small plug-in tester only if you know how to use it safely, and access to this checklist. Confirm the property address, inspection date, names of those present, keys received, and any inventory supplied by the landlord or seller in a separate record. The generated template numbers each requested room instead of guessing whether it is a bedroom, office, dining room, or another use. Rename those room headings in your working copy if helpful, but keep a stable numbering scheme so photographs and notes point to an unmistakable place. Take wide photographs first, followed by close views of each defect. Avoid vague phrases such as “some marks.” Describe the wall, corner, fixture, approximate size, color, and photograph reference. Do not move panels, open sealed equipment, climb onto roofs, or test anything that appears unsafe. A move-in record documents visible condition; it does not replace specialist electrical, gas, pest, mold, or structural assessment.
Walk through every room in the same order
Consistency makes omissions less likely. In each numbered room, begin at the doorway and work clockwise through walls, ceiling, windows, doors, floors, trim, fixtures, outlets, heating, cooling, and supplied contents. Operate ordinary controls gently and stop if there is heat, sparking, a burning smell, loose wiring, active water intrusion, or any other warning sign. Record the condition without attempting a repair. The checklist then covers shared functional areas that need more specific tests. In the kitchen, inspect storage, counters, water, drainage, ventilation, and supplied appliances through basic normal operation. In the bathroom, check taps, toilet, shower or bath, seals, ventilation, and visible moisture. At the entrance, reconcile keys and access devices and review alarms and guards. For a house, the template adds exterior, yard, fence, garage, and drainage observations. For an apartment, it adds balcony, intercom, building access, mailbox, storage, and the nearby common area. These sections are standard prompts, so remove an item only when it clearly does not exist and mark it “not applicable” in the retained record rather than silently skipping it.
Close the walkthrough with evidence and follow-up
Before leaving, review every section for blank items and distinguish “checked with no visible issue” from “not checked.” That distinction matters because silence does not explain whether an item was satisfactory, inaccessible, unsafe, or simply forgotten. Photograph utility readings where meters are safely accessible, and retain the original image files with their timestamps and full resolution. Create a defect list that gives each issue a short identifier, exact location, description, photograph reference, and the person who should respond. Urgent conditions such as an active leak, gas odor, exposed live wiring, failed exterior lock, or missing critical safety device should be reported through the property manager's emergency process immediately; the checklist itself does not create a repair request. Send the completed record through a traceable channel within any deadline in the lease, handover documents, or local rules, and keep proof of delivery. Ask the landlord, agent, manager, seller, or other responsible party to acknowledge disputed entries in writing. Store the final checklist, original photographs, inventory, correspondence, and later repair evidence together. The API costs $0.002 per request, while the browser version can generate the same deterministic template locally.
What you can do with it
Tenant move-in documentation
Create a repeatable inspection template before occupying a rental and link every noted defect to clear photographs.
Property manager handover
Give incoming residents a consistent room-by-room form that covers access devices, utilities, fixtures, and shared areas.
Home purchase handover
Organize a visible-condition walkthrough at possession while keeping specialist inspections and contractual remedies separate.
FAQ
What does it cost?
The API costs $0.002 per request. The browser version can generate the checklist locally.
What does the number of rooms mean?
It is the number of general-purpose rooms you want numbered individually. Kitchen, bathroom, entrance, utilities, and property-specific areas are added separately.
Can I generate a checklist with zero rooms?
No. The number of rooms must be an integer of at least one.
Does this replace a professional home inspection?
No. It documents visible move-in condition and basic normal operation; qualified specialists should assess structural, electrical, gas, mold, pest, or other safety concerns.
Why are the rooms numbered instead of named?
A room count does not reveal how each space is used. Neutral numbering avoids incorrect assumptions and can be renamed in your working copy.
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/realestate/moving-in-walkthrough-checklist \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"property_type":"apartment","rooms":2}'const res = await fetch("https://api.kit.forhosting.com/realestate/moving-in-walkthrough-checklist", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"property_type": "apartment",
"rooms": 2
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/realestate/moving-in-walkthrough-checklist",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"property_type": "apartment",
"rooms": 2
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/realestate/moving-in-walkthrough-checklist", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"property_type":"apartment","rooms":2}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"property_type":"apartment","rooms":2}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/realestate/moving-in-walkthrough-checklist", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"property_type": "apartment",
"rooms": 2
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "realestate.moving_in_walkthrough_checklist",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |