Modulify

Send a forwarding confirmation link again

resend_site_email_forward_address

Sends a new confirmation link to a forwarding address that is still pending, for example when the first link expired or never arrived.

POST /v1/resend_site_email_forward_addressScopeconfig:writeMakes changes

The previous link stops working at once, and the new one works for 7 days. A confirmed address is refused with This address is already confirmed! The address and its pending status come from forwarding.recipients in get_site_email_settings.

Confirmation links are limited to 1 a minute to one address from the same site, 5 a day to one address across every site, 20 a day for one site and 50 a day for one workspace, the same limits add_site_email_forward_address meets, and a refusal says how long to wait. It needs the Delete projects permission. See Forwarding limits.

Request

Call it with a POST to https://api.modulify.ai/v1/resend_site_email_forward_address, sending the inputs below as a JSON object. The token needs the config:write scope.

It makes changes, so send an Idempotency-Key header whenever you might retry it. A retry with the same key gets the first answer back instead of running again.

curl -X POST https://api.modulify.ai/v1/resend_site_email_forward_address \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"projectId":"PROJECT_ID","addressId":"ADDRESS_ID"}'

Over MCP, the same method is the resend_site_email_forward_address tool.

Inputs

Input Type Required Description
projectId string Yes The site id.
addressId string Yes The id of the forwarding address, from forwarding.recipients in get_site_email_settings.

Response

Every call answers with the JSON envelope of success, message, data, code and version. data holds the result described above, and on a method that returns a total, count carries it. The response headers carry the call's X-Request-Id and what is left of your per-minute budget in X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset. Errors explains every status code a call can answer with.