Cloud Billing API projects.getBillingInfo returns persistent HTTP 429 despite low request volume — quota consumer unclear

Cloud Billing API returns HTTP 429 despite low request volume

Hello Google Cloud Community,

We are troubleshooting repeated HTTP 429 RESOURCE_EXHAUSTED / RATE_LIMIT_EXCEEDED responses from the Cloud Billing API method projects.getBillingInfo.

The requests use OAuth credentials via gcloud. Our application makes only occasional billing-status checks, but two scheduled executions on November 14, 2026, were blocked by HTTP 429 responses.

Service Usage displays a quota of 400 requests/minute for the target project. However, we cannot determine which quota consumer or specific limit is responsible.

Our REST requests do not explicitly set x-goog-user-project, and we suspect the shared gcloud quota project may be involved, although this is not confirmed.

Could someone clarify:

  1. How can we identify the effective quota consumer for projects.getBillingInfo?

  2. Should OAuth requests explicitly specify x-goog-user-project?

  3. How can we diagnose the exhausted quota when Cloud Monitoring does not expose corresponding metrics?

We have already implemented bounded retry handling, but would prefer to identify the underlying cause before making further changes.

Any guidance would be appreciated. Thank you.