Download OpenAPI specification:Download
This API allows clients to check the eligibility of properties for a Home Equity Investment (HEI) from Point, to estimate the maximum investment amount the homeowner may be eligible for, and to create pricing estimates that homeowners can use to understand whether a Point HEI is a good fit for them. The pricing estimates contain links to start the full application process.
Resources in this API are designed to be flexible about the information they require and will attempt to resolve missing values from Point's proprietary and third-party data sources. Endpoints typically require the caller to provide the candidate property address and will retrieve information about that property such as its value and outstanding mortgage balances when possible.
If known, the client may supply specific property information in order to obtain a more accurate estimate. Supplied values will take precedence over inferred values.
Point's property information database is extensive, but we do not have records on all properties. If a record for a property cannot be found, this will return results based on the provided data, if sufficient, or will return an error. The matched property field of the response provides information about the property that this request was matched including the level of detail in the information retrieved about the property.
(Preferred)
Using Bearer tokens to make API requests is the preferred authentication method. Bearer tokens may be sent either via the Authorization HTTP header or as a URL query string parameter.
Bearer tokens should be kept secret and not included in source files, HTML pages or otherwise exposed. If you believe that your Bearer token has been exposed, please contact your Point representative and we will issue you a new token.
Below are examples of both kinds of requests using JavaScript & Axios. These examples make a call to calculate pricing for a property.
async function requestUsingAuthHeader(secretBearerToken) {
const url = `https://api.point.com/api/v2/eligibility/pricing`;
const body = {
address: {
streetAddress: "76 Radish Ct",
city: "Aptos",
state: "CA",
zip: "95003",
},
};
const config = {
headers: { Authorization: `Bearer ${secretBearerToken}` },
};
try {
const response = await axios.post(url, body, config);
return response.data;
} catch (error) {
console.log(error);
}
}
async function requestUsingQueryString(secretBearerToken) {
const url = `https://api.point.com/api/v2/eligibility/pricing?bearer=${secretBearerToken}`;
const body = {
address: {
streetAddress: "76 Radish Ct",
city: "Aptos",
state: "CA",
zip: "95003",
},
};
try {
const response = await axios.post(url, body);
return response.data;
} catch (error) {
console.log(error);
}
}
Security Scheme Type | HTTP |
---|---|
HTTP Authorization Scheme | Bearer |
Consider using bearer tokens for authorization as they require less developer overhead when targeting the Point API.
When using HMAC authentication, any request to the API must include a Authorization header with a valid HMAC
signature in the following format:
Authorization: HMAC-SHA256 ClientId=G0uZjwHGei0C;Timestamp=1596128186;Signature=e6b0269c10a15d0714255cd80a85a4fc671fd85d330b5138aa3878656774b500
Signature
is the hash-based message authentication code produced by HMAC(secretKey, payload, 'sha256')
where payload
is
the concatenation of method;URI;timestamp;body
. The body
clause should be omitted for requests that do not include a body.
method
is the HTTP request verb GET
, PUT
, etc.URI
is the full URI of the request including any query parameters.timestamp
is the unix timestamp in seconds.body
is the JSON body of the request or an empty string.For example, to sign a request in Javascript
function signRequest(requestParams, credentials) {
const { clientSecret, clientId } = credentials;
const { uri, method, body, headers } = requestParams;
const timestamp = Math.round(new Date().getTime() / 1000);
// construct the payload
const payload = [method, uri, timestamp, body].filter(Boolean).join(';');
// generate signature
const hmac = crypto.createHmac('sha256', clientSecret);
hmac.update(payload);
const signature = hmac.digest('hex');
// set authorization header
headers.set('Authorization', `HMAC-SHA256 ClientId=${clientId};Timestamp=${timestamp};Signature=${signature}`);
}
Consult documentation online for how to produce a SHA256 encoded HMAC in your language.
You should have received authentication credentials from Point including a ClientId
and ClientSecret
. Please
note that the ClientSecret
is used to create a signature but is not included directly in API requests. This
secret MUST be kept secure and should not be included in HTML pages or otherwise exposed. If you believe that your
ClientSecret
has been exposed, please contact your Point representative and we will issue you a new secret.
Security Scheme Type | HTTP |
---|---|
HTTP Authorization Scheme | digest |
Several API endpoints accept a ficoRange
parameter that is used to to
provide a general estimate of an applicant's FICO score rather than a specific
value. This returns a structured representation of the currently defined FICO ranges
that will be accepted by this parameter.
{- "ficoRanges": [
- {
- "key": "740-850",
- "min": 740,
- "max": 850,
- "label": "Excellent (740+)"
}, - {
- "key": "680-739",
- "min": 680,
- "max": 739,
- "label": "Good (680-739)"
}, - {
- "key": "600-679",
- "min": 600,
- "max": 679,
- "label": "Fair (600-679)"
}, - {
- "key": "550-599",
- "min": 550,
- "max": 599,
- "label": "Improving (550-599)"
}, - {
- "key": "500-549",
- "min": 500,
- "max": 549,
- "label": "Needs improvement (550-549)"
}, - {
- "key": "300-499",
- "min": 300,
- "max": 499,
- "label": "Poor (below 500)"
}
]
}
Provides estimated pricing for a Home Equity Investment (HEI) from Point. This includes the risk adjusted home value, homeowner protection cap, option percentage and basic fee information. See Point's pricing calculator for additional information about how Point's HEI's are priced.
Point's HEI pricing varies based on the requested amount. If a requested amount is not supplied, pricing will be provided based on the maximum eligible amount.
requestedAmount | integer The requested amount. This will be used to generate pricing
information for a specific option investment amount. If not supplied,
the maximum eligible amount for the given inputs will be used. This
field is ignored for requests that do not generate specific pricing
information (e.g. |
required | Property address (Structured) (object) or Property address (String) (string) (Property address) A fully qualified USA address with street address, city, state, zip, and unit number if applicable. This may be supplied as an unparsed string or as a object. |
firstMortgageBalance | integer The remaining balance on the first mortgage, in USD. |
secondMortgageBalance | integer The remaining balance on the second mortgage, in USD. |
homeValue | integer The current estimated home value, in USD |
ficoScore | integer The FICO score used to calculate eligibility and pricing |
ficoRange | string A FICO range as an alternative to a specific FICO score. See the API endpoint to
list defined FICO ranges
for details on how to obtain valid values for this field. If both the |
clientId | string (clientId) Nullable Deprecated An optional ID provided the user of the API that will be echoed to the response data. This is intended to allow the caller to associate a given request with a specific account within the caller's systems.
|
referenceId | string (referenceId) Nullable An optional ID provided the user of the API that will be echoed to the response data. This is intended to allow the caller to associate a given request with a specific account or lead id within the caller's systems. Functionally replaces |
{- "address": {
- "streetAddress": "76 Radish Ct",
- "city": "Aptos",
- "state": "CA",
- "zip": "95003"
}
}
Pricing response for 76 Radish Ct, Aptos, CA 95003 showing a detailed property record but no mortgage balance.
{- "eligible": true,
- "message": "Eligible for an HEI from Point for the given inputs",
- "minimumOfferAmount": 25000,
- "maximumOfferAmount": 142000,
- "pricing": {
- "acceptable": true,
- "optionInvestmentAmount": 142000,
- "homeValue": 668485,
- "riskAdjustment": 15,
- "riskAdjustedHomeValue": 568212,
- "capPercentage": 17.5,
- "optionPercentage": 70,
- "originationFeeRate": 3,
- "termYears": 30,
- "closingCosts": {
- "totalFees": 5310,
- "totalPayoffs": 0,
- "totalAmount": 5310,
- "fees": [
- {
- "key": "appraisal",
- "label": "Appraisal",
- "amount": 550,
- "method": "fixed",
- "notes": "Estimated appraisal fee. The appraisal costs may vary depending on the size, complexity, and location of the property. These costs are due to third parties."
}, - {
- "key": "escrow",
- "label": "Title - Escrow Fee",
- "amount": 500,
- "method": "fixed",
- "notes": "Estimated escrow fee. The escrow costs may vary depending on the size, complexity, and location of the property. These costs are due to third parties."
}, - {
- "key": "origination",
- "label": "Origination Fee",
- "amount": 4260,
- "method": "rate",
- "rate": 3,
- "notes": "Estimated processing fee of 3.0%. Point deducts a processing fee of 3% to 5% from Point’s investment payment to you depending on the complexity of your situation."
}
], - "payoffs": [ ]
}
}, - "pricingInputs": {
- "address": {
- "streetAddress": "76 Radish Ct",
- "city": "Aptos",
- "state": "CA",
- "zip": "95003"
}, - "homeValue": 668485,
- "firstMortgageBalance": 0,
- "secondMortgageBalance": 0
}, - "matchedProperty": {
- "status": "detailed",
- "address": {
- "streetAddress": "76 Radish Ct",
- "city": "Aptos",
- "state": "CA",
- "zip": "95003"
}, - "homeValue": 668485,
- "firstMortgageBalance": 0,
- "secondMortgageBalance": 0
}
}
Creates a pricing estimate that allows a homeowner to view a details about a Point Home Equity Investment (HEI). After reviewing the details of their HEI pricing, applicants may elect to start a full application or schedule a call with a Point representative.
Estimates may be created either with or without named applicants. For estimates created without applicant details, the homeowner will be asked to save their estimate by supplying their name and contact information before being able to proceed to a full application.
The intended use case for this API is for the client to first query the
eligibility/pricing
pricing and present the homeowner with preliminary
pricing information. Once the homeowner chooses to view the details of that
pricing option, the client should create an Estimate using the POST
/estimates
endpoint and redirect the customer to the returned URL.
Estimates created through this API will be associated with a Partner's account and will allow the partner to track the homeowner's progress through the application process using Point's Partner Portal.
object The applicant for whom the estimate should be created. If supplied, the applicant will receive an email with details about how to access their estimate and will be able to create a full application. If not supplied, the estimate detail page linked to in this response will allow the applicant to save their estimate by entering their name and contact information. The estimate must be saved before the applicant will be able to proceed with a full application. | |
requestedAmount | integer The requested amount. If supplied, this will be used to generate pricing information for a specific option investment amount. If not supplied, the maximum eligible amount for the given inputs will be used. |
required | Property address (Structured) (object) or Property address (String) (string) (Property address) A fully qualified USA address with street address, city, state, zip, and unit number if applicable. This may be supplied as an unparsed string or as a object. |
firstMortgageBalance | integer The remaining balance on the first mortgage, in USD. |
secondMortgageBalance | integer The remaining balance on the second mortgage, in USD. |
homeValue | integer The current estimated home value, in USD |
ficoScore | integer The FICO score used to calculate eligibility and pricing |
ficoRange | string A FICO range as an alternative to a specific FICO score. See the API endpoint to
list defined FICO ranges
for details on how to obtain valid values for this field. If both the |
clientId | string (clientId) Nullable Deprecated An optional ID provided the user of the API that will be echoed to the response data. This is intended to allow the caller to associate a given request with a specific account within the caller's systems.
|
referenceId | string (referenceId) Nullable An optional ID provided the user of the API that will be echoed to the response data. This is intended to allow the caller to associate a given request with a specific account or lead id within the caller's systems. Functionally replaces |
partnerAccountId | string The Point partner account id to be associated with this request. Please contact your Point Account Manager for additional detail if needed. |
{- "address": {
- "streetAddress": "76 Radish Ct",
- "city": "Aptos",
- "state": "CA",
- "zip": "95003"
}
}
Estimate creation response for a property that is not eligible.
{- "eligible": false,
- "key": null,
- "url": null,
- "minimumOfferAmount": 25000,
- "maximumOfferAmount": 0,
- "pricingInputs": {
- "address": {
- "streetAddress": "76 Plumosa Ln",
- "city": "Aptos",
- "state": "CA",
- "zip": "95003"
}, - "homeValue": 450000,
- "firstMortgageBalance": 500000,
- "secondMortgageBalance": 0
}, - "matchedProperty": {
- "status": "detailed",
- "address": {
- "streetAddress": "76 Plumosa Ln",
- "city": "Aptos",
- "state": "CA",
- "zip": "95003"
}, - "homeValue": 450000,
- "firstMortgageBalance": 500000,
- "secondMortgageBalance": 0,
- "zillow": {
- "value": 450000
}, - "owners": [
- {
- "fullName": "Aptos Pines Homeowners Association"
}
]
}, - "referenceId": null,
- "message": "Unable to create estimate: ineligible for supplied inputs"
}
estimateKey required | integer A unique identifier for the estimate |
{- "key": "string",
- "expires": "2017-07-21T17:32:28Z",
- "canSave": true,
- "links": {
}, - "requestedOptionAmount": 0,
- "minOptionAmount": 0,
- "maxOptionAmount": 0,
- "applicant": {
- "title": "string",
- "firstName": "string",
- "middleName": "string",
- "lastName": "string",
- "suffix": "string",
- "phone": "4083333333",
- "contactPolicyConsentDate": "2021-05-07T00:00:00.000Z"
}, - "property": {
- "address": {
- "streetAddress": "string",
- "unit": "string",
- "city": "string",
- "state": "string",
- "zip": "string"
}, - "homeValue": 0,
- "firstMortgageBalance": 0,
- "secondMortgageBalance": 0
}, - "pricingInputs": {
- "address": {
- "streetAddress": "string",
- "unit": "string",
- "city": "string",
- "state": "string",
- "zip": "string"
}, - "firstMortgageBalance": 0,
- "secondMortgageBalance": 0,
- "homeValue": 0,
- "ficoScore": 0,
- "ficoRange": "string"
}, - "pricing": {
- "acceptable": true,
- "optionInvestmentAmount": 0,
- "homeValue": 0,
- "riskAdjustedHomeValue": 0,
- "riskAdjustment": 0,
- "capPercentage": 0,
- "optionPercentage": 0,
- "originationFeeRate": 0,
- "termYears": 0
}, - "source": {
- "channel": "string",
- "platform": "string",
- "partnerAccountid": "string",
- "origin": "string",
- "clientId": "string",
- "referenceId": "string"
}
}