The prequalification endpoint is a powerful affordability calculator that goes far beyond traditional mortgage calculators. Unlike other affordability tools that are blind to pricing and guidelines, Pylon’s prequalification endpoint validates against all guidelines and pricing across all takeouts to determine maximum affordability within eligible products.Documentation Index
Fetch the complete documentation index at: https://docs.pylon.mortgage/llms.txt
Use this file to discover all available pages before exploring further.
Why use prequalification?
All products at once
Returns maximum affordability across all products in a single call, rather
than requiring separate calculations per product.
Guideline-aware
Validates against all encoded guidelines and pricing rules, ensuring
accurate qualification estimates.
Minimal input
Requires only 8 pieces of information to get comprehensive affordability
results.
Real-time pricing
Uses live rates and guidelines at the time of calculation, not static
assumptions.
How it works
Prequalification is an asynchronous operation. When you create a prequalification request, it returns a job ID that you must poll to get the results.Create prequalification
Submit a mutation with borrower information to create a prequalification
job.
Poll for completion
Poll the prequalification query endpoint until the job status indicates
completion.
Creating a prequalification
To create a prequalification, you need 8 pieces of information:Required input fields
| Field | Type | Description |
|---|---|---|
monthlyIncome | Float! | Borrower’s total monthly income |
monthlyDebt | Float! | Borrower’s total monthly debt payments |
fipsCountyCode | String! | Five-digit FIPS county code for the property location |
propertyUsageType | PropertyUsageType! | PRIMARY_RESIDENCE, SECOND_HOME, or INVESTMENT |
neighborhoodHousingType | NeighborhoodHousingType! | Property type (e.g., SINGLE_FAMILY, CONDOMINIUM) |
isFirstTimeHomeBuyer | Boolean! | Whether the borrower is a first-time homebuyer |
isBorrowerSelfEmployed | Boolean! | Whether the borrower is self-employed |
Optional input fields
| Field | Type | Description |
|---|---|---|
qualifyingFicoScore | Int | FICO score for qualification (if not provided, results may vary by score range) |
Response
The mutation returns a job ID:Save the
id from the response. You’ll use it to poll for results.Polling for results
After creating a prequalification, poll the query endpoint to check the job status and retrieve results:Job status
Thestatus field indicates the current state of the prequalification:
| Status | Description | Action |
|---|---|---|
PENDING | Job is queued and processing | Continue polling |
COMPLETED | Calculation finished successfully | Read result field |
FAILED | Calculation encountered an error | Read error field |
CANCELLED | Job was cancelled | No results available |
Polling strategy
Implement exponential backoff when polling to avoid excessive API calls:Understanding results
When the prequalification completes, theresult field contains maximum affordability information:
Result fields
| Field | Description |
|---|---|
maxLoanAmount | Maximum loan amount across all eligible products |
maxPurchasePrice | Maximum purchase price (loan amount + down payment) |
maxMonthlyPayment | Maximum monthly payment the borrower can afford |
products | Array of results per product, showing maximums for each eligible product |
The top-level
maxLoanAmount, maxPurchasePrice, and maxMonthlyPayment
represent the highest values across all products. Use the products array to
show borrowers product-specific maximums.Complete example
Here’s a complete TypeScript example that creates a prequalification and polls for results:Best practices
-
Handle errors gracefully: Check the
errorfield when status isFAILEDand provide meaningful messages to borrowers. - Set reasonable timeouts: Most prequalifications complete within 30 seconds, but set a maximum timeout (e.g., 2-3 minutes) to avoid indefinite polling.
- Cache results: Prequalification results are valid for a period of time. Consider caching results with the input parameters as a key to avoid redundant calculations.
- Show product breakdown: Display results per product so borrowers can see which products offer the highest affordability.
- Explain limitations: Help borrowers understand that prequalification is an estimate and actual qualification may vary based on complete application details.
- Use for lead qualification: Prequalification is perfect for initial borrower conversations to quickly assess affordability before creating a full loan application.
Error handling
Common error scenarios and how to handle them:| Error Code | Description | Resolution |
|---|---|---|
INVALID_INPUT | One or more input fields are invalid | Validate inputs before submission |
GUIDELINE_VIOLATION | Borrower doesn’t meet minimum guidelines | Explain qualification requirements to borrower |
RATE_UNAVAILABLE | No rates available for the given parameters | Try adjusting inputs or explain market conditions |
TIMEOUT | Calculation took too long | Retry the prequalification request |
Related resources
- Pricing scenarios - Show detailed pricing options for specific loan amounts
- Tracking loan updates - Learn how to poll for asynchronous job status
- Marketing rates - Display competitive rates on your website