
Skip Trace
Pricing
$10.00 / 1,000 results

Skip Trace
Locate hard-to-find individuals with our powerful skip trace/tracing API. TruePeopleSearch, Fastpeoplesearch, Lead Finder, Truthfinder, Spokeo, BeenVerified, PeopleLooker, PeopleFinders
5.0 (1)
Pricing
$10.00 / 1,000 results
12
Total users
185
Monthly users
98
Runs succeeded
98%
Response time
12 hours
Last modified
6 days ago
ASP.NET Web Developer
Closed
Not sure what happened I just called it using the API and I think if failed to return results
Hi there, can you share the code that you used to try the API?
Also I have a direct API on Rapid: https://rapidapi.com/oneapiproject/api/skip-tracing-working-api/
Let me know, how can I help. Thanks.
Hi, I was able to fix the issue.
Please try now and let me know the results. Thanks!
asparagus_stepladder
Thanks. Will try today. I am making a endpoint where users can upload a excel or csv list of contact and then cleaning it up to send to your endpoint.
asparagus_stepladder
Here is my code if it helps at all.
[ApiExplorerSettings(IgnoreApi = true)] [HttpPost("run")] [Consumes("multipart/form-data")] public async Task<ActionResult> RunMapped( [FromForm] IFormFile file, [FromForm] FieldMappingRequest mapping) { try { _logger.LogInformation("Starting mapped skip trace run: File: {FileName}", file?.FileName);
1if (file == null || file.Length == 0) 2 { 3 _logger.LogWarning("Mapped skip trace rejected: No file or empty file provided"); 4 return BadRequest("No file provided or file is empty."); 5 } 6 7 if (!IsValidFileExtension(file.FileName)) 8 { 9 _logger.LogWarning("Mapped skip trace rejected: Invalid file type: {FileName}", file.FileName); 10 return BadRequest("Invalid file type. Only CSV and XLSX files are supported."); 11 } 12 13 if (!IsValidMapping(mapping)) 14 { 15 _logger.LogWarning("Mapped skip trace rejected: Invalid column mapping"); 16 return BadRequest("Invalid column mapping. Required fields must be mapped to columns."); 17 } 18 19 // Build the map: DTO property name → column header name 20 var columnMap = new Dictionary<string, string> 21 { 22 ["FirstName"] = mapping.FirstNameColumn, 23 ["LastName"] = mapping.LastNameColumn, 24 ["StreetAddress"] = mapping.StreetColumn, 25 ["City"] = mapping.CityColumn, 26 ["State"] = mapping.StateColumn, 27 ["ZipCode"] = mapping.ZipColumn, 28 }; 29 30 // Parse into your AddressDto list 31 var rows = await _files.ParseAddressesAsync( 32 file.OpenReadStream(), 33 file.FileName, 34 columnMap 35 ); 36 37 if (rows == null || !rows.Any()) 38 { 39 _logger.LogWarning("Mapped skip trace: No valid addresses found in file {FileName}", file.FileName); 40 return BadRequest("No valid addresses found in the file."); 41 } 42 43 _logger.LogInformation("Parsed {Count} addresses from file {FileName}", rows.Count(), file.FileName); 44 45 // Kick off skip‑trace by raw addresses 46 var activity = await _skip.StartSkipTraceByAddressesAsync(rows, OrgId); 47 48 _logger.LogInformation("Skip trace activity created: {ActivityId} with {Count} addresses", 49 activity.Id, rows.Count()); 50 51 return CreatedAtAction(nameof(GetById), new { id = activity.Id }, activity); 52 } 53 catch (FormatException ex) 54 { 55 _logger.LogError(ex, "Format error parsing file {FileName}", file?.FileName); 56 return BadRequest($"Error parsing file: {ex.Message}"); 57 } 58 catch (Exception ex) 59 { 60 _logger.LogError(ex, "Error running mapped skip trace: {FileName}", file?.FileName); 61 return StatusCode(500, "An error occurred while processing your request. Please try again."); 62 }
}
///
/// 3) Starts a skip‑trace run over an existing set of contact IDs. /// [HttpPost] public async Task<ActionResult> Start([FromBody] int[] contactIds) { try { _logger.LogInformation("Starting skip trace for {Count} contacts", contactIds?.Length ?? 0);1if (contactIds == null || contactIds.Length == 0) 2 { 3 _logger.LogWarning("Skip trace rejected: No contact IDs provided"); 4 return BadRequest("No contact IDs provided."); 5 } 6 7 // This is a more direct method that does both steps in one call 8 var activity = await _skip.StartSkipTraceAsync(contactIds, OrgId); 9 10 _logger.LogInformation("Skip trace activity created: {ActivityId} for {Count} contacts", 11 activity.Id, contactIds.Length); 12 13 return CreatedAtAction(nameof(GetById), new { id = activity.Id }, activity); 14 } 15 catch (Exception ex) 16 { 17 _logger.LogError(ex, "Error starting skip trace for {Count} contacts", contactIds?.Length ?? 0); 18 return StatusCode(500, "An error occurred while processing your request. Please try again."); 19 }
}
Can you please recheck now? I just added a fix.
asparagus_stepladder
Yes this is working better thank you