Concepts
Rate limits
We pace writes to the vendor’s real limit. If we have to wait, you get HTTP 429 with Retry-After. Branch on that status and header.
One sync per MSP tenant fills the store. Every product on that tenant reads the same copy. When each product polls the same PSA, they share one budget.
Today — every product polls
With Bitlync — one governed sync
Mechanism
ISV-facing: 600 req/min times the number of connected MSPs. There is no daily cap. The per-minute rate is the limit. Hit it and you get a rate-limit response with Retry-After. There is no silent throttle.
Billing and Alerts write routes share one abuse limit. HTTP 429 from those routes is unchanged: branch on 429 and Retry-After. An oversized body is 413, not 429. See Errors.
What the caller sees
A rate-limit response you can branch on. The header is the wait. A delayed 200 is not a throttle.
HTTP 429
Retry-After: 12
{
"status": 429
}
No silent queue that looks like success.