Update Site

Update site settings. Only include the fields you want to change.

sites.edit
PUT/v1/sites/:id

Request Body

All fields optional — same as Create Site.

ParameterTypeDescription
namestringSite name
domainstringDomain name
notesstringInternal notes
notificationEmailstringDefault notification email
timezonestringTimezone
referencePrefixstringSubmission ID prefix (max 4 chars)
recaptchaSiteKeystring | nullCustom reCAPTCHA v3 public site key for this site. Send null to clear and revert to the platform global key.
recaptchaSecretKeystring | nullCustom 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"
  }
}