Bulk endpoints allow you to perform actions on multiple records in a single API call. This is useful for high-volume alert processing, batch assignment, and workflow automation.
Bulk operations use partial success semantics. The API processes each record independently and returns per-record results. The HTTP status code indicates the overall outcome:
HTTP Status
Meaning
200
All records processed successfully
207
Partial success — some records succeeded, some failed
Exceeding the per-request limit returns a 400 Bad Request with the message: “Maximum 100 alert tokens per bulk request.” Split larger batches into multiple requests.
Idempotency: Bulk resolve and acknowledge are idempotent for already-processed records. Re-submitting a token that was already resolved returns a success result (not an error). This makes retries safe.
Keep batches under 100 records. Larger batches increase the chance of partial failures and make retries more complex.
Handle partial success. Always check the summary.failed count and inspect individual results for errors. Do not assume all records succeeded.
Use consistent actions. Bulk resolve applies the same action and notes to all alerts. If different alerts need different actions, split them into separate requests.
Retry only failed records. On partial failure, extract the failed tokens and retry only those:
result = response.json()failed_tokens = [ r["token"] for r in result["results"] if r["status"] == "error"]if failed_tokens: # Retry only the failed records retry_response = requests.post( "https://api.zenoo.com/v1/alerts/bulk/resolve", headers=headers, json={"alert_tokens": failed_tokens, "action": "Approve", "notes": "Retry batch."}, )
Every record in a bulk operation generates its own audit trail entry. Bulk operations also create a single BULK_OPERATION summary event that references the total count and action performed.