Skip to content
Anyone else having ...
 
Notifications
Clear all

Anyone else having issues with HubSpot's new API?

5 Posts
5 Users
0 Reactions
13 Views
(@infra_auditor_nina)
Honorable Member
Joined: 6 months ago
Posts: 467
Topic starter   [#7136]

Let's be honest: the HubSpot API "upgrade" feels more like a regression dressed in a v3 spec sheet. I'm auditing a client's marketing automation pipeline and the new OAuth 2.0 flow is creating more friction than security value. Their migration guide reads like an optimistic press release, not an engineering document.

Specifically, I'm hitting:
* **Inconsistent rate limiting:** The docs promise one thing, but we're seeing `429`s on endpoints that should be under the limit. The headers don't always match the published schema.
* **Webhook verification failures:** The new signature validation is brittle. Following their code samples *exactly* still yields failures about 20% of the time during our load tests.
```python
# Their "verified" example - still sporadically fails
signature_computed = hmac.new(
bytes(client_secret, 'latin-1'),
msg=bytes(request_body, 'latin-1'),
digestmod=hashlib.sha256
).hexdigest()
```
* **Cost impact:** The new pricing tiers force you into higher brackets for basic batch operations we used to handle with v1/v2. Someone's finance team is getting a bonus.

I work primarily in fintech, so audit trails and data integrity are non-negotiable. This kind of opaque change management from a major vendor is… concerning.

I'm hoping to find:
* Others who've done a full security and compliance mapping of the new API (especially around GDPR data subject exports).
* Actual postmortems on incidents triggered by the migration, not the sanitized "lessons learned" blogs.
* Workarounds that don't involve just throwing more money at the problem.

What are you seeing? Am I just being cynical, or is this rollout as half-baked as it looks?

- Nina


- Nina


   
Quote
(@grafana_guy_night)
Honorable Member
Joined: 6 months ago
Posts: 427
 

Yeah, the rate limiting part hits home. I started logging all our API calls to a Prometheus counter when we migrated, and the 429 spikes don't line up with our request patterns at all. The dashboards look messy. 😅

>Webhook verification failures
That's rough. Makes me wonder if their timestamp tolerance is way tighter than they say. Are you using the raw request body or a parsed version? I had a similar pain point with another service where framework middleware was modifying the payload before the verification code ran.

The cost stuff is scary. Makes automating tests feel risky.



   
ReplyQuote
(@carlosr)
Honorable Member
Joined: 3 months ago
Posts: 443
 

> The 429 spikes don't line up with our request patterns

Same here. I piped our API call logs to Athena and the timing of the throttle responses is almost suspicious. Spikes happen during off-peak hours too. Makes me wonder if HubSpot's sharing a global token bucket per account rather than per-endpoint.

> Are you using the raw request body or a parsed version?

That's a good catch. We were using the raw body from Express - no middleware touching it - and still hitting ~15% failure. Ended up adding a 30-second retry with a jitter backoff to smooth it over, but that just eats into our API quota. Not great.

On cost: we ran a quick calculation. If you have to retry even 10% of webhooks, the extra compute on Lambda adds up. For a 50K event/month pipeline, it was about $40 more just in retry invocations. Hard to justify that for "security improvements".


Ask me about hidden egress costs.


   
ReplyQuote
(@jasonk)
Estimable Member
Joined: 3 months ago
Posts: 65
 

Ugh, the webhook verification part is a nightmare. I've been wrestling with it this week too. Your snippet is exactly what they provide, and we found the 'latin-1' encoding was part of the problem for us when our payloads contained emojis or certain unicode characters from form submissions. It just silently fails.

The audit trail concern is spot on. For us, the bigger issue than the 429s is the webhook failures creating gaps in our event log. We now have to store the raw, unverified payload *and* the computed signature for every single call just to prove to our auditors we didn't drop data, which adds a ton of overhead. Feels like their v3 push broke a working system for the sake of a version number.



   
ReplyQuote
(@ericd)
Prominent Member
Joined: 3 months ago
Posts: 776
 

That's a sharp observation about the global token bucket. I hadn't considered that, but it would explain why you'd see throttling on a low-traffic endpoint when another part of the system is busy.

The cost angle you mentioned is often the final straw. It's not just the retry compute cost, it's the engineering hours spent building the retry logic, monitoring it, and explaining the extra bill to finance. When a "simple" upgrade starts requiring that much defensive engineering, it stops feeling like progress.


Keep it civil, keep it real.


   
ReplyQuote