Azure Repos · Rate Limits

Microsoft Azure Repo Rate Limits

Azure Repos REST APIs are rate-limited via Azure DevOps Services' shared TSTU (Throughput Service Threshold Unit) sliding-window model — 200 TSTUs per 5 minutes per user/identity. Each REST or Git operation costs a variable number of TSTUs. Throttled requests return HTTP 429 with Retry-After. Git push/pull operations also have additional per-repository protections against abuse. Per-user TSTU limits cannot be raised by support.

3 Limits Throttle: 429
DevOpsGitRepositoriesSource ControlTFVCVersion ControlRate Limiting

Limits

Per-user TSTU sliding window user
tstu_per_5_minutes · minute
200
REST API and Git operation throughput; light reads <1 TSTU, heavy listings 5+ TSTUs.
Git push payload repository
bytes_per_push
see vendor docs
Pushes >1 GB or with very large blobs may be throttled or rejected. Use Git LFS.
Branch policy build queue repository
concurrent_builds
see vendor docs
Concurrent CI builds triggered by PR policies are bounded by purchased Azure Pipelines parallel jobs.

Policies

TSTU cost weighting
Each REST call costs differing TSTUs by database/CPU expense. Plan large backfills with backoff between batches.
Delay before block
Persistent abuse first triggers X-RateLimit-Delay (slowed responses), then 429.
Spread across identities
To scale automation, fan out work across multiple service principals or PATs; each gets its own 200-TSTU window.
Use Git LFS for large binaries
Files >100 MB should be stored in Git LFS to avoid repository bloat and push throttling.
Honor Retry-After
Implement exponential backoff with jitter on 429 responses.

Sources