Skip to content

LoanInfo API

The LoanInfo API allows you to get a consolidated view of a mortgage loan.

After you processed your document with our API, you can both inspect the extracted data for each document or you can get LoanInfo for the entire upload session.

Triangulation of LoanInfo

We automatically triangulate the LoanInfo from each document in the session, so you don't need to call an API to get the LoanInfo.

Example Usage

Get Loan Infos
import requests

BASE_URL = 'https://dev-api.v2.areal.ai/api/v2'

# 0. Login - details in Authentication section
# See code_samples/auth/python/login.py for authentication

# 1. Get Loan Infos for a session
session_id = 'your-session-id'
loan_infos_response = client.get(
    f'{BASE_URL}/resources/loan_infos/',
    params={
        'session_id': session_id,
        'pageIndex': 0,
        'pageSize': 20,
        'sort': 'updated_at.asc',
        'sort_order': 'asc',
        'sort_by': 'name',
        'search': 'string',  # Optional: search term
    },
    headers={
        'Accept': 'application/json',
    }
).json()

# Process the response
meta = loan_infos_response.get('meta', {})
print(f"Total Count: {meta.get('totalCount')}")
print(f"Page Index: {meta.get('pageIndex')}")
print(f"Page Size: {meta.get('pageSize')}")

# Process the loan infos
for loan_info in loan_infos_response.get('objects', []):
    print(f"ID: {loan_info.get('id')}, ARLA Name: {loan_info.get('arla_name')}, Value: {loan_info.get('value')}")
Get Loan Infos
using System;
using System.Net.Http;
using System.Threading.Tasks;
using System.Text.Json;
using System.Collections.Generic;
using System.Linq;

var baseUrl = "https://dev-api.v2.areal.ai/api/v2";

// 0. Login - details in Authentication section
// See code_samples/auth/c#/login.cs for authentication
var handler = new HttpClientHandler
{
    UseCookies = true,
    CookieContainer = new CookieContainer()
};
var client = new HttpClient(handler);
// Assume client is already authenticated with cookies from login

// 1. Get Loan Infos for a session
var sessionId = "your-session-id";
var queryParams = new List<KeyValuePair<string, string>>
{
    new("session_id", sessionId),
    new("pageIndex", "0"),
    new("pageSize", "20"),
    new("sort", "updated_at.asc"),
    new("sort_order", "asc"),
    new("sort_by", "name"),
    new("search", "string") // Optional: search term
};

var queryString = string.Join("&", queryParams.Select(p => $"{Uri.EscapeDataString(p.Key)}={Uri.EscapeDataString(p.Value)}"));
var requestUrl = $"{baseUrl}/resources/loan_infos/?{queryString}";

var request = new HttpRequestMessage(HttpMethod.Get, requestUrl);
request.Headers.Add("Accept", "application/json");

var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();

var responseContent = await response.Content.ReadAsStringAsync();
var loanInfosData = JsonSerializer.Deserialize<JsonElement>(responseContent);

// Process the response
if (loanInfosData.TryGetProperty("meta", out var meta))
{
    if (meta.TryGetProperty("totalCount", out var totalCount))
        Console.WriteLine($"Total Count: {totalCount.GetInt32()}");
    if (meta.TryGetProperty("pageIndex", out var pageIndex))
        Console.WriteLine($"Page Index: {pageIndex.GetInt32()}");
    if (meta.TryGetProperty("pageSize", out var pageSize))
        Console.WriteLine($"Page Size: {pageSize.GetInt32()}");
}

// Process the loan infos
if (loanInfosData.TryGetProperty("objects", out var objects))
{
    foreach (var loanInfo in objects.EnumerateArray())
    {
        var id = loanInfo.TryGetProperty("id", out var idProp) ? idProp.GetString() : "";
        var arlaName = loanInfo.TryGetProperty("arla_name", out var arlaNameProp) ? arlaNameProp.GetString() : "";
        var value = loanInfo.TryGetProperty("value", out var valueProp) ? valueProp.GetString() : "";
        Console.WriteLine($"ID: {id}, ARLA Name: {arlaName}, Value: {value}");
    }
}
Get Loan Infos
import java.net.HttpURLConnection;
import java.net.URL;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.CookieManager;
import java.net.CookieHandler;
import java.nio.charset.StandardCharsets;
import org.json.JSONObject;
import org.json.JSONArray;

public class GetLoanInfos {
    public static void main(String[] args) throws Exception {
        String baseUrl = "https://dev-api.v2.areal.ai/api/v2";

        // 0. Login - details in Authentication section
        // See code_samples/auth/java/login.java for authentication
        CookieManager cookieManager = new CookieManager();
        CookieHandler.setDefault(cookieManager);

        // Assume client is already authenticated with cookies from login

        // 1. Get Loan Infos for a session
        String sessionId = "your-session-id";
        String queryParams = String.format(
            "session_id=%s&pageIndex=%d&pageSize=%d&sort=%s&sort_order=%s&sort_by=%s&search=%s",
            java.net.URLEncoder.encode(sessionId, StandardCharsets.UTF_8),
            0,
            20,
            java.net.URLEncoder.encode("updated_at.asc", StandardCharsets.UTF_8),
            java.net.URLEncoder.encode("asc", StandardCharsets.UTF_8),
            java.net.URLEncoder.encode("name", StandardCharsets.UTF_8),
            java.net.URLEncoder.encode("string", StandardCharsets.UTF_8) // Optional: search term
        );

        String requestUrl = baseUrl + "/resources/loan_infos/?" + queryParams;

        URL url = new URL(requestUrl);
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        connection.setRequestMethod("GET");
        connection.setRequestProperty("Accept", "application/json");

        // Cookies are automatically handled by CookieManager

        int responseCode = connection.getResponseCode();
        if (responseCode == HttpURLConnection.HTTP_OK) {
            try (BufferedReader br = new BufferedReader(
                    new InputStreamReader(connection.getInputStream(), StandardCharsets.UTF_8))) {
                StringBuilder response = new StringBuilder();
                String responseLine;
                while ((responseLine = br.readLine()) != null) {
                    response.append(responseLine.trim());
                }

                JSONObject loanInfosResponse = new JSONObject(response.toString());

                // Process the response
                if (loanInfosResponse.has("meta")) {
                    JSONObject meta = loanInfosResponse.getJSONObject("meta");
                    if (meta.has("totalCount")) {
                        System.out.println("Total Count: " + meta.getInt("totalCount"));
                    }
                    if (meta.has("pageIndex")) {
                        System.out.println("Page Index: " + meta.getInt("pageIndex"));
                    }
                    if (meta.has("pageSize")) {
                        System.out.println("Page Size: " + meta.getInt("pageSize"));
                    }
                }

                // Process the loan infos
                if (loanInfosResponse.has("objects")) {
                    JSONArray objects = loanInfosResponse.getJSONArray("objects");
                    for (int i = 0; i < objects.length(); i++) {
                        JSONObject loanInfo = objects.getJSONObject(i);
                        String id = loanInfo.has("id") ? loanInfo.getString("id") : "";
                        String arlaName = loanInfo.has("arla_name") ? loanInfo.getString("arla_name") : "";
                        String value = loanInfo.has("value") ? loanInfo.getString("value") : "";
                        System.out.println("ID: " + id + ", ARLA Name: " + arlaName + ", Value: " + value);
                    }
                }
            }
        }

        connection.disconnect();
    }
}