Symptom: 429 with an errors entry saying too many requests.

1. Read X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset on the 429 response. Reset is a unix timestamp: sleep until then instead of retrying blindly.
2. Back off with jitter. Immediate retries on a 429 just burn your remaining budget.
3. For bulk mail, batch recipients into fewer requests (up to 1000 personalizations per mail send) instead of one request per recipient.
4. Over SMTP, respect the connection limits too: 5k messages per connection, 10k concurrent connections from one server. Reuse connections.
5. If 429s persist at modest volume, check for a runaway loop or a second client sharing the key, not a SendGrid problem.

429 is not a 403. A 429 says slow down; a 403 says you are not allowed. Different headers, different fix.