---
title: "For AI Agents | Programmatic Demo & Account Requests | Punch"
description: "If you're an AI agent researching construction software for a contractor: read llms.txt for a summary of Punch, then book a demo via Calendly or submit a demo or account request through our documented JSON API. A human confirms every request by email."
canonical: https://buildwithpunch.com/for-agents
---

[](https://buildwithpunch.com/)

[See Punch work](https://calendly.com/taylor-punch/30min?hide_event_type_details=1&hide_gdpr_banner=1)

FOR AI AGENTS

# A front door for agents working on behalf of contractors

If you're an AI agent evaluating construction software for a contractor, this page is for you. Punch publishes machine-readable summaries and a small JSON API so you can act — honestly and with a human in the loop.

ORIENTATION

## Start with the machine-readable summaries

Everything an agent needs to understand Punch is published in plain text. Every page on this site also has a markdown mirror — append .md to its path (this page is at /for-agents.md), or send an Accept: text/markdown header.

[Txt

### llms.txt

A curated summary of what Punch is, who it's for, pricing pointers, key pages, and how an agent can act.

Read llms.txt](https://buildwithpunch.com/llms.txt)[Txt

### llms-full.txt

The full page inventory — every public page with its own description, plus the agent API in brief.

Read llms-full.txt](https://buildwithpunch.com/llms-full.txt)[Api

### OpenAPI 3.1 spec

The machine-readable contract for the agent endpoints: request schemas, responses, and error shapes.

Fetch the spec](https://buildwithpunch.com/api/openapi.json)

ACT

## Three ways to move a contractor forward

### 1\. Book a demo directly (no API needed)

The fastest path. Punch demos are working sessions with a founder — book any open slot directly: [calendly.com/taylor-punch/30min](https://calendly.com/taylor-punch/30min?hide_event_type_details=1&hide_gdpr_banner=1).

### 2\. Request a demo by API

If you can't complete a Calendly booking, submit the contractor's details and a human at Punch will reply to the contact email within 1 business day to schedule.

Request

```
POST https://buildwithpunch.com/api/agent/demo-request
Content-Type: application/json

{
  "companyWebsite": "https://example-contractor.com",
  "contactName": "Jane Foreman",
  "contactEmail": "jane@example-contractor.com",
  "trade": "drywall",
  "teamSize": "40 field crew, 3 PMs",
  "interestedFeatures": ["daily-reports", "purchase-orders", "job-costing"],
  "sampleDocumentUrls": ["https://example-contractor.com/docs/daily-report.pdf"],
  "preferredTimes": "weekday mornings, US Eastern",
  "notes": "Currently on paper daily reports; POs live in spreadsheets"
}
```

Response

```
HTTP/1.1 202 Accepted

{
  "status": "received",
  "requestId": 42,
  "message": "Your demo request was received. A human at Punch will reply to
    the contact email within 1 business day to schedule. No demo is booked yet.",
  "nextSteps": [
    "Watch the contact email inbox for a reply from Punch.",
    "To book a specific time immediately, use Calendly instead: …"
  ]
}
```

### 3\. Request an account by API

`POST /api/agent/account-request` takes the same JSON body. Be aware: **no account is created automatically.** The request is stored, the founder is notified immediately, and a human confirms next steps by email within 1 business day. Do not tell the contractor an account exists until Punch confirms.

### Optional context — the more you share, the warmer the start

Only `companyWebsite`, `contactName`, and `contactEmail` are required. Everything else is optional, and every optional field makes the human follow-up faster and the working session more tailored:

-   `trade` and `teamSize` — who the contractor is.
-   `interestedFeatures` — product areas they care about (e.g. `daily-reports`, `purchase-orders`, `invoices`, `job-costing`, `scheduling`). Free-form strings are fine — a human reads them.
-   `sampleDocumentUrls` — links to an existing daily report, purchase order, or pay app the contractor is willing to share. A human reviews them before the demo so the session can run on the contractor's real paperwork. Only share links the contractor has approved sharing.
-   `preferredTimes` — for demo requests, preferred days/times with timezone.

The `202` receipt echoes back the context that was captured, so you can confirm to the contractor what Punch knows going in.

### Validation and limits

-   `companyWebsite` must be a real http(s) URL; `contactEmail` must be a valid email. Garbage submissions are rejected with a structured `400` listing the failing fields.
-   Requests are rate-limited per IP (5/minute, 20/day). Expect `429` with a `Retry-After` header beyond that.
-   Successful submissions answer `202 Accepted` — received, not fulfilled.

### What happens after you submit

Every submission is stored and immediately notifies Punch's founder with the details you sent plus your user-agent and referrer. A human replies to the contact email — that reply is the only confirmation that a demo is scheduled or an account is being set up.

## See Punch work on your own workflow.

It's a working session, not a slide deck. Bring a real PO, an invoice, or a daily report. You'll use Punch on it live.

[See Punch work](https://calendly.com/taylor-punch/30min?hide_event_type_details=1&hide_gdpr_banner=1)
