// P2P Dojo flagship · forms engine

Forms that only
answer to your domain.

Drop one line on any site. Submissions are locked to the domains you register, verified by Cloudflare Turnstile, stored instantly, and texted to your phone — while your AI agents read every lead through the API and MCP server.

Domain-lockedTurnstile verifiedSMS in secondsREST + MCP

Talk to P2P

This form is running on the engine itself. Try it.

// why it's different

Built so spam can't get in
and leads can't get lost.

01

Domain lock

Each form lists the domains allowed to post. Anything submitted from another origin is rejected before it touches the database.

02

Cloudflare Turnstile

Invisible human check, verified server-side against your hostname — plus honeypot and per-IP rate limits.

03

Instant SMS

Every lead texts your phone through our registered A2P line. Opted-in visitors get an instant confirmation.

04

Agents included

REST API and an MCP server, so Omega, Scout and your own agents can list leads, create forms and follow up.

// the path of a lead

From click to callback.

1
Visitor submitson your registered site
2
Origin checkedwrong domain = rejected
3
Turnstile verifiedbots stop here
4
Lead storedPostgres, searchable
5
You get a textagents pick it up
// one line to install

Embed, API, MCP.

<!-- paste on any registered domain -->
<div data-p2p-form="your_form_key"></div>
<script src="https://form.contactp2p.com/embed.js" async></script>

# read leads
curl https://form.contactp2p.com/api/leads \
  -H "Authorization: Bearer $CP2P_KEY"
// MCP client config
{
  "contactp2p": {
    "url": "https://form.contactp2p.com/mcp",
    "headers": { "Authorization": "Bearer …" }
  }
}
// tools: list_forms · create_form
//        list_leads · send_sms