Geo Intelligence API - Fetch result
Overview
The Geo Intelligence API is a powerful data aggregation and ranking engine that enables lenders, collections teams, and fraud-risk functions to programmatically discover and verify customer addresses using a mobile phone number.
The API processes the retrieved records to deliver a clean, actionable output. The results are:
- Structured: Raw address strings are parsed into standardized fields (Full address, City, State, Pincode).
- Ranked & Deduplicated: Duplicate entries are merged, and addresses are sorted based on a proprietary ranking logic.
- Scored for Confidence: Each address is assigned a confidenceScore (0–100) and a confidenceBand (HIGH, MEDIUM, LOW) based on source trust, recency, completeness, and multi-source corroboration.
- Tagged for Provenance: Every address includes the reported date and source type (e.g., PRIMARY, DELIVERY) so downstream systems can weight the freshness appropriately.
Key Use Cases
1. Skip Tracing & Debt Collections When a borrower defaults and becomes unreachable, collections teams can input the user's phone number to retrieve a ranked list of all known historical and current addresses.
2. Planning CPV (Customer Physical Verification) Financial institutions spend significant time and money conducting manual field visits to verify customer addresses. By utilizing this API alongside risk decisioning logic, lenders can automatically validate a customer-declared address against high-trust government and bureau records.
3. Spotting address mismatches and fraud
During onboardings, compare the declared address with the addresses linked to the customer's phone number. A declared address that never appears, or appears only in a different state, is a useful risk signal for underwriting.
4. E-Commerce Address Recovery (Digital Footprint) Standard credit bureaus often lack data on users who are "new to credit." Through integrated, authorized e-commerce checkout networks, the API can fetch recently used delivery addresses along with their exact delivery timestamps.
API details:
Headers
Header | Required | Description |
|---|---|---|
Authorization | Yes | Bearer token/API authorization token |
Content-Type | Yes | application/json |
Request Body
Field | Type | Required | Description |
|---|---|---|---|
requestId | String | Yes | The requestId returned by the Initiate Request API |
Sample Request
Response
Field | Type | Description |
|---|---|---|
result | Object | API result object |
result.requestId | String | The requestId passed in the request body |
result.phoneNumber | String | Phone number provided in the request body |
result.addresses | Array | List of all available addresses associated with the phone number |
result.allAddresses[].seq | Number | Sequential number across all returned addresses. |
result.allAddresses[].rank | Number | Final ranking after recency, completeness, metro boost, and confidence scoring. Rank 1 is most recommended. |
result.allAddresses[].fullAddress | String | Normalised original full address string. |
result.allAddresses[].city | String | City where that address belongs to |
result.allAddresses[].district | String | District where that address belongs to |
result.allAddresses[].state | String | State where that address belongs to |
result.allAddresses[].pincode | String | 6-digit PIN code |
result.allAddresses[].addressType | String | Type as reported by the underlying data network (e.g., Primary, Delivery) |
result.allAddresses[].reportedDate | String | Date the address was last reported in the data network. Used as primary freshness signal. |
result.allAddresses[].isMetro | String | True if the city is a Tier-1 metro (Bengaluru, Mumbai, Delhi, Chennai, Hyderabad, Kolkata, Pune, Ahmedabad). |
result.allAddresses[].addressCompleteness | String | HIGH | MEDIUM | LOW |
result.allAddresses[].confidenceScore | Number | Composite per-address confidence score |
result.allAddresses[].confidenceBand | String | HIGH | MEDIUM | LOW |
totalAddressesFound | Number | Total address found after filtering out duplicate one |
apiStatus | String | API status |
requestTimestamp | String | Timestamp for the request |
Sample Response
{
"result": {
"requestId": "XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"phoneNumber": "XXXXXXXXXX",
"addresses": [
{
"seq": 1,
"rank": 1,
"fullAddress": "XXXXXXX XXXXXXX XXXXXXX XXXXXXX XXXXXXX",
"city": "XXXXXXX",
"district": "XXXXXXX",
"state": "XXXXXXX",
"pincode": "XXXXXX",
"addressType": "DELIVERY",
"reportedDate": "XXXX-XX-XX",
"isMetro": "XXXXX",
"addressCompleteness": "HIGH",
"confidenceScore": "XX",
"confidenceBand": "MEDIUM"
},
{
"seq": 2,
"rank": 2,
"fullAddress": "XXXXXXX XXXXXXX XXXXXXX XXXXXXX XXXXXXX",
"city": "XXXXXXX",
"district": "XXXXXXX",
"state": "XXXXXXX",
"pincode": "XXXXXX",
"addressType": "OTHER",
"reportedDate": "XXXX-XX-XX",
"isMetro": "XXXXX",
"addressCompleteness": "HIGH",
"confidenceScore": "XX",
"confidenceBand": "LOW"
}
],
"totalAddressesFound": 2,
"apiStatus": "SUCCESS",
"requestTimestamp": "XXXX-XX-XXTXX:XX:XX.XXXZ"
}
}
Notes
- This API is supported only for Indian mobile numbers.
- Multiple addresses may be returned for a single phone number.
- Addresses are returned along with their source category and the date on which they were recorded.
- If no address is available, addresses will be an empty array and totalAddressesFound will be 0.