PropertySync API
The PropertySync API has been designed to provide a robust environment for creating new integrations for searching, retrieving, editing and enhancing the documents and other information within your title workflow. If you have thoughts, comments or ideas for enhancements to our API, please reach out to us at: support@propertysync.com. We would love to hear from you!
Getting Started
Endpoint URLs
Base URLs for each endpoint may change depending upon the environment used. We deploy different URLs for development, staging and production environments as well as specific URLs on a per-client basis as needed to segregate traffic, geography or other specialized needs. All base URLs noted below must be assigned to an individual client as-needed.
Base URLs will typically follow the format below:
https://api.propertysync.com/v1
API calls follow basic REST format and are sent over HTTPS channels.
All requests should be sent using Content-Type: application/json
All API calls (other than login) require an authorization header to be sent using a bearer token HTTP header in the format of Bearer {token}. The bearer token can be retrieved from the Get Token URL and used for all subsequent calls to the API. Note that timeouts for each token may differ between endpoints, clients or document groups. You must retrieve a new token from this endpoint if your token expires or if you do not have sufficient privileges with the previously used token.
Authentication / Login
All API calls require an authorization header to be sent using a bearer token HTTP header in the format of Bearer {token}
. The bearer token can be retrieved from a specific login URL and used for all subsequent calls to the API. Note that timeouts for each token may differ between endpoints, clients or document groups. You must retrieve a new token from this endpoint if your token expires or if you do not have sufficient privileges with the previously used token.
- URL:
https://api.propertysync.com/v1/login
- Request Type: POST
Request Body:
{
"email": "EMAIL",
"password": "PASSWORD"
}
Response:
{
"token": "xxxxx.yyyyy.zzzzz"
}
Document Groups
In traditional title search and storage systems, data is collected and organized into a title "plant". In the PropertySync system we use the term "document group" to define the collection of a set of documents.
This document group will have a specific UUID assigned to it and most or all of the requests you make will be working against a specific document group id. When you see a reference to {documentGroupId} below, this should be replaced with the UUID of the document group you are working with. Please reach out to PropertySync for information on your specific document group ids.
Document groups can be organized regionally, such as by state and county which is how most traditional systems work, but they can also be used to collect and organize documents in many other different fashions. Your implementation may store starter documents or other specialized documents into different collections that may or may not be associated to a specific region.
Get Document Group Details
You can retrieve information about a specific document group by making a GET request to the following endpoint:
- URL:
https://api.propertysync.com/v1/indexing/document-groups/{documentGroupId}
- Request Type: GET
Response:
{
"id": "5503311a-5586-49fc-8b00-ae29134870bc",
"createdAt": "2019-11-05T21:43:08.000000Z",
"updatedAt": "2021-09-21T22:28:03.000000Z",
"plantEffectiveDate": "2019-06-17",
"autoCompletesSource": "Indexing",
"landValidationsSource": "Indexing",
"name": "SamplePlant",
"platInstrumentTypes": [
"PLAT",
"REPLAT"
],
"importComplete": false
}
Managing Auto Completes
The API system provides basic management functionality for the various autocompletes within a given document group. This includes things such as available subdivision names, instrument types, book types, etc. When updating these items via the API, all other areas of the PropertySync system in indexing and search.
Retrieving All Values
You can retrieve a list of all available autocomplete types and values.
- URL:
https://api.propertysync.com/v1/indexing/document-groups/{documentGroupId}/auto-completes/
- Request Type: GET
Response:
[
{
"id": "b840a625-d94a-4b2b-9c02-65b7758643ff",
"type": "addition",
"value": "RATHDRUM RIDGE"
},
{
"id": "d785f7ec-5538-4674-8051-ae73392fc886",
"type": "addition",
"value": "FOXTAIL 3RD ADD"
},
{
"id": "ac046f70-1a34-4f13-bb42-2d1211467c83",
"type": "addition",
"value": "ASHE ADD TO MARSING"
}
]
You can filter this response by passing in potential filter values as url parameters. For example to filter these and only include instrumentTypes, you could pass a request as follows:
- URL:
https://api.propertysync.com/v1/indexing/document-groups/{documentGroupId}/auto-completes/?type=instrumentType
Similarly, a request to only list additions:
- URL:
https://api.propertysync.com/v1/indexing/document-groups/{documentGroupId}/auto-completes/?type=addition
Additionally, you can further search the list of matches by passing in a search parameter as shown below, which would return all additions matching the name 'someAddition':
- URL:
https://api.propertysync.com/v1/indexing/document-groups/{documentGroupId}/auto-completes/?type=addition&search=someAddition
Adding Autocomplete Values
You can add new autocomplete values to the system using the following endpoint:
- URL:
https://api.propertysync.com/v1/indexing/document-groups/{documentGroupId}/auto-completes/
- Request Type: POST
Request Body:
{
"type": "addition",
"value": "NEW ADDITION NAME"
}
Response:
{
"id": "8a4e9f12-53c8-47b1-bf34-762ad1e25ca9",
"type": "addition",
"value": "NEW ADDITION NAME"
}
Deleting Autocomplete Values
You can delete autocomplete values from the system using the following endpoint:
- URL:
https://api.propertysync.com/v1/indexing/document-groups/{documentGroupId}/auto-completes/{autocompleteId}
- Request Type: DELETE
Response:
{
"success": true,
"message": "Autocomplete deleted."
}
Managing Land Validations
Retrieving All Values
You can retrieve a list of all available land validation types and values.
- URL:
https://api.propertysync.com/v1/indexing/document-groups/{documentGroupId}/land-validations/
- Request Type: GET
You can also append a type filter to only return validations of a certain type.
- URL:
https://api.propertysync.com/v1/indexing/document-groups/{documentGroupId}/land-validations/?type=subdivisionLegal
For pagination, you can include page and pageSize parameters:
- URL:
https://api.propertysync.com/v1/indexing/document-groups/{documentGroupId}/land-validations/?pageSize=100&page=2
Running Searches
Searching Documents
Searching document groups allows you to retrieve a list of document groups that match your search parameters. All search parameters from the main PropertySync interface are supported. You must have access to the requested document group or plant for search queries to return. Legal and other criteria for the search will depend on configuration of the specific document collection or plant format. Please contact PropertySync support for a definition of supported search parameters for your specific document group.
- URL:
https://api.propertysync.com/v1/search/document-groups/{documentGroupId}/searches
- Request Type: POST
Request Body:
{
"queryParams": {
"recordingInfos": [
{
"bookType": "DEED",
"book": "1",
"page": "2",
"instrumentType": "AFFIDAVIT",
"instrumentNumber": "1",
"dateFrom": "1999-05-05",
"dateTo": "2020-12-25"
}
],
"parties": [
{
"partyName": "PARTY NAME",
"granteeName": "GRANTEE NAME",
"grantorName": "GRANTOR NAME",
"soundexSearch": "1",
"proximitySearch": "1"
}
]
}
}
Response:
{
"id": "7f287d41-4c03-4e39-aa93-21e4d4facb99",
"title": "Untitled"
}
Including (or not) Related Document Results
By default, the search system will return matches to a search, along with any related documents results. Often, you may wish to restrict the return of relateds and only return matches. You can do so by passing in an additional parameter of excludeRelatedDocuments" => 1
{
"queryParams": {
"excludeRelatedDocuments": 1,
"recordingInfos": [
{ ... }
]
}
}
Search Parameters
Available search parameters for your document group are highly specific to the configuration of your group. These may change based on how the plant was originally keyed and/or how it is currently setup for search.Please be sure to reach out to PropertySync support for help developing a search plan for your integration.
Depending on this configuration, some common possible search parameters that may be passed into your queryParams are noted below.
{
"exactLegalSearches": null,
"excludeRelatedDocuments": null,
"giOnly": null,
"enableQueryBefore": null,
"queryBefore": null,
"orderName": null,
"recordingInfos": [
{
"bookType": null,
"book": null,
"page": null,
"instrumentType": null,
"instrumentPage": null,
"instrumentNumber": null,
"dateFrom": null,
"dateTo": null,
"fileNumber": null,
"caseNumber": null
}
],
"parties": [
{
"grantorName": null,
"granteeName": null,
"partyName": null,
"phoneBookNames": null,
"soundexSearch": null,
"useNicknames": null,
"proximitySearch": null
}
],
"acreages": [
{
"township": null,
"range": null,
"section": null,
"quarter": null,
"acreageComment": null,
"govLot": null,
"arb": null,
"arbOrNull": null,
"mineralSearch": null
}
],
"subdivisions": [
{
"lot": null,
"block": null,
"unit": null,
"addition": null,
"additionDictionarySelected": null,
"additionDictionaryAvailable": null,
"additionDisplayValue": null,
"subdivisionComment": null,
"claim": null,
"miningSurvey": null,
"arb": null,
"mineralSearch": null
}
],
"marketSources": [
{
"marketSource": null,
"minConsideration": null,
"maxConsideration": null
}
],
"parcels": [
{
"parcelNumber": null
}
],
"addresses": [
{
"address": null,
"city": null,
"state": null,
"zipCode": null
}
],
"legals": [
{
"fullTextLegal": null,
"parcel": null
}
],
"cosSubdivisions": [
{
"lot": null,
"block": null,
"cos": null,
"subdivisionComment": null
}
],
"estateLegals": [
{
"estate": null,
"parcel": null,
"quarter": null
}
],
"condoLegals": [
{
"condo": null,
"unit": null,
"building": null
}
],
"tags": [ ]
}
Search Example: Find by book and page, exclude related documents
{
"queryParams": {
"excludeRelatedDocuments": "1",
"recordingInfos": [
{
"book": "963",
"page": "407"
}
]
}
}
Search Example: Find by instrument type, exclude related documents
{
"queryParams": {
"excludeRelatedDocuments": "1",
"recordingInfos": [
{
"instrumentType": "STARTER"
}
]
}
}
Search Example: Find by address, include related documents
{
"queryParams": {
"addresses": [
{
"address1": "1409",
"address2": null,
"city": null,
"state": null,
"zip_code": null
}
]
}
}
Search Example: Find by instrument type, exclude those with specific notes content
In the example below, you can see multiple search parameter values in the recordingInfos array being passed in. These are treated as an OR comparison, and items within the same object are treated as an AND comparison. For example, the below search would include documents where:
- (instrumentType = "OTP" AND fileNumber= "40260308" AND "note" does not contain "sup", or "supplement" or "supplemental") OR WHERE
- (instrumentType = "Owner's Title Policy" AND fileNumber= "40260308" AND "note" does not contain "sup", or "supplement" or "supplemental") OR WHERE
- (instrumentType = "Commitment" AND fileNumber= "40260308" AND "note" does not contain "sup", or "supplement" or "supplemental")
{
"queryParams": {
"recordingInfos": [
{
"instrumentType": "OTP",
"fileNumber": "40260308",
"noteNotContains": [
"sup",
"supplement",
"supplemental"
]
},
{
"instrumentType": "Owner’s Title Policy",
"fileNumber": "40260308",
"noteNotContains": [
"sup",
"supplement",
"supplemental"
]
},
{
"instrumentType": "Commitment",
"fileNumber": "40260308",
"noteNotContains": [
"sup",
"supplement",
"supplemental"
]
}
]
}
}
Retrieving Results
Once a search has been executed and the ID of the search returned above, you can use that ID to retrieve the results of the search.
To retrieve the search results and the information that would be displayed in the search results screen of the PropertySync UI, you can use the following endpoint. Note that this endpoint is paged and by default will return the first 25 results. You can modify the page and limit parameters to retrieve additional results by passing in the ?page and ?maxPerPage parameters.
- URL:
https://api.propertysync.com/v1/search/document-groups/{documentGroupId}/searches/{searchId}/results
- Request Type: GET
Response:
[
{
"documentId": "1da166d4-0bab-11ee-b200-024227adfbf9",
"searchId": "041d21e1-0356-441e-a871-d3dbac461c05",
"plantId": "41cbc5b8-0015-11ea-93e1-0a58a9feac2a",
"orderId": "",
"filedDate": "2023-02-10",
"isExpanded": false,
"isFallout": false,
"isFlagged": false,
"isFuzzyMatch": false,
"canBeInFinalChain": false,
"isInFinalChain": false,
"isStruckOut": false,
"hasImage": false,
"hasNote": false,
"note": "",
"bestGrantor": "ZEMPEL ANN",
"bestGrantee": "MADSON REGGIE AND LOREEN",
"legalHeader": " Unit: 302 Addition: BREEZY SHORES RESORT \u0026 CONDO (SEARCH BY UNIT# WK#) ~ BRESR ",
"documentNumber": "Testing Number",
"bookType": "",
"bookNumber": "",
"pageNumber": "",
"documentType": "STARTER",
"pageNumberSort": "",
"bookNumberSort": "",
"documentNumberSort": "TTESTING NUMBER",
"isRelated": false,
"relatedToResultId": null,
"details": {
"marketSource": null,
"consideration": null,
"instrumentDate": null,
"comment": null,
"tags": "",
"parties": [],
"sections": {
"Subdivisions": [
{
"Lot": "",
"Block": "",
"Unit": "302",
"Addition": "BREEZY SHORES RESORT \u0026 CONDO (SEARCH BY UNIT# WK#) ~ BRESR",
"Parcel": " ",
"Comment": " "
},
{
"Lot": "",
"Block": "",
"Unit": "302",
"Addition": "BREEZY SHORES RESORT \u0026 CONDO (SEARCH BY UNIT# WK#) ~ BRESR",
"Parcel": " ",
"Comment": " "
},
{
"Lot": "",
"Block": "",
"Unit": "302",
"Addition": "BREEZY SHORES RESORT \u0026 CONDO (SEARCH BY UNIT# WK#) ~ BRESR",
"Parcel": " ",
"Comment": " "
}
]
}
},
"isNewAddition": 0,
"firstAndLastName": "unknown",
"falloutDate": null,
"documentNotes": ""
},
{
"documentId": "25d33fe0-8c3b-11eb-977f-02428679601a",
"searchId": "041d21e1-0356-441e-a871-d3dbac461c05",
"plantId": "41cbc5b8-0015-11ea-93e1-0a58a9feac2a",
"orderId": "",
"filedDate": "2019-06-19",
"isExpanded": false,
"isFallout": false,
"isFlagged": false,
"isFuzzyMatch": false,
"canBeInFinalChain": false,
"isInFinalChain": false,
"isStruckOut": false,
"hasImage": false,
"hasNote": false,
"note": "",
"bestGrantor": "SMITH",
"bestGrantee": "",
"legalHeader": " Lot: 1 Addition: ABBOTTS ADDITION ",
"documentNumber": "MICHAEL TESTING",
"bookType": "",
"bookNumber": "",
"pageNumber": "",
"documentType": "STARTER",
"pageNumberSort": "",
"bookNumberSort": "",
"documentNumberSort": "UMICHAEL TESTING",
"isRelated": false,
"relatedToResultId": null,
"details": {
"marketSource": null,
"consideration": null,
"instrumentDate": null,
"comment": null,
"tags": "",
"parties": [],
"sections": {
"Subdivisions": [
{
"Lot": "1",
"Block": "",
"Unit": "",
"Addition": "ABBOTTS ADDITION",
"Parcel": " ",
"Comment": " "
}
]
}
},
"isNewAddition": 0,
"firstAndLastName": "unknown",
"falloutDate": null,
"documentNotes": ""
},
{
"documentId": "2ea71dea-78a7-11ec-9e70-02423d1552ac",
"searchId": "041d21e1-0356-441e-a871-d3dbac461c05",
"plantId": "41cbc5b8-0015-11ea-93e1-0a58a9feac2a",
"orderId": "",
"filedDate": "2019-06-17",
"isExpanded": false,
"isFallout": false,
"isFlagged": false,
"isFuzzyMatch": false,
"canBeInFinalChain": false,
"isInFinalChain": false,
"isStruckOut": false,
"hasImage": false,
"hasNote": false,
"note": "",
"bestGrantor": "SMITH ANNA",
"bestGrantee": "",
"legalHeader": " Lot: 18 Addition: ABBOTTS ADDITION TO SPARTA ",
"documentNumber": "MIKES TEST",
"bookType": "",
"bookNumber": "",
"pageNumber": "",
"documentType": "STARTER",
"pageNumberSort": "",
"bookNumberSort": "",
"documentNumberSort": "PMIKES TEST",
"isRelated": false,
"relatedToResultId": null,
"details": {
"marketSource": null,
"consideration": null,
"instrumentDate": null,
"comment": null,
"tags": "",
"parties": [],
"sections": {
"Subdivisions": [
{
"Lot": "18",
"Block": "",
"Unit": "",
"Addition": "ABBOTTS ADDITION TO SPARTA",
"Parcel": " ",
"Comment": " "
}
]
}
},
"isNewAddition": 0,
"firstAndLastName": "unknown",
"falloutDate": null,
"documentNotes": ""
}
]
Retrieve Document IDs
To retrieve just the document IDs from a search, you can use the following endpoint. This will return an array of document IDs that can be used in follow up calls to retrieve document details, assets or other information for individual documents.
Note: If you are retrieving large quantities of results for use in reporting or analyzation outside of the PropertySync system, it is much more efficient to either use the results endpoint above, or to create a batch from the search results and retrieve the batch. This will allow you to retrieve the results in a single call instead of each individual document.
- URL:
https://api.propertysync.com/v1/search/document-groups/{documentGroupId}/searches/{searchId}/document-ids
- Request Type: GET
Response:
[
"a5d55eea-8335-11ea-8179-0242ac170002",
"a5c5da74-8335-11ea-8179-0242ac170002"
]
Retrieving The Chainsheet
You can retrieve the chainsheet for a search by using the following endpoint. This will return a PDF of the chainsheet, which can be used for printing or other purposes.
- URL:
https://api.propertysync.com/v1/search/document-groups/{documentGroupId}/searches/{searchId}/export
- Request Type: POST
Request Body:
{
"exportFormat": "pdf",
}
Document Assets
Listing Document Assets
You can retrieve a list of available assets (commonly images) associated with a document. Each asset id can be used in a follow up call to retrieve a copy of that file directly.
- URL:
https://api.propertysync.com/v1/indexing/document-groups/{documentGroupId}/documents/{documentId}/assets
- Request Type: GET
Response:
{
"pdf": {
"id": "1fdbd544-dea7-44b6-bc7a-71b920f83f40"
},
"raw": [
{
"id": "dc66a053-4c40-47d9-84f2-51ea5d2b29a3"
}
]
}
Retrieve Document Asset
Using the asset ID returned in the document asset list, you can retrieve the file directly using the following call. The response content-type should be set to the relevant underlying mime type of the file. Retrieving the "raw" asset, will return a copy of the originally stored file or files, in whatever format they were originally stored in.
- URL:
https://api.propertysync.com/v1/indexing/document-groups/{documentGroupId}/documents/{documentId}/assets/{assetId}
- Request Type: GET
Response:
<response will contain raw binary data for PDF>
Document Details
Specific documents can be retrieved using their document group id and document id as returned by the search request shown above. The format of the response will contain the raw index information as stored in PropertySync. This format will change depending on the structure and configuration of the specific document group or plant. The result below shows a sample generic legal format document.
- URL:
https://api.propertysync.com/v1/indexing/document-groups/{documentGroupId}/documents/{documentId}
- Request Type: GET
Response:
{
"id": "26dc1fa7-c23f-40b4-a0e7-69ec71f814c8",
"json": {
"tags": [],
"flags": null,
"(legalType)": [
{
"lot": [
{
"rangeMax": "29A",
"rangeMin": "29A",
"rangeAction": null,
"rangePrecision": null
}
],
"half": null,
"unit": [],
"block": [],
"range": null,
"tract": null,
"govLot": [],
"acreage": null,
"comment": null,
"refPage": "0090C",
"tags": [],
"flags": null,
"status": null,
"company": null,
"imageId": null,
"related": [
{
"bookType": null,
"bookNumber": null,
"pageNumber": null,
"instrumentType": null,
"instrumentNumber": null
},
{
"bookType": null,
"bookNumber": null,
"pageNumber": null,
"instrumentType": null,
"instrumentNumber": null
}
],
"bookType": null,
"grantees": [
{
"nameLast": "NM UTILITIES INC",
"nameType": null,
"nameFirst": null,
"nameMiddle": null
}
],
"grantors": [
{
"nameLast": "PARADISE GREENS LTP",
"nameType": null,
"nameFirst": null,
"nameMiddle": null
}
],
"recordId": null,
"filedDate": "1994-05-20",
"filedTime": null,
"uccNumber": null,
"bookNumber": "94016",
"caseNumber": null,
"filmNumber": null,
"loanNumber": null,
"pageNumber": "2249",
"recordType": null,
"otherFields": null,
"checkedOutBy": null,
"marketSource": null,
"orderOfCourt": null,
"consideration": null,
"instrumentDate": null,
"instrumentType": "EASEMENT",
"indexingRecordId": "1638415",
"instrumentNumber": "1994067131",
"section": null,
"addition": "PARADISE NORTH",
"platPage": "0182",
"quarters": null,
"township": null,
"fileNumber": null,
"platVolume": "0090C",
"surveyName": null,
"subdivision": null,
"surveyBlock": null,
"PatentVolume": null,
"patentNumber": null,
"surveySection": null,
"abstractNumber": null,
"legalDescription": null,
"certificateNumber": null
},
{
"lot": [
{
"rangeMax": "30A",
"rangeMin": "30A",
"rangeAction": null,
"rangePrecision": null
}
],
"half": null,
"unit": [],
"block": [],
"range": null,
"tract": null,
"govLot": [],
"acreage": null,
"comment": null,
"refPage": "0090C",
"section": null,
"addition": "PARADISE NORTH",
"platPage": "0182",
"quarters": null,
"township": null,
"fileNumber": null,
"platVolume": "0090C",
"surveyName": null,
"subdivision": null,
"surveyBlock": null,
"PatentVolume": null,
"patentNumber": null,
"surveySection": null,
"abstractNumber": null,
"legalDescription": null,
"certificateNumber": null
}
],
"status": null,
"comment": null,
"company": null,
"imageId": null,
"related": [
{
"bookType": null,
"bookNumber": null,
"pageNumber": null,
"instrumentType": null,
"instrumentNumber": null
},
{
"bookType": null,
"bookNumber": null,
"pageNumber": null,
"instrumentType": null,
"instrumentNumber": null
}
],
"bookType": null,
"grantees": [
{
"nameLast": "NM UTILITIES INC",
"nameType": null,
"nameFirst": null,
"nameMiddle": null
}
],
"grantors": [
{
"nameLast": "PARADISE GREENS LTP",
"nameType": null,
"nameFirst": null,
"nameMiddle": null
}
],
"recordId": null,
"filedDate": "1994-05-20",
"filedTime": null,
"uccNumber": null,
"bookNumber": "94016",
"caseNumber": null,
"filmNumber": null,
"loanNumber": null,
"pageNumber": "2249",
"recordType": null,
"otherFields": null,
"checkedOutBy": null,
"marketSource": null,
"orderOfCourt": null,
"consideration": null,
"instrumentDate": null,
"instrumentType": "EASEMENT",
"indexingRecordId": "1638415",
"instrumentNumber": "1994067131"
}
}
Document Versions
You can retrieve the version history of a document using the following endpoint:
- URL:
https://api.propertysync.com/v1/indexing/document-groups/{documentGroupId}/documents/{documentId}/versions
- Request Type: GET
Response:
[
{
"id": "f3c00921-75f4-49a3-8934-082afdb6d913",
"documentId": "26dc1fa7-c23f-40b4-a0e7-69ec71f814c8",
"createdAt": "2022-05-12T14:11:46.000000Z",
"createdBy": "Rob Martinson",
"json": { ... }
},
{
"id": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
"documentId": "26dc1fa7-c23f-40b4-a0e7-69ec71f814c8",
"createdAt": "2022-04-15T10:33:21.000000Z",
"createdBy": "Jane Smith",
"json": { ... }
}
]
Validate Document
You can validate a document against the PropertySync validation rules using the following endpoint:
- URL:
https://api.propertysync.com/v1/indexing/document-groups/{documentGroupId}/validate-document
- Request Type: POST
Request Body (validate existing document by ID):
{
"id": "26dc1fa7-c23f-40b4-a0e7-69ec71f814c8"
}
OR (validate new/modified JSON):
{
"json": {
"instrumentType": "WARRANTY DEED",
"filedDate": "2023-01-15",
"grantors": [
{
"nameLast": "SMITH",
"nameFirst": "JOHN"
}
],
...
}
}
Response:
{
"valid": true,
"errors": [],
"warnings": [
"Missing grantee on WARRANTY DEED"
]
}
Document Group Metadata
You can retrieve metadata about a document group using the following endpoint:
- URL:
https://api.propertysync.com/v1/indexing/document-groups/{documentGroupId}/metadata
- Request Type: GET
Response:
{
"customFields": [
{
"id": "f3c00921-75f4-49a3-8934-082afdb6d913",
"name": "fileNumber",
"type": "string",
"required": false
},
{
"id": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
"name": "consideration",
"type": "number",
"required": true
}
],
"validationRules": [
{
"id": "7f287d41-4c03-4e39-aa93-21e4d4facb99",
"field": "instrumentType",
"rule": "required",
"message": "Instrument Type is required"
}
]
}
Document Actions
You can execute document actions on batches using the following endpoint:
- URL:
https://api.propertysync.com/v1/indexing/document-groups/{documentGroupId}/batches/{batchId}/run-action/{actionId}
- Request Type: POST
Request Body (optional, to run action on specific documents only):
{
"documentIds": [
"26dc1fa7-c23f-40b4-a0e7-69ec71f814c8",
"a1b2c3d4-e5f6-7890-1234-567890abcdef"
]
}
Response:
{
"success": true,
"message": "Action executed successfully on 2 documents"
}
Reports
You can run reports using the following endpoint:
- URL:
https://api.propertysync.com/v1/indexing/document-groups/{documentGroupId}/reports/{reportId}
- Request Type: POST
Request Body:
{
"params": {
"startDate": "2023-01-01",
"endDate": "2023-01-31",
"instrumentType": "WARRANTY DEED"
}
}
Response:
{
"reportId": "f3c00921-75f4-49a3-8934-082afdb6d913",
"status": "completed",
"results": [
{
"date": "2023-01-15",
"count": 25,
"details": { ... }
},
{
"date": "2023-01-16",
"count": 18,
"details": { ... }
}
]
}
Delete Document
Documents can be deleted from the system using the following endpoint. This will remove the document from both the search and indexing sides of the system.
- URL:
https://api.propertysync.com/v1/indexing/document-groups/{documentGroupId}/documents/{documentId}
- Request Type: DELETE
Managing Orders
Searches can be executed and grouped into an order, which is visible with a name and relevant search results within the portal platform. From the PropertySync portal users can re-open order search results and details for review or adjustment as well as run date down operations against the order. Because orders are specific to both the document group and the company, you must pass in a company ID to all order endpoints along with the relevant document group ID.
Creating An Order
Once a search is initiated, you can create an order to associate the search to by using the order creation endpoint. Note that once the order is created, new searches and relevant IDs matching the parameters of the original search are created to associate to the order.
- URL:
https://api.propertysync.com/v1/search/document-groups/{documentGroupId}/companies/{companyId}/orders
- Request Type: POST
Request Body:
{
"title": "Test Order",
"searchID": "ecbc06e2-6069-47b3-bed4-44fbed06a27b"
}
Response:
{
"id": "f3c00921-75f4-49a3-8934-082afdb6d913",
"title": "TEST ORDER",
"status": "open_no_watches",
"createdAt": "2022-10-13 10:11:46",
"updatedAt": "2022-10-13 10:11:46",
"closedAt": null,
"falloutUpdatedTo": null,
"searches": [
{
"title": "Land Search",
"id": "46b00ac2-c114-45ba-815d-f85a996a5213"
}
]
}
Listing Orders
- URL:
https://api.propertysync.com/v1/search/document-groups/{documentGroupId}/companies/{companyId}/orders
- Request Type: GET
Note: You can optionally filter the returned list or search for specific orders by using the following parameters:
- status: open_no_watches, open_with_watches, waiting_for_watches, closed
- title: search for orders with a specific title. This is a full text match.
- date: search for orders created on a specific date. Format is YYYY-MM-DD
Response:
[
{
"id": "46487337-7c5c-4eed-a858-9c14b408f320",
"title": "TEST ORDER",
"status": "open_no_watches",
"createdAt": "2022-02-04 12:51:59",
"updatedAt": "2022-10-13 01:17:35",
"closedAt": null,
"falloutUpdatedTo": "2022-10-13 01:17:35",
"searches": null
},
{
"id": "ab8a8592-cd72-4d6d-b8b1-1367ccfece01",
"title": "ANOTHER TEST ORDER",
"status": "open_no_watches",
"createdAt": "2022-02-04 12:53:12",
"updatedAt": "2022-10-13 01:17:35",
"closedAt": null,
"falloutUpdatedTo": "2022-10-13 01:17:35",
"searches": null
},
{
"id": "1133f182-935f-4aec-9982-25f86b8ef8ee",
"title": "ROB ORDER",
"status": "waiting_for_watches",
"createdAt": "2021-10-11 11:34:20",
"updatedAt": "2022-09-07 15:44:52",
"closedAt": null,
"falloutUpdatedTo": null,
"searches": null
}
]
Retrieving Order Details
Order details include all attached searches and their relevant tab groupings presented to the user. Search IDs from an order detail request can be used in all other areas of the API for actions such as batch creation or document ID listings.
- URL:
https://api.propertysync.com/v1/search/document-groups/{documentGroupId}/companies/{companyId}/orders
- Request Type: GET
Response:
{
"id": "f3c00921-75f4-49a3-8934-082afdb6d913",
"title": "TEST ORDER FOR STARTERS",
"status": "open_no_watches",
"createdAt": "2022-10-13 10:11:46",
"updatedAt": "2022-10-13 10:11:46",
"closedAt": null,
"falloutUpdatedTo": null,
"searches": [
{
"title": "Land Search",
"id": "46b00ac2-c114-45ba-815d-f85a996a5213"
}
]
}
Retrieving the chainsheet for an order
You can retrieve the chainsheet for an order by using the following endpoint. This will return a PDF of the chainsheet for the order, which can be used for printing or other purposes. The selectedSearchId listed below should be the searchID of the search you wish to retrieve, or the finalChainId which will exist within the order details payload above if it exists.
- URL:
https://api.propertysync.com/v1/search/document-groups/{documentGroupId}/companies/{companyId}/orders/{orderId}/export
- Request Type: POST
Request Body:
{
"exportFormat": "pdf",
"includeChainSheet":true,
"selectedSearchId":"398e3486-146e-4d56-a2a4-87d9ca6c81c4",
"documentSelection":"selectedTab"
}
Adding Searches To An Order
You can append additional searches to your order by using the order search addition endpoint. First, generate a new searchID using the search creation endpoint. Then, use the order search addition endpoint to add the search to the order. You can optionally pass in a title for the search to be added to the order, which will be displayed as the tab name in the PropertySync portal.
- URL:
https://api.propertysync.com/v1/search/document-groups/{documentGroupId}/companies/{companyId}/orders/{orderId}
- Request Type: PATCH
Request Body:
{
"title": "Test Search",
"searchID": "ecbc06e2-6069-47b3-bed4-44fbed06a27b"
}
Deleting Searches From An Order
You can remove searches from the system, which will also remove them from any orders they are associated with. This can be done using the following endpoint.
- URL:
https://api.propertysync.com/v1/search/document-groups/{documentGroupId}/searches/{searchId}
- Request Type: DELETE
Response:
{
"success": true,
"message": "Search deleted."
}
Closing Orders
- URL:
https://api.propertysync.com/v1/search/document-groups/{documentGroupId}/companies/{companyId}/orders/{orderId}/close
- Request Type: POST
Response:
{
"id": "23756fd6-7269-4a4a-9883-6e7ddc9629a4",
"title": "TEST ORDER",
"status": "closed",
"createdAt": "2022-03-14 16:04:14",
"updatedAt": "2022-10-13 10:26:57",
"closedAt": "2022-10-13 10:26:57",
"falloutUpdatedTo": "2022-10-13 01:17:39",
"searches": null
}
Reopening Orders
- URL:
https://api.propertysync.com/v1/search/document-groups/{documentGroupId}/companies/{companyId}/orders/{orderId}/re-open
- Request Type: POST
Response:
{
"id": "23756fd6-7269-4a4a-9883-6e7ddc9629a4",
"title": "TEST ORDER",
"status": "open_no_watches",
"createdAt": "2022-03-14 16:04:14",
"updatedAt": "2022-10-13 10:27:25",
"closedAt": null,
"falloutUpdatedTo": "2022-10-13 01:17:39",
"searches": null
}
Running Date Down On An Order
- URL:
https://api.propertysync.com/v1/search/document-groups/{documentGroupId}/companies/{companyId}/orders/{orderId}/date-down
- Request Type: POST
Response:
{
"Date down successful."
}
Editing Data
PropertySync provides robust document batching, editing and modification functionality in both the standard end-user interface as well as the API. The Indexing functionality allows deep integration to enhance workflow as well as data storage. You can enhance your data by adding new data elements from outside sources, clean existing data elements to provide more value to your researchers as well as create automated workflow for your internal or external keying teams.
Batches
Most indexing functions within the system use the concept of document batches. Document batches are simply temporary groups of documents used to help organize the documents to be processed. Typically these are used to collect documents into daily or weekly postings, but can be used for any other organizational function. Batches are segregated within the PropertySync indexing interface to simplify processing by indexing and QC staff.
Batch Creation
- URL:
https://api.propertysync.com/v1/indexing/document-groups/{documentGroupId}/batches
- Request Type: POST
Request Body:
{
"name": "some-batch-name"
}
Optionally, you can pass in the ID of a previous search and the batch will be filled with documents matching that search.
{
"name": "some-batch-name",
"searchId": "031c0133-91d1-4ec9-b2ac-2f5e434b8d8b"
}
If a batch is successfully created, the system will return the ID of that batch, that can be used for subsequent calls working with that batch.
Response:
{
"id": "7f287d41-4c03-4e39-aa93-21e4d4facb99"
}
Update Batch
You can edit an existing batch by sending a PATCH request to the following endpoint. If the batchID is valid, the system will modify the documents from the documents array, if it exists. You can use this to add new documents or change existing documents within a batch. The format sent follows the standard batch JSON format and also obeys the import rules for images by checking for an "imageUrl" tag at the document level. If an "imageUrl" is present, and that image is accessible from PropertySync, it will be imported to replace the image currently assigned to that document.
- URL: https://api.propertysync.com/v1/indexing/document-groups/{documentGroupId}/batches/{batchId}
- Request Type: PATCH
Request Body:
{
"name": "some-other-batch-name",
"documents": [
...
]
}
Get Batch Details
You can retrieve details of a single batch by requesting by batch ID
- URL: https://api.propertysync.com/v1/indexing/document-groups/{documentGroupId}/batches/{batchId}
- Request Type: GET
Response:
{
"id": "7f287d41-4c03-4e39-aa93-21e4d4facb88",
"documentGroupId": "328fd05b-ef80-469b-aaf9-c61facb41b96",
"createdAt": "2022-05-02T19:45:57.000000Z",
"updatedAt": "2022-05-02T19:45:57.000000Z",
"name": "my-first-batch",
"createdBy": "Rob Martinson",
"lastModifiedBy": "Rob Martinson",
"lastModifiedAt": "2022-05-02 19:49:42",
"numOfDocs": 199,
"numOfCompletedDocs": 15,
"recordedDate": null,
"rawFileGroupType": "9388501a-1ac4-4dd7-8a97-014747c042a6"
}
Get Batch Content
You can retrieve the content (documents) of a batch by requesting the batch with a filter.
- URL: https://api.propertysync.com/v1/indexing/document-groups/{documentGroupId}/batches/{batchId}/content
- Request Type: GET
Optional query parameters:
- filter: JSON encoded filter criteria (e.g.
filter={"instrumentType":"WARRANTY DEED"}
)
Response:
{
"id": "7f287d41-4c03-4e39-aa93-21e4d4facb88",
"name": "my-first-batch",
"documents": [
{
"id": "26dc1fa7-c23f-40b4-a0e7-69ec71f814c8",
"json": { ... }
},
{
"id": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
"json": { ... }
}
]
}
Create Batch From URL
You can create a batch by providing a URL to a batch file.
- URL: https://api.propertysync.com/v1/indexing/document-groups/{documentGroupId}/batches/from-url
- Request Type: POST
Request Body:
{
"name": "batch-from-url",
"url": "https://example.com/path/to/batch-file.json"
}
Response:
{
"id": "7f287d41-4c03-4e39-aa93-21e4d4facb99",
"documentGroupId": "328fd05b-ef80-469b-aaf9-c61facb41b96",
"name": "batch-from-url"
}
List Batches
You can retreive a list of batches and their details by using the batches endpoint as well.
- URL: https://api.propertysync.com/v1/indexing/document-groups/{documentGroupId}/batches
- Request Type: GET
Response:
[
{
"id": "7f287d41-4c03-4e39-aa93-21e4d4facb88",
"documentGroupId": "328fd05b-ef80-469b-aaf9-c61facb41b96",
"createdAt": "2022-05-02T19:45:57.000000Z",
"updatedAt": "2022-05-02T19:45:57.000000Z",
"name": "my-first-batch",
"createdBy": "Rob Martinson",
"lastModifiedBy": "Rob Martinson",
"lastModifiedAt": "2022-05-02 19:49:42",
"numOfDocs": 199,
"numOfCompletedDocs": 15,
"recordedDate": null,
"rawFileGroupType": "9388501a-1ac4-4dd7-8a97-014747c042a6"
},
{
"id": "7f287d41-4c03-4e39-aa93-21e4d4facb99",
"documentGroupId": "328fd05b-ef80-469b-aaf9-c61facb41b96",
"createdAt": "2022-05-02T19:47:57.000000Z",
"updatedAt": "2022-05-02T19:47:57.000000Z",
"name": "some-other-batch-name",
"createdBy": "Rob Martinson",
"lastModifiedBy": "Rob Martinson",
"lastModifiedAt": "2022-05-02 19:49:42",
"numOfDocs": 283,
"numOfCompletedDocs": 0,
"recordedDate": null,
"rawFileGroupType": "9388501a-1ac4-4dd7-8a97-014747c042a6"
}
]
Delete Batch
- URL: https://api.propertysync.com/v1/indexing/document-groups/{documentGroupId}/batches/{batchId}
- Request Type: DELETE
Saving Batch Documents to Search
By default, documents within a batch are stored in the indexing system and are not yet present in the live plant. To save the documents to the live plant, you must export the batch. Typically this would happen on a per-document basis while end-users are working within the PropertySync indexing system, but it can also be done in bulk using the following endpoint:
- URL:
https://api.propertysync.com/v1/indexing/document-groups/{documentGroupId}/queue-process-documents
- Request Type: GET
Request Body:
{
"exportTo": "propertySync",
"batchId": "{batchId}"
}
Object Data Structures
All object data types within the PropertySync system use a simple JSON structure that is portable, easy to read and can be simply generated and manipulated in any operating system or environment. Batch structures follow a similar format, using a JSON array of the parent object data structure as the payload. The following sections detail the structure and formats for various object types used in the PropertySync system.
ID key and JSON payload
Most structures have a root object that contains an "id" element that is unique to that particular object within the PropertySync environment, as well as a "json" element that contains the payload with all other information. When you wish to create new elements within PropertySync (documents, auto completes, land validations or other data structures), you can omit the "id" element during your first import and it will be automatically generated by PropertySync. All subsequent calls to export those data structures will contain the "id" element and you can always use that key to reference the element in question specifically. If you pass in an existing "id" key, the PropertySync system will do its best to find a matching record within the system and document group you are working in, and will update the data with relevant information instead of creating a new record. If "id" is omitted, it will assume this is a new record.
{
"id": "112ebfea-9762-43b3-8e64-2c5f834938f1",
"json": { ... }
}
Document Structure
Document formats within the PropertySync system can vary slightly depending upon the structure of the document group. The PropertySync JSON document format provides a flexible method of storage allowing for variation between different areas of the country with different legal structures, different keying history and methods, as well as specialized information stored on a per-customer basis. During conversion or import, our team will help you determine the best format to use for the existing documents within your plant, or develop a new storage structure that captures all of the relevant information you want to store within your plant.
Document structure should remain common and compatible between different areas of the PropertySync system. That is, if you retrieve document details, you should be able to pass that same structure back into the system as an edit or a new document with the batch endpoint. Likewise the document structure should be similar within a batchfile.
Although fields may differ slightly from county to county and between different document types within the "json" element, the general container structure for a document object is as follows:
{
"id": ".....",
"json": {
"tags": [
"LOCATE",
"VERIFY"
],
"grantees": [
{
"nameLast": "SMITH",
"nameType": null,
"nameFirst": "JOHN",
"nameMiddle": null
}
],
"grantors": [
{
"nameLast": "WHITE",
"nameType": null,
"nameFirst": "PAUL",
"nameMiddle": null
}
],
"filedDate": "1994-05-20",
"filedTime": null,
"uccNumber": null,
"bookNumber": "1234",
"pageNumber": "2249",
"instrumentType": "EASEMENT",
"indexingRecordId": "987654321",
"instrumentNumber": "123456789",
"consideration": 123000.00,
"comment": "Any document-specific comments",
"marketSource": "USDA",
"instrumentDate": "1994-05-18"
}
}
Document Fields
The following table outlines the expected fields in document JSON structures:
Field | Description | Format | Notes |
---|---|---|---|
indexingRecordId | Unique ID for the document | Alphanumeric | Must be unique within document group. Can be used to store id of external record identifier. |
bookType | Type of book | String | Examples: OPR, DEED |
bookNumber | Book number | String | |
pageNumber | Page number | String | |
instrumentNumber | Instrument number | String | |
filedDate | Date document was filed | YYYY-MM-DD | |
instrumentDate | Date of instrument | YYYY-MM-DD | |
instrumentType | Type of instrument | String | Should match autocompletes list |
consideration | Monetary value | Numeric | Format as 123000.00, not $123,000. Default is 0 |
marketSource | Market source identifier | String | |
comment | Document comment | String | |
tags | Status or action tags | Array of strings | Examples: "LOCATE", "NEEDS_VERIFICATION","WATERMARK" |
grantors | Array of grantor parties | Array of objects | Each object contains name information |
grantees | Array of grantee parties | Array of objects | Each object contains name information |
subdivisionLegal | Subdivision legal descriptions | Array of objects | Contains lots, blocks, etc. |
acreageLegal | Acreage legal descriptions | Array of objects | Contains section, township, range |
abstractLegal | Abstract legal descriptions | Array of objects | Used in Texas plants |
address | Property address information | Array of objects | |
related | Related document references | Array of objects | References to other documents |
imageUrl | Path to document image | String | Points to TIF or PDF document image |
Party Structure (Grantors/Grantees)
Each grantor or grantee entry should contain:
{
"nameFirst": "JOHN",
"nameMiddle": "Q",
"nameLast": "SMITH",
"nameType": null
}
For company or organization names, typically just use the nameLast
field:
{
"nameLast": "ACME CORPORATION",
"nameFirst": null,
"nameMiddle": null
}
ID and IndexingRecordId within document structures
If you are importing records from an outside system, as will often be the case during a conversion from an existing platform or if you have 3rd party keying companies using other software systems to generate your data, PropertySync provides facilities to ensure your system stays in sync.
The PropertySync system generates a unique "id" key for every element created that is unique across the entire system. You can store this record in your outside systems to ensure you are referencing an exact record within PropertySync. But, if your data was created in an external system, you won't know what that new "id" field will eventually be. In this case, you can pass in an "indexingRecordId" element to your documents and submit the ID of the record within your external system. The value you provide for the "indexingRecordId" key, must be unique within the document group. In the future, if you pass in an update to that document and you include the "indexingRecordId" and its value in your document payload, PropertySync will first search for a matching entry within that document group. If one is found, it will assume you are posting a new version of that document and will update the document with your submitted content rather than creating a new document. Note that the root "id" field from PropertySync will always take precedence if both elements are present in your payload.
It's important to provide a unique ID for each document imported to PropertySync. Some examples for creating unique IDs include:
- Alpha abbreviation for your company + identity number (e.g., ABC555666, ABC555667, etc.)
- Hash value
Document Legal Structures
Documents may contain different legal structure data depending on the geographic location and plant configuration. The main types of legal structures include:
Subdivision Legal
Used for platted subdivisions with lots and blocks. Each legal with a lot, block, or unit value should include the minimum and maximum value of each range. For example:
Lots 1-5 / Block 1 / ANDERSON SUB Lots 7, 10-12 / Block 2 / ANDERSON SUB
"subdivisionLegal": [
{
"addition": "ANDERSON SUB",
"comment": "W0.85' LT 95",
"lot": [
{
"rangeMax": "5",
"rangeMin": "1"
}
],
"block": [
{
"rangeMax": "1",
"rangeMin": "1"
}
],
"unit": []
}
]
For ALL lots or blocks, use "ALL" as the range value. If you are posting to ALL lots in a block, or all lots and blocks in a subdivision, post the minRange and maxRange values to “ALL”. If no lot, block, or unit exists in the legal, leave the array empty for that key. This should be intentional and determined by the clients land validations (if available).
ALL Lots in block 2 of ANDERSON SUB:
"subdivisionLegal": [
{
"addition": "ANDERSON SUB",
"comment": null,
"lot": [
{
"rangeMax": "ALL",
"rangeMin": "ALL"
}
],
"block": [
{
"rangeMax": "2",
"rangeMin": "2"
}
]
}
]
All Lots and All Blocks in ANDERSON SUB (for a plat or cc&r posting)
"subdivisionLegal": [
{
"addition": "ANDERSON SUB",
"comment": null,
"lot": [
{
"rangeMax": "ALL",
"rangeMin": "ALL"
}
],
"block": [
{
"rangeMax": "ALL",
"rangeMin": "ALL"
}
]
}
]
Lot 1 in ANDERSON SUB (no block)
"subdivisionLegal": [
{
"addition": "ANDERSON SUB",
"comment": null,
"lot": [
{
"rangeMax": "1",
"rangeMin": "1"
}
],
"block": []
}
]
Unit 14A in SUNSHINE CONDOS (no lots or blocks)
"subdivisionLegal": [
{
"addition": "ANDERSON SUB",
"comment": null,
"lot": [],
"block": [],
"unit": [
{
"rangeMax": "14A",
"rangeMin": "14A"
}
]
}
]
Acreage Legal (Section/Township/Range)
Used for describing section, township, and range data
"acreageLegal": [
{
"quarters": "ALL;",
"range": "1E",
"section": "34",
"township": "5S"
}
]
For quarters, key them in order from smallest to largest:
- Example: NW of the SE of the SW would be keyed as: "NWSESW"
- Multiple quarter calls separated by semicolon: "SW; SWNW"
- HALF quarters can be keyed with a "2" (e.g., "N2SW" for North half of the SW)
- "ALL" can be used to indicate an entire section
"acreageLegal": [
{
"comment": "TGW ESMT",
"quarters": "NWNE; N2NESE",
"range": "1W",
"section": "35",
"township": "2S"
},
{
"comment": "TGW ESMT",
"quarters": "W2NW; N2NESW; N2NWSW;",
"range": "1W",
"section": "36",
"township": "2S"
}
]
Abstract Legal (Texas)
Used primarily in Texas for abstract/survey descriptions
Texas legals can vary depending on the plant setup, geographic location, etc. Please consult with PropertySync for guidelines on your particular abstract legal schema.
- One abstract legal should be delivered for each survey/abstract. Multiple abstracts for a survey are not allowed.
- Acres should be delivered as an array. The rangePrecision value must always be included. The values should be delivered as follows:
- 0 = Default value
- 3 =
- Do not deliver acres with trailing zeros. For example, please deliver 5.12 rather than 5.12000
"abstractLegal": [
{
"survey": "JOHN JONES SURVEY",
"abstractNumber": "123",
"acres": [
{
"rangeMin": "5.12",
"rangeMax": "5.12",
"rangePrecision": "3"
}
],
"comment": "TRACT 2"
}
]
Address Data
"address": [
{
"address1": "123 Main St",
"address2": "Suite 100",
"city": "Anytown",
"state": "TX",
"zipCode": "12345"
}
]
Related Documents
You can link documents to other related documents:
"related": [
{
"instrumentNumber": "1994067131",
"bookType": "OPR",
"bookNumber": "7505",
"pageNumber": "166"
}
]
Image Paths
When creating a new document in a batch, documents may also contain an image path in the "imageUrl" element as shown below. When an imageUrl is received, the PropertySync system will retrieve a copy of that image and associate it with the document index.
{
"id": "....",
"imageUrl": "https://www.somesite.com/somefolder/0001.tif",
"json": { ... }
}
Images should be delivered as multipage TIFs or PDFs. The imageUrl can be provided using one of two methods:
- A publicly accessible web address on your system, such as:
https://example.com/testcounty/01052024/111222.tif
- S3 path provided by PropertySync, such as:
s3://property-sync-sftp/clientid/batch/01052024/111222.tif
- PropertySync provides SFTP access for all user accounts on the system which will allow you to upload images directly to the system for batch processing. Please reach out to support@propertysync.com for more information.
- Note: All images must be uploaded and accessible before the batch is submitted for processing.
Document Batch Structure
Batches are made up of a batch file with an array of documents in the document element.
{
"name": "Some test batch",
"effectiveDate": "2024-08-01",
"documents": [
{
"imageUrl": "s3://batches/samplecounty/202408080100/images/D1411873.tif",
"json": {
"tags": [
"LOCATE",
"VERIFY"
],
"grantees": [
{
"nameLast": "SITH",
"nameType": null,
"nameFirst": "JOHN",
"nameMiddle": null
}
],
"grantors": [
{
"nameLast": "WHITE",
"nameType": null,
"nameFirst": "PAUL",
"nameMiddle": null
}
],
"filedDate": "1994-05-20",
"filedTime": null,
"uccNumber": null,
"bookNumber": "1234",
"pageNumber": "2249",
"instrumentType": "EASEMENT",
"indexingRecordId": "987654321",
"instrumentNumber": "123456789"
}
}
]
}
Each batch JSON should contain:
name
: Name of the batch (can be date, recording date, etc.)effectiveDate
: (Optional) This will set the plant date if a batch JSON is posted directly to the plantdocuments
: Array containing all documents in the batch
In addition to the "imageUrl" available in the main document structure, you may pass in an "imageRoot" at the batch level, which will be prepended to all "imageUrl" elements for documents within that batch. This allows simple batch editing of different source locations for images.
{
"name": "Some test batch",
"imageRoot": "https://www.somesite.com/somefolder/my-image-root/",
"documents": [
{
"imageUrl": "0001.tif",
"json": { ... }
},
{
"imageUrl": "subfolder/0002.tif",
"json": { ... }
}
]
}
Using the example above, the system would assume images would be available at the following URLs:
- https://www.somesite.com/somefolder/my-image-root/0001.tif
- https://www.somesite.com/somefolder/my-image-root/subfolder/0002.tif
Tags in Documents
Tags can be used to communicate a status or action for a document. They are searchable in PropertySync. Some common examples include:
- LOCATE
- NEEDS_VERIFICATION
- VALIDATION_FAILURE
Tags should be delivered in an array format:
"tags": ["LOCATE", "NEEDS_VERIFICATION"]
Auto Complete Structure
Auto completes are the PropertySync elements used to describe multi-select key/value pairs or "quick picks". Auto completes are stored as a type and value within the PropertySync system as shown below and include types such as: addition, instrumentType, tags, marketSource, abstract and others. Auto completes can be managed within the PropertySync user interface, or via the API using structures outlined below.
{
"type": "addition",
"value": "MY SUBDIVISION NAME"
}
Auto Complete Batch Structure
To work with files of multiple auto completes, you can use structures following our other batch formats as follows:
{
"autocompletes": [
{
"type": "addition",
"value": "MY SUBDIVISION NAME"
},
{
"type": "addition",
"value": "MY SUBDIVISION NAME"
},
{
"type": "addition",
"value": "MY 3RD SUBDIVISION NAME"
}
]
}
Land Validation Structure
{
"id": "112ebfea-9762-43b3-8e64-2c5f834938f1",
"json": {
"addition": "HIGHLAND TRAILS JASON DEMO",
"platValidation": [
{
"abstractName": null,
"abstractNumber": null,
"block": [
{
"rangeAction": null,
"rangeMax": "1",
"rangeMin": "1",
"rangePrecision": null
}
],
"bookNumber": null,
"bookType": null,
"comment": null,
"landFlags": null,
"landType": null,
"lot": [
{
"rangeAction": null,
"rangeMax": "5",
"rangeMin": "1",
"rangePrecision": null
}
],
"pageNumber": null,
"parcel": null,
"pid": null,
"previousArb": null,
"previousParcel": null,
"range": null,
"recDate": null,
"status": null,
"subdivision": null,
"township": null,
"vacateDate": null
},
{
"abstractName": null,
"abstractNumber": null,
"block": [
{
"rangeAction": null,
"rangeMax": "2",
"rangeMin": "2",
"rangePrecision": null
}
],
"bookNumber": null,
"bookType": null,
"comment": null,
"landFlags": null,
"landType": null,
"lot": [
{
"rangeAction": null,
"rangeMax": "8",
"rangeMin": "1",
"rangePrecision": null
}
],
"pageNumber": null,
"parcel": null,
"pid": null,
"previousArb": null,
"previousParcel": null,
"range": null,
"recDate": null,
"status": null,
"subdivision": null,
"township": null,
"vacateDate": null
}
]
},
"type": {
"id": "f2026e30-fb26-408f-a4e6-6405b2643b7e",
"name": "subdivisionLegal"
}
}
Land Validation Batch Structure
Land validations can be grouped together for ease of import and export into a batch, similar to other records. The format and structure follows a similar outline as document batches and auto complete batches where the structure has a "landvalidations" element, which contains a JSON array of objects matching the structure of a land validation
{
"landvalidations": [
{
"id": "112ebfea-9762-43b3-8e64-2c5f834938f1",
"json": {
"addition": "HIGHLAND TRAILS JASON DEMO",
"platValidation": [
{ ... },
{ ... }
]
},
"type": {
"id": "f2026e30-fb26-408f-a4e6-6405b2643b7e",
"name": "subdivisionLegal"
}
},
{
"id": "112ebfea-9762-43b3-8e64-2c5f834938f2",
"json": {
"addition": "HIGHLAND TRAILS JASON DEMO 2",
"platValidation": [
{ ... },
{ ... }
]
},
"type": {
"id": "f2026e30-fb26-408f-a4e6-6405b2643b7e",
"name": "subdivisionLegal"
}
}
]
}