For large bulk searches, implement polling with backoff:
Copy
async function waitForBulkCompletion(bulkId, apiKey) { let delay = 2000; // Start at 2 seconds const maxDelay = 30000; // Maximum 30 seconds while (true) { const response = await fetch( `https://api.reverselooker.com/reverse-contact/bulk?id=${bulkId}`, { headers: { 'x-api-key': apiKey } } ); const data = await response.json(); console.log(`Progress: ${data.number_finished}/${data.number_requested}`); if (data.status === 'completed' || data.status === 'failed') { return data; } await new Promise(resolve => setTimeout(resolve, delay)); delay = Math.min(delay * 1.5, maxDelay); // Exponential backoff }}
The bulk response contains a summary of profiles (name, headline, company, location). To get the full profile of a contact (experience, education, skills), use GET /reverse-contact/single with the individual ID.
Configure a webhook when creating the bulk search to be automatically notified when processing is complete.