The canonical property record at parcel level: address, structure, lot and land use, read by every other collateral product.
One parcel, one record. Address, the structure on it, the lot beneath it, and the recorded land use — assembled from the assessor's own record rather than from a listing.
Every other collateral product reads from it. Valuation, appraisal intake and tax all address the same parcel identity, so a correction made once is a correction everywhere.
How it works
Assessor records are the source because listing fields are entered by agents, are inconsistent between markets, and do not exist at all for a property that has never been listed. A model trained on self-reported characteristics inherits every one of those errors.
The property model documented under Data is the later and larger expression of the same idea, built for jurisdiction-scale extraction rather than for a single loan file.
Operations
Workflow
POST/transactions
Create Transaction
createTransaction
Create empty transaction You can subscribe to every changes inside transaction by providing callback_url in body, and you will receive POST request to this url, with your x-api-key in headers. If you respond with a non 2XX status code or not within 6 sec, requests will be retried during 5 minutes every 2 seconds, you can indicate if you already processed that event, but for some reasons respond with non 2XX code by id parameter. type parameter indicates type of the event.
"description": "Timestamp of when the occurrence happened."
},
"data": {
"type": "object",
"properties": {
"transaction_id": {
"type": "string",
"format": "ulid",
"description": "Transaction id"
},
"collection_id": {
"type": "string",
"format": "ulid",
"description": "Collection id"
},
"collection": {
"type": "object",
"description": "Collection itself"
}
}
}
}
}
``` You can assign label to transaction by providing label field. To search for transaction using label you should use Retrieve List of Transactions endpoint
{
"message": "Please check the key you used to call this service",
"url": "https://api.staircase.co/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
application/json
Internal server error
{
"message": "The product has encountered an internal server error. If you have used a transaction_id to call our services, please submit it to Staircase support"
}
Parameters
1
Parameter
Type
Example
Description
x-api-keyrequired
stringheader
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Environment API Key.
Request bodyapplication/json
2 fields
Field
Type
Description
callback_url
string (url)
URL for receiving events about changes inside transaction
Staircase time string.Example 03/03/2021, 8:24:04 AM EST
Response 403application/json
2 fields
403 invalid error
Field
Type
Description
message
string
Error message.
url
string
Error additional URL.
Response 500application/json
1 fields
Internal server error
Field
Type
Description
message
string
Error message.
Other responses
400
POST/transactions/{transaction_id}/collections
Create Collection
createCollection
Create Collection creates a collection of data points required for product invocation. A collection contains a digital representation of the input or output data for the product and is identified by collection_id.
The Example below contains a sample collection that you can use to make the product invocation in /get-collection
{
"message": "Unable to create collection. Please check the collection data"
}
text/html
Error
<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
application/json
403 invalid error
{
"message": "Please check the key you used to call this service",
"url": "https://api.staircase.co/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
application/json
Resource not found
{
"message": "Unable to create collection. Please check the transaction ID."
}
text/html
Resource not found
<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
application/json
Internal server error
{
"message": "The product has encountered an internal server error. If you have used a transaction_id to call our services, please submit it to Staircase support"
}
{
"message": "Please check the key you used to call this service",
"url": "https://api.staircase.co/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
application/json
Resource not found
{
"message": "Unable to get collection. Please check the given ids"
}
application/json
Resource not found
{
"message": "Unable to get collections of given transaction. Please check the transaction id"
}
application/json
Internal server error
{
"message": "The product has encountered an internal server error. If you have used a transaction_id to call our services, please submit it to Staircase support"
}
Parameters
3
Parameter
Type
Example
Description
x-api-keyrequired
stringheader
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Environment API Key.
transaction_idrequired
string (ulid)path
01F0KHK7DN3H5JZ4QJKMYAM6GB
Staircase Transaction Identifier
collection_idrequired
string (ulid)path
01F0KHKADN0HRFXMCQQXPA6AFZ
Staircase collection_id
Response 403application/json
2 fields
403 invalid error
Field
Type
Description
message
string
Error message.
url
string
Error additional URL.
Response 404application/json
1 fields
Resource not found
Field
Type
Description
message
string
Message
Response 500application/json
1 fields
Internal server error
Field
Type
Description
message
string
Error message.
Other responses
200400
POST/value
Valuate Collateral
invokeProductFlow
Invoke Product
Valuate Collateral invokes a partner to provide automated valuation modeling for a property.
To invoke Valuate Collateral, you will need:
a transaction_id/createTransaction), and
a collection_id/createCollection).
Once you have a transaction_id and collection_id, you can send them, along with your Authorization Key (api_key), to as many partners as you want.
Simply invoke Valuate Collateral with the same transaction_id and collection_id, but with different partner names. The partner_name parameter is optional. You can retrieve partner_name information by querying the /partners endpoint. Doing so enables you to get automated valuation modeling results from multiple partners, and to see which one provides the optimal response.
Valuate Collateral returns, as a synchronous acknowledgement, a newcollection_id. The newcollection_id represents an empty container which will hold the partner's response once processing has completed.
{
"message": "{\"data\": [\"Missing data for required field.\"]}"
}
application/json
403 invalid error
{
"message": "Please check the key you used to call this service",
"url": "https://api.staircase.co/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
text/html
Resource not found
<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
application/json
Unprocessable entity error
{
"message": "The product has encountered an internal server error. If you have used a transaction_id to call our services, please submit it to Staircase support"
}
application/json
Internal server error
{
"message": "The product has encountered an internal server error. If you have used a transaction_id to call our services, please submit it to Staircase support"
}
Parameters
1
Parameter
Type
Example
Description
x-api-keyrequired
stringheader
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Environment API Key.
Request bodyapplication/json
10 fields
Field
Type
Description
product_flow_name
string
Product flow name. If it is not specified, the default product flow will be invoked. If the product has no default product flow, the first created flow will be invoked. Cannot be specified together with vendor_name.
vendor_name
string
Vendor name. Cannot be specified together with product_flow_name.
transaction_id
string
Transaction ID used for invocation.
request_collection_id
string
Request Collection ID.
response_collection_id
string
Response Collection ID.
callback_url
string (uri)
Callback URL.
request_data
object
Request JSON body.
tags
string[]
List of tags.
options
object
Additional information that should be passed to the connector but not be added to the request collection.
invocation_mode
string
The invocation mode of a product flow single_flow or waterfall, default value single_flow
Response 201application/json
12 fields
Successfully started flow invocation.
Field
Type
Description
invocation_idrequired
string
Invocation ID.
invocation_statusrequired
string
The status of the invocation.STARTED
transaction_idrequired
string
Transaction ID.
request_collection_idrequired
string
Request collection ID.
response_collection_idrequired
string
Response collection ID.
product_flow_name
string
Product flow name.
metadata
object
The metadata of the invoked product flow.
callback_url
string
Callback URL.
request_data
object
The data for the request collection.
tags
string[]
List of tags.
options
object
Additional information that should be passed to the connector but not be added to the request collection.
widget_url
object
Product widget_url listening on the connector widget_url
Response 400application/json
1 fields
Request data failed validation
Field
Type
Description
message
one of
Message
Response 403application/json
2 fields
403 invalid error
Field
Type
Description
message
string
Error message.
url
string
Error additional URL.
Response 404application/json
1 fields
Resource not found
Field
Type
Description
message
string
Message
Response 422application/json
1 fields
Unprocessable entity error
Field
Type
Description
message
string
Error Message.
Response 500application/json
1 fields
Internal server error
Field
Type
Description
message
string
Error message.
Platform
GET/transactions/{transaction_id}/collections
Retrieve Transaction Collections
RetrieveTransactionCollections
Retrieve Transaction Collections.
Collections can be filtered by collection_id or created_at fields.
Supported operations per fields:
collection_id:
in:
description: Get only collections with specified ids
<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
application/json
403 invalid error
{
"message": "Please check the key you used to call this service",
"url": "https://api.staircase.co/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
application/json
Resource not found
{
"message": "Unable to get collections of given transaction. Please check the transaction id"
}
application/json
Internal server error
{
"message": "The product has encountered an internal server error. If you have used a transaction_id to call our services, please submit it to Staircase support"
}
Parameters
2
Parameter
Type
Example
Description
x-api-keyrequired
stringheader
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Environment API Key.
transaction_idrequired
string (ulid)path
01F0KHK7DN3H5JZ4QJKMYAM6GB
Staircase Transaction Identifier
Response 400application/json
1 fields
Error
Field
Type
Description
message
one of
Either message object with more properties.
Response 403application/json
2 fields
403 invalid error
Field
Type
Description
message
string
Error message.
url
string
Error additional URL.
Response 404application/json
1 fields
Resource not found
Field
Type
Description
message
string
Message
Response 500application/json
1 fields
Internal server error
Field
Type
Description
message
string
Error message.
Other responses
200
GET/partners
Retrieve Partners
getVendors
Retrieve Product Partners
Retrieve Partners retrieves:
-All the Partners (vendors) configured in the Product Flows configurations.
-The Order of the partner in the Product Waterfall Settings or default order in Product Flows if Product Waterfall was not configured.
-The status of the partners as active/upcoming according to the configurations of the product flows of these partners (partner will be active if at least one flow is active).
{
"message": "3 is not of type ```string```. Failed validating ```type``` in schema[\"properties\"][\"deal_sets\"][\"items\"][0][\"properties\"][\"parties\"][\"items\"][0][\"properties\"][\"customer_transaction_ID\"]:"
}
application/json
403 invalid error
{
"message": "Please check the key you used to call this service",
"url": "https://api.staircase.co/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
application/json
Internal server error
{
"message": "The product has encountered an internal server error. If you have used a transaction_id to call our services, please submit it to Staircase support"
}
Parameters
2
Parameter
Type
Example
Description
x-api-keyrequired
stringheader
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Environment API Key.
active
booleanquery
false
Include vendors with active product flows
Response 200application/json
6 fields
Successfully retrieved product partners.
Field
Type
Description
partner
string
Partner name
order
number
Order of the product flows associated with this partner
active
boolean
Partner has active flows
status
string
Status of the partner
verification_type
string
Type of verification
byoc
boolean
Specify whether customer should add its own partner credentials or not
Response 400application/json
1 fields
Validation Error
Field
Type
Description
message
one of
Message
Response 403application/json
2 fields
403 invalid error
Field
Type
Description
message
string
Error message.
url
string
Error additional URL.
Response 404application/json
1 fields
Resource not found
Field
Type
Description
message
string
Error Message.
Response 500application/json
1 fields
Internal server error
Field
Type
Description
message
string
Error message.
GET/schema/{data_object}
Retrieve Example Schema
retrieveProductSchema
Retrieve Product Schema
Retrieve Product Schema retrieves a JSON that provides schema and examples of the configured product. With Product Schema it is possible to have multiple examples and request, response and merged.
{
"message": "data_object should be any of the following strings: request, response or merged."
}
text/html
Error
<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
application/json
403 invalid error
{
"message": "Please check the key you used to call this service",
"url": "https://api.staircase.co/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
application/json
Internal server error
{
"message": "The product has encountered an internal server error. If you have used a transaction_id to call our services, please submit it to Staircase support"
}
Parameters
4
Parameter
Type
Example
Description
x-api-keyrequired
stringheader
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Environment API Key.
data_objectrequired
stringpath
request
Data Object
version
stringquery
v2
If included restrict retrieval to the version specified
return_examples
booleanquery
false
If included and set to `true`, returns one or more examples. Default to `false`
Response 400application/json
1 fields
Error
Field
Type
Description
message
string
Message
Response 403application/json
2 fields
403 invalid error
Field
Type
Description
message
string
Error message.
url
string
Error additional URL.
Response 404application/json
1 fields
Resource not found
Field
Type
Description
message
string
Error Message.
Response 500application/json
1 fields
Internal server error
Field
Type
Description
message
string
Error message.
Other responses
200
Setup
POST/housecanary/credentials
Set Housecanary Credentials
setHousecanaryCredentials
This endpoint is used to set Housecanary Credentials. The payload passed is the username/password keys and values.
It is also possible to use Housecanary API Key as the username and API Secret as the password. See the request body examples.
{
"message": "Credentials are saved and verified"
}
application/json
Request data failed validation
{
"message": "{'data': ['Missing data for required field.']}"
}
application/json
Invalid key for service
{
"message": "Please check the key you used to call this service",
"url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}