FieldEdge Open API
dev
  • production
  • dev
Docs
APIs
Docs
APIs
dev
  • production
  • dev
dev
  • production
  • dev
  1. Authentication
  • Welcome to the FieldEdge Developer Portal
  • Authentication
    • Member Authentication Guide
    • Partner Authentication Guide
    • Rate Limits & Quotas
  • Support
    • API Support
  1. Authentication

Rate Limits & Quotas

To protect platform stability and ensure fair use across all integrations, FieldEdge applies a short-term rate limit and an hourly quota to all API requests. Every authenticated call is counted, regardless of which endpoint it targets.

Current limits#

LimitValueWindowScope
Short-term rate limit100 requests60-second windowper Marketplace Partner ID
Hourly quota1,000 requests1-hour windowper Marketplace Partner ID
Both limits apply across all FieldEdge Open API endpoints in aggregate. The counter is keyed on your Marketplace Partner ID — the identifier assigned to your account in the FieldEdge Marketplace. Multiple OAuth apps registered under the same Marketplace account share the same budget; creating additional OAuth apps does not increase your limits.

How the scope works for Members vs. Partners#

Members — your Marketplace Partner ID represents your organization. The full 100/minute and 1,000/hour budget belongs to your tenant.
Partners — your Marketplace Partner ID represents your company. All traffic generated by every OAuth app you register under that Partner ID, across every Member who has installed any of those apps, shares the same 100/minute and 1,000/hour budget. Neither the OAuth target_id (Member Tenant ID) nor registering an additional OAuth client_id creates a separate budget.
If you are building a public Marketplace app and expect more than a handful of Member installs, request a limit increase before general availability. See Requesting an increase below.

Response when a limit is exceeded#

When either limit is exceeded, FieldEdge returns HTTP 429 Too Many Requests:
HTTP/1.1 429 Too Many Requests
Content-Type: application/json
Retry-After: 52
X-Quota-Limit: 1000
X-Quota-Remaining: 0
{
  "statusCode": 429,
  "message": "Rate limit is exceeded. Try again in 52 seconds."
}
Retry-After — present only on 429 responses. The number of seconds to wait before retrying. Always honor this value over the wait time embedded in the message.
message — human-readable description of which limit was exceeded; also embeds the wait time in seconds.
The same 429 response is returned for both the short-term rate limit and the hourly quota; the Retry-After value distinguishes them (seconds for the rate limit, up to one hour for the quota).

Handling 429 responses#

1.
Wait at least Retry-After seconds before retrying. Treat this as a minimum, not an exact wait.
2.
Apply exponential backoff with jitter if you continue to receive 429s after the indicated wait.
3.
Throttle proactively. For batch syncs, cap your own send rate at roughly 80 requests/minute to leave headroom for bursts and retries.
4.
Use webhooks instead of polling. Polling is the most common cause of quota exhaustion. Register a webhook (POST /v1/webhook) and call GET endpoints only when notified of a change.

Counter behavior#

The 60-second rate limit counter is a renewable per-window count. After a 429 from this limit, the counter relaxes within roughly the indicated Retry-After.
The 1-hour quota counter is anchored to the first request in the window and resets at the end of that window — it does not reset on the calendar hour. After a 429 from this limit, Retry-After reflects the time remaining until the next reset.

What counts against the limit#

Every authenticated API request counts, including:
Successful (2xx) responses
Client errors (4xx, except 429 itself)
Server errors (5xx)
Webhook deliveries from FieldEdge to your callback URL are outbound from FieldEdge and do not count against your inbound API limits.

Checking remaining headroom#

Every API response includes two headers that report your current hourly quota state:
HeaderDescription
X-Quota-LimitTotal request budget for the current 1-hour window.
X-Quota-RemainingRequests remaining in the current window. Reaches 0 when the quota is exhausted.
Example:
X-Quota-Limit: 100
X-Quota-Remaining: 84
Use X-Quota-Remaining to throttle your client proactively — for example, slow down or pause batch work once it drops below ~10% of X-Quota-Limit. These headers are returned on every response (2xx, 4xx, and 5xx), not just on 429.
Usage headers for the short-term rate limit (100/minute) are not currently exposed. You will only learn that you've hit it when you receive a 429 with a small-number Retry-After.

Requesting an increase#

If your integration's expected traffic exceeds these defaults, contact API Support with:
Marketplace Partner ID (and the client_id of the affected OAuth app, if applicable)
Expected sustained and peak request rate (per minute and per hour)
Number of Member installs expected at launch
Use case justification
Target go-live date
Email: feintegrations@xplortechnologies.com
Modified at 2026-06-10 13:32:20
Previous
Partner Authentication Guide
Next
API Support
Built with