WalkthruSign inStart free

Help and API

Walkthru is a punch list app for home builders, remodelers and general contractors. This page covers the app, connecting an AI assistant (MCP), and the REST API. It's written to be readable by people and by AI agents.

Quick start

  1. Open walkthru.build/app on your phone and create an account with your email and a password (or Google). Every account starts with 14 days of Pro, no card.
  2. Create your company and paste your website. Walkthru pulls your logo, brand color, phone and email and puts them on everything your subs see. Adjust under Settings → Brand.
  3. Import your subs: Subs → Import, from Excel/CSV, a .vcf contacts file, your phone's contacts, or a pasted list. Duplicates are merged. Or just type a sub's name on an item and it's created.
  4. Add teammates by email under Settings → Team; they sign in with that email and see everything.
  5. Tap New job, name the house, and start walking. Tap +: pick the room, tap the trade, tap a common item or type a few words, Add. Room and trade stick between items. The first time you pick a trade it asks who does it; after that items are assigned automatically.
  6. No signal? Keep going. Items, photos and check-offs save on the phone and sync on their own when you're back in range. The top of the screen says "Offline · N saved on phone" until they're up.
  7. Say it. Tap the mic and say "kitchen, paint, touch up above the door": Walkthru sets the room and trade and fills in the item. Check it, tap Add.
  8. Tap the share icon. Each sub with a phone or email gets a Text / Email button that sends them a read-only link to their open items with photos. No account needed on their end.
  9. The sub taps Mark fixed on each item. You see "Sub says fixed" on the item and "ready to check" on the job, confirm it on your re-walk, and tap the circle to close it.
  10. On iPhone: Share → Add to Home Screen for a full-screen app with camera access.

Concepts

ThingWhat it is
CompanyYour builder. Owns all jobs, subs, team members, API keys and the plan.
Job (project)One house. Has a name, address, status (active / archived) and its punch items. Free plan: 1 active job. Pro: unlimited.
ItemA punch list item: title, room, sub, priority (low / normal / high), notes, due, photos, status (open / done), subFixed (the sub says it's done; you still confirm).
TradeA preloaded list (Paint, Trim, Tile, Plumbing, Electrical, HVAC, …) with common items under each. Settings → Your trades maps each trade to your sub once; items pick the sub automatically. Hide trades you don't use.
RoomPreloaded in walking order (Exterior → Garage → Entry → … → Site). Settings → Your rooms hides or adds rooms; your order is used everywhere.
SubA subcontractor or vendor shared across all jobs: name, trade, phone, email. Assigning an item to a name that doesn't exist creates the sub.
Share linkA read-only web page of a job's open items, optionally filtered to one sub. Lives at /s/<token>.

Connect an AI assistant (MCP)

Walkthru runs an MCP server with the Streamable HTTP transport. Any MCP client can read and write your punch lists. This is the fastest way to log a walkthrough: dictate it, the assistant files the items.

Endpoint: https://walkthru.build/mcp
Auth: an API key from Settings → Connect AI, sent as Authorization: Bearer wt_live_…. Clients that can't send headers can append the key to the URL: https://walkthru.build/mcp/wt_live_….

Treat the key like a password: anyone with it can read and change your company's punch lists. Revoke it in Settings if it leaks.

Claude (claude.ai, desktop, mobile)

  1. Settings → Connectors → Add custom connector.
  2. Name: Walkthru. URL: https://walkthru.build/mcp/wt_live_YOURKEY.
  3. Save. In any chat, enable the Walkthru connector and ask: "List my jobs."

Claude Code

claude mcp add --transport http walkthru https://walkthru.build/mcp \
  --header "Authorization: Bearer wt_live_YOURKEY"

ChatGPT

Settings → Connectors → create a custom connector with the MCP URL https://walkthru.build/mcp/wt_live_YOURKEY (available on plans that support custom MCP connectors). Alternatively, build a Custom GPT with Actions and import /openapi.json, using API-key auth with the Authorization header value Bearer wt_live_YOURKEY.

Cursor, Windsurf, VS Code and other MCP clients

{
  "mcpServers": {
    "walkthru": {
      "url": "https://walkthru.build/mcp",
      "headers": { "Authorization": "Bearer wt_live_YOURKEY" }
    }
  }
}

Things to say once connected

MCP tools

ToolArgumentsDoes
list_projectsinclude_archived?Jobs with open/done counts.
create_projectname, address?New job. Returns an upgrade message on the Free limit.
list_itemsproject_id, status? (open/done/all), sub?, room?Items, open by default.
create_itemproject_id, title, room?, sub?, notes?, priority?, due?One item. Sub by name; created if new.
create_itemsproject_id, items[]Many items at once (a whole walkthrough).
update_itemproject_id, item_id, any item field, status?Edit, reassign, open/close.
complete_itemsproject_id, item_ids[]Mark done.
project_summaryproject_idOpen/done, by sub, by room, oldest open age, high-priority count.
get_share_linkproject_id, sub?Read-only link for a sub.
list_subs—All subs.
import_subsrows[] of {name, trade?, phone?, email?, notes?}Bulk add; merges duplicates by name, phone or email.
create_subname, trade?, phone?, email?, notes?Add or update by name.
archive_projectproject_id, status?Archive or reopen.

Tool results include both a readable text block and structuredContent JSON. GET https://walkthru.build/mcp returns a server card.

REST API

Base URL https://walkthru.build/api/v1. JSON in, JSON out. Authenticate with Authorization: Bearer wt_live_… (or X-Api-Key). CORS is open, so it works from browsers, Zapier, Make and n8n. Ids are opaque strings; keep them.

curl https://walkthru.build/api/v1/projects \
  -H "Authorization: Bearer wt_live_YOURKEY"

curl -X POST https://walkthru.build/api/v1/projects/PID/items \
  -H "Authorization: Bearer wt_live_YOURKEY" -H "Content-Type: application/json" \
  -d '{"title":"Caulk tub deck","room":"Primary Bath","sub":"Tile","priority":"high"}'
MethodPathNotes
GET/projects?archived=1 to include archived. Returns {projects:[{id,name,address,status,open,done}]}
POST/projects{name, address?} → 201, or 402 on the Free limit
GET/projects/:idJob with all items (subName resolved)
PATCH/projects/:id{name?, address?, status?} status: active | archived
GET/projects/:id/items?status=open|done|all&sub=name&room=name
POST/projects/:id/items{title, room?, sub? (name) | subId?, notes?, priority?, due?, photos?}
PATCH/projects/:id/items/:iidAny item field; status open | done; sub:"" unassigns
DELETE/projects/:id/items/:iid
GET/projects/:id/summaryCounts by sub and room, ages
GET/projects/:id/share?sub=name → {url}
GET / POST/subs{name, trade?, phone?, email?, notes?}
POST/subs/import{rows:[{name, trade?, phone?, email?, notes?}]} → {added, updated, skipped}
PATCH / DELETE/subs/:id
GET/brand/logoYour company logo
POST/photosRaw image body, Content-Type: image/jpeg|png|webp, ≤ 6 MB → {id, url}. Put ids in an item's photos.
GET/photos/:idThe image

Errors are {error: "message"} with a 4xx/5xx status. A 402 includes upgrade. Machine-readable spec: /openapi.json. Summary for agents: /llms.txt.

Share links

Every job has a stable share link; ?sub=Name filters to that sub. The page carries your logo and brand color, shows open items grouped by room with photos, and lets the sub tap Mark fixed (public endpoint POST /api/share/:token/items/:iid/fixed). It refreshes on reload. It doesn't require sign-in, so don't post it publicly. The link is the same for the life of the job.

Team & plans

Everyone you add shares one company. The owner (whoever created the company) can rename it and remove members; everyone can add members, jobs, items and subs.

Every new company starts with a 14-day Pro trial (30 days if another builder referred you). Free: 1 active job, unlimited items, photos, subs, members, API and MCP. Pro ($39/month or $390/year per company): unlimited jobs. Adding a teammate gives you an invite link to text them; it works once, for 14 days. Settings → Give a month, get a month has your referral link: when a builder you sent goes Pro, you get a free month. Upgrade in Settings; billing is handled by Stripe and you can cancel anytime from the same place. Archiving a job frees up your active slot on Free.

Data & privacy

Data is stored on Netlify's infrastructure in the US. Photos are resized on your phone before upload (max 1600 px). Your company's data is yours: pull everything through the API at any time. We don't sell data and we don't train models on it. Full privacy policy and terms.

Support

Email help@walkthru.build. Built in Nashville, Tennessee by a working home building project manager.