Update Site
Update site settings. Only include the fields you want to change.
sites.edit
PUT
/v1/sites/:idRequest Body
All fields optional — same as Create Site.
| Parameter | Type | Description |
|---|---|---|
| name | string | Site name |
| domain | string | Domain name |
| notes | string | Internal notes |
| notificationEmail | string | Default notification email |
| timezone | string | Timezone |
| referencePrefix | string | Submission ID prefix (max 4 chars) |
| recaptchaSiteKey | string | null | Custom reCAPTCHA v3 public site key for this site. Send null to clear and revert to the platform global key. |
| recaptchaSecretKey | string | null | Custom reCAPTCHA v3 secret key. Stored securely, never returned in GET responses. Send an empty string to leave the existing secret unchanged, or null to clear it. |
Custom reCAPTCHA Keys
ProForms uses a hybrid reCAPTCHA model. Each site can use its own reCAPTCHA v3 key pair, or fall back to the ProForms platform key automatically — no configuration required for the fallback.
💡
When to use custom keys: If you want reCAPTCHA traffic isolated under your own Google account, or if you need a different score threshold per site. Sites with no custom keys automatically use the platform's global key, which works on any domain.
⚠️
The secret key is write-only — it is stored securely and never returned in any API response. To check whether a custom secret is configured, look at
hasCustomRecaptchaSecret in the GET response.Set custom reCAPTCHA keys
curl
curl -X PUT "https://proforms.io/api/v1/sites/s_xyz789" \
-H "Authorization: Bearer pf_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"recaptchaSiteKey": "6Lc_YOUR_SITE_KEY",
"recaptchaSecretKey": "6Lc_YOUR_SECRET_KEY"
}'Remove custom keys (revert to platform global)
curl
curl -X PUT "https://proforms.io/api/v1/sites/s_xyz789" \
-H "Authorization: Bearer pf_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"recaptchaSiteKey": null,
"recaptchaSecretKey": null
}'Example Request
curl
curl -X PUT "https://proforms.io/api/v1/sites/s_xyz789" \
-H "Authorization: Bearer pf_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"notificationEmail": "new-leads@example.com",
"referencePrefix": "EX"
}'Response
200 OK
{
"success": true,
"data": {
"id": "s_xyz789",
"name": "Main Website",
"updatedAt": "2026-02-17T11:00:00.000Z"
}
}