Batch updates vs single record API calls

The current API documentation suggests that all write operations (POST, PATCH, DELETE) must be performed on individual records. However, for large-scale data synchronization scenarios — e.g., updating status on 10,000+ work orders nightly from an external ERP — this presents significant performance concerns.

Specifically, I am seeking clarification on the following:

  1. Does the FieldPulse API expose any batch or bulk endpoints (e.g., /batch, /bulk, or JSON:API-style compound documents) that would allow multiple records to be modified in a single request?
  2. If not, what is the recommended architecture for high-volume operations? I.e., should clients implement exponential backoff with jitter per RFC 7234, or are there higher rate limits available for authenticated integration partners?
  3. Are there any idempotency guarantees (e.g., Idempotency-Key headers per RFC 7230) to prevent duplicate records in the event of network partition during a long-running batch process?

I have reviewed API Rate Limits and Best Practices, but it does not address the batch semantics question directly. Any guidance on the intended pattern here would be appreciated.

Parents
  • Heads up on something that tripped us: the rate limit is per key, but the 429 response doesn't include reset time in all cases. We've seen empty Retry-After on some endpoints, so YMMV on relying on that header alone.

    Our solution was a simple token bucket with 8 rps sustained, 15 burst, and a local queue with visibility timeout. Works fine for ~5K records/night. For your 10K+ volume, I'd honestly consider asking your CSM about a dedicated integration tier — we've heard they're piloting higher limits for specific partners.

    Worth noting: if you're doing status updates specifically, webhooks + caching layer might let you skip the poll entirely. Depends on whether your ERP can accept the dependency.

Reply
  • Heads up on something that tripped us: the rate limit is per key, but the 429 response doesn't include reset time in all cases. We've seen empty Retry-After on some endpoints, so YMMV on relying on that header alone.

    Our solution was a simple token bucket with 8 rps sustained, 15 burst, and a local queue with visibility timeout. Works fine for ~5K records/night. For your 10K+ volume, I'd honestly consider asking your CSM about a dedicated integration tier — we've heard they're piloting higher limits for specific partners.

    Worth noting: if you're doing status updates specifically, webhooks + caching layer might let you skip the poll entirely. Depends on whether your ERP can accept the dependency.

Children
No Data