Improved
📦 Bulk API improvements
17 days ago by ReadMe API
- New
GET /bulks/{bulk_id}/items— a paginated endpoint to inspect individual items within a bulk, including a machine-readablestatus_codefor every failure. - Fixed consent-bulk observability — status endpoints now advance to a terminal state, so operators have a reliable stop condition for consent bulks.
- Improved RFC validation — mixed-case and lowercase RFCs are now normalized and accepted on
POST /verifications.
⚙️ What Changes
1. New GET /bulks/{bulk_id}/items
GET /bulks/{bulk_id}/itemsList the items of any bulk with pagination and filters, so you can see exactly which entries failed and why instead of relying only on aggregate metrics.
- Query params:
page(default1),items_per_page(default100, max500),status(success|error),status_code,identifier. - Each item returns
identifier,verification_id(nullable),consent_id(nullable),status,status_code, andcreated_at. Items are ordered bycreated_atDESC. status_codeis a closed catalog (e.g.rate_limit_exceeded,consent_not_found,invalid_identifier) documented in the Bulks section of the developer portal. Switch onstatus_coderather than the free-form internal detail.
{
"items": [
{
"identifier": "FUVF580402HDFRLR05",
"verification_id": null,
"consent_id": null,
"status": "error",
"status_code": "rate_limit_exceeded",
"created_at": "2026-05-20T17:37:14.133658Z"
}
],
"pagination": { "page": 1, "items_per_page": 100, "total_items": 5, "total_pages": 1 }
}2. Consent-bulk status now reports progress
GET /consents/bulk/{bulk_id}now returns200with the samemetricsshape as the verifications status endpoint (previously404).GET /verifications/bulk/{bulk_id}now advances correctly for consent bulks —in_progressticks down and the response reaches a terminal state (completed/failed) instead of staying frozen attotal. Responses now also carry"type": "consent".
{ "bulk_id": "635ba6d5-…", "type": "consent", "metrics": { "total": 158, "completed": 158, "failed": 0, "in_progress": 0 } }3. POST /verifications — RFCs are normalized before validation
POST /verifications — RFCs are normalized before validation- The
rfcfield is now normalized to uppercase before validation and persisted in normalized form, so structurally valid mixed-case or lowercase RFCs (e.g.Liaj930914l05) are accepted. - When the value fails for a non-length reason, the error message now describes the actual problem instead of the misleading
must be a valid RFC (12-13 characters)length message.
🛠️ No Action Required
These changes are additive or corrective and do not break existing integrations. Adopt the new GET /bulks/{bulk_id}/items endpoint and the consent-bulk status endpoints to gain item-level visibility and a reliable completion signal for your bulks.
