P
ProFormsDocs

Create From Template

Create a new form from a template. The template’s fields, settings, and theme are cloned into a new draft form on your specified site β€” ready to customize and publish.

POST/api/v1/templates/:id/use
forms:create

Path Parameters

id*string

Template UUID (from the list templates response).

Request Body

siteId*string

UUID of the site to create the form on. Must belong to your organization.

Example Request

Create form from template
curl -X POST https://proforms.io/api/v1/templates/tmpl_abc123/use \
  -H "Authorization: Bearer pf_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{ "siteId": "site_xyz789" }'

Response

200 OK
{
  "success": true,
  "data": {
    "id": "form_new456",
    "name": "Plumbing Service Request",
    "status": "draft",
    "createdAt": "2026-03-09T22:30:00.000Z"
  }
}
ℹ️
The form is created as a draft. Use the Publish endpoint or Update endpoint to customize fields and go live.

What Gets Cloned

βœ“Fields β€” all field types, labels, options, validation rules, and layout widths
βœ“Settings β€” submit button text, success message, security settings, rate limits
βœ“Theme β€” colors, fonts, border radius, spacing
βœ“Conditions β€” conditional logic rules between fields
βœ“Notifications β€” email notification defaults configured for the target site

Errors

404NOT_FOUND

Template or site not found (or site doesn't belong to your organization).

403QUOTA_EXCEEDED

Your plan's form limit has been reached. Upgrade or archive existing forms.

400VALIDATION_ERROR

Missing siteId in request body.

AI Agent Example

πŸ’‘
With MCP, your AI agent can browse templates and create forms in one conversation:
Agent Workflow
You: "Create a quote request form for Phoenix Plumbing"

Agent: 
1. list_templates(category: "home-services", search: "plumbing")
   β†’ Found "Plumbing Service Request" (tmpl_abc123)

2. list_sites(search: "Phoenix Plumbing")
   β†’ Found site (site_xyz789)

3. create_from_template(templateId: "tmpl_abc123", siteId: "site_xyz789")
   β†’ Created form (form_new456) as draft

4. publish_form(formId: "form_new456", publish: true)
   β†’ Published βœ“

5. get_embed_code(formId: "form_new456")
   β†’ <script src="https://proforms.io/embed/form_new456"></script>

"Done! Your plumbing quote form is live. Here's the embed code."