contact_mailContact Form 7apiREST APIerrorerrorsecurityfirewalldescriptioncontact-form-7settingsserver_configurationstar_halfUncommonwarningModerate

Contact Form 7: REST API request failed: 429 Too Many Requests

The form tries to send data through the WordPress REST API. The request reaches the endpoint /wp-json/contact-form-7/v1/contact-forms/.../feedback and receives a 429 status. The server tells the client that it has exceeded the allowed number of requests.

WordPress returns this response when a rate‑limit rule blocks further calls from the same IP address. The rule may live in the web server, a CDN, a security plugin, or the hosting environment. Each blocked call adds to the count, so a burst of submissions quickly triggers the limit.

When the limit is hit, the form never reaches the mail handler. No email is sent and the user sees a generic error message. The 429 response often includes a Retry-After header that tells the browser how long to wait before trying again.

Typical triggers include aggressive spam bots, mis‑configured caching of the REST endpoint, or a plugin that throttles API calls. Even a single broken script that repeatedly fires the AJAX call can fill the quota within seconds.

Understanding where the limit originates helps you adjust the rule without removing protection. Look at server logs, plugin settings, and CDN dashboards to locate the source.

Symptoms

[dashicons-warning]
Error message appears
Form shows “REST API request failed: 429 Too Many Requests” after clicking Submit
[dashicons-email]
No email delivered
Submission never reaches the inbox and the thank you page does not load
[dashicons-admin-site]
Network response 429
Browser console displays a 429 status for the AJAX call to the CF7 endpoint

Common Causes

Server or CDN rate limiting
Apache, Nginx, Cloudflare, or a security plugin blocks more than a set number of requests per minute from the same IP
Improper REST caching
WP‑REST‑Cache or similar plugins cache the CF7 feedback endpoint and count each cache hit as a new request
High spam or bot traffic
Automated scripts repeatedly post to the CF7 AJAX URL, exhausting the allowed request quota
Need this fixed right now?

Don't waste your day debugging. Our experts can Fix your issues in under 2 hours.*

Success Rate

100% Guaranteed

Starting from

$35 /hour
99+

Trusted by Business Owners

“I spent 3 days trying to fix the Elementor loading loop. These guys fixed it in 20 minutes. Lifesavers!”

— Sarah J., Web Designer

Related Issues

contact_mail
Contact Form 7: REST API request failed: 503 Service Unavailable
A 503 Service Unavailable response stops Contact Form 7 from sending data...
apiREST APIerror503descriptioncontact-form-7
contact_mail
Contact Form 7: REST API request failed: 429 Too Many Requests

The form tries to send data through the WordPress REST API. The...

apiREST APIerrorerrorsecurityfirewalldescriptioncontact-form-7settingsserver_configuration
contact_mail
Contact Form 7: REST API request failed: 401 Unauthorized

The form tries to send data via the WordPress REST API. The...

apiREST APIadmin_panel_settingspermissionsdescriptioncontact-form-7lock401
contact_mail
Contact Form 7: File upload error: temporary directory missing

The error appears when Contact Form 7 cannot locate a writable temporary...

codePHPcloud_offupload erroradmin_panel_settingspermissionsdescriptiontemporary filedescriptioncontact-form-7
contact_mail
Contact Form 7: Mail (2) sending failed: PHP mail() function disabled

Contact Form 7 reports a failure for Mail (2) when the PHP...

codePHPerrorerrordescriptioncontact-form-7mailMailsettingsserver_configuration
contact_mail
Contact Form 7: Mail (2) sending failed: SSL certificate verification failed

Contact Form 7 reports a failure when trying to send the secondary...

errorerrorlocksslcodecURLdescriptioncontact-form-7