Lookups | Geo data | Files
Properties
Supported methods
- get paginated list of properties
- get property detail
- create property
- update property
- cancel property
- transfer property to another associate
* All listings are provided as example.They might not contain the entire list of fields. For the complete list of fields, please consult the corresponding data dictionary.
Get properties list
This method returns the paginated list of properties.
Using the default options, the method returns only public available properties. See optional parameters below.
You cannot get the entire list of properties in one call. You have to make multiple calls, in pages, until you get the entire list.
Call
GET integrator/{integrator id}/properties?page={page number}&take={page size}
All parameters can be used in the same time. Their effect is cummulative.
Required parameters:
- page
- Represents the page number you want to retrieve from the available list of records. The minimum value is 1. The maximum value can be found out from the Response from TotalPageCount element.
- take
- Represents the page size. How many records a page should contain. The minimum value is 1, the maximum value is 100.
Optional parameters:
- all
- If this optional parameter is ommitted or all=false, then only public available properties are retrieved. If all=true, then all resource records are retrieved.
- startDate
- If this optional parameter is used, then only records that were modified from this date (inclusive) will be returned. Use English date format. Recommended format: yyyy-MM-ddThh:mm:ss
- endDate
- If this optional parameter is used, then only records that were modified until this date (inclusive) will be returned. Recommended format: yyyy-MM-ddThh:mm:ss
- officeID
- Get only properties that belong to this Office ID (this is the GryphTech office ID)
- associateID
- Get only properties that belong to this Associate ID (this is Gryphtech Associate ID)
Request
GET http://rexapi.gryphtech.com/api/v1/integrator/1005001/properties?page=1&take=100 HTTP/1.1 Authorization: OAUTH oauth_token="pfl4PLrrHKChIRoDS2O9Wfoyr1yjKgbEjCxk+", api_key="10D35802-C92A-42B3-88FC-A4489A3CD619" Accept: application/xml; charset=utf-8
Response XML
HTTP/1.1 200 OK Content-Type: application/xml; charset=utf-8 <RexApiList> <HasNextPage>true</HasNextPage> <HasPreviousPage>false</HasPreviousPage> <PageIndex>1</PageIndex> <PageSize>100</PageSize> <TotalCount>6775</TotalCount> <TotalPageCount>68</TotalPageCount> <Items> <Property> <AlternateExternalID>0</AlternateExternalID> <AlternateURL>www.properties.com/mls/0-PV14150223</AlternateURL> <AssociateExternalID>217202</AssociateExternalID> <YouTube>https://www.youtube.com/watch?v=aBph-lQEmMw&feature=youtu.be</YouTube> .....
</Property>
.....
</Items>
</RexApiList>
Response JSON
HTTP/1.1 200 OK Content-Type: application/json; charset=utf-8 { "PageIndex": 1, "PageSize": 100, "TotalCount": 6775, "TotalPageCount": 68, "HasNextPage": true, "HasPreviousPage": false, "Items": [ { "IntegratorID": 1005001, "ID": "100534", "ExternalID": "PV14150223_CKW", .....
},
.....
]
}
Http Status Codes Responses & Messages
Status | Message | Description |
---|---|---|
200 - OK | You get the list of objects | Call was successful |
404 - Bad request | <Error> <Message>The request is invalid.</Message> <ModelState> ..... </ModelState> </Error> |
You used the wrong parameter values. <ModelState> element will provide you the necessary details. Please correct the issues and try again. |
Get property
This method returns the details of requested property.
GET integrator/{integrator id}/properties/{resource id}
Required parameters:
- resource id
- Gryphtech Property ID or your own ExternalID can be used. To use
ExternalID , prefix your id with "ext-", like this: ext-ExternalID
{ExternalID} can contain only numbers, non accented letters and characters "_", "-"
Example of call using Gryphtech ID: integrator/1005001/properties/1005344006-14
Example of call using your own ExternalID: integrator/1005001/properties/ext-abc_456
Request
GET http://rexapi.gryphtech.com/api/v1/integrator/1005001/properties/1005344006-14 HTTP/1.1 Authorization: OAUTH oauth_token="pfl4PLrrHKChIRoDS2O9Wfoyr1yjKgbEjCxk+", api_key="10D35802-C92A-42B3-88FC-A4489A3CD619" Accept: application/xml; charset=utf-8
Response XML
HTTP/1.1 200 OK Content-Type: application/xml; charset=utf-8 <Property xmlns=""> <AlternateExternalID>0</AlternateExternalID> <AlternateURL>www.properties.com/mls/0-PV14150223</AlternateURL> <AssociateExternalID>217202</AssociateExternalID> <AssociateID>1005344006</AssociateID> <CommercialResidential>2</CommercialResidential> <ContractType>29</ContractType> <CreatedDate>2014-10-04T09:44:00</CreatedDate> <CurrentListingCurrency>USD</CurrentListingCurrency> <CurrentListingPrice>245000.0000</CurrentListingPrice> <Disabled>false</Disabled> <ExternaID>PV14150223_CKW</ExternaID> <Features>63</Features> <GeoCoordinates> <Latitude>33.819666000000</Latitude> <Longitude>-118.315253000000</Longitude> </GeoCoordinates> <GeoData> <CityID>4198103</CityID> </GeoData> <HidePricePublic>false</HidePricePublic> <ID>1005344006-14</ID> <IntegratorID>1005001</IntegratorID> <ListingID>14</ListingID> <ListingStatus>160</ListingStatus> <LivingArea>1</LivingArea> <LotSize>0.7590 acres</LotSize> <ModifiedDate>2014-11-27T08:22:00</ModifiedDate> <NumberOfBathrooms>1</NumberOfBathrooms> <NumberOfBedrooms>1</NumberOfBedrooms> <OfficeExternalID>6242</OfficeExternalID> <OfficeID>1005344</OfficeID> <OrigListingDate>2014-10-04T09:43:45</OrigListingDate> <PostalCode>90501</PostalCode> <PropertyStatus>188</PropertyStatus> <PropertyType>194</PropertyType> <RegionID>1005</RegionID> <ShowAddressOnWeb>true</ShowAddressOnWeb> <SoldDate>0001-01-01</SoldDate> <StreetName>2742 Cabrillo Avenue Unit 214</StreetName> <TransactionType>261</TransactionType> <YouTube>https://www.youtube.com/watch?v=aBph-lQEmMw&feature=youtu.be</YouTube> </Property>
Response JSON
HTTP/1.1 200 OK Content-Type: application/json; charset=utf-8 { "IntegratorID": 1005001, "ID": "1005344006-14", "ExternaID": "PV14150223_CKW", "CreatedDate": "2014-10-04T09:44:00", "ModifiedDate": "2014-11-27T08:22:00", "AlternateExternalID": "0", "OfficeID": 1005344, "OfficeExternalID": "6242", "AssociateID": 1005344006, "AssociateExternalID": "217202", "ListingID": 14, "RegionID": 1005, "Disabled": false, "CommercialResidential": 2, "StreetName": "2742 Cabrillo Avenue Unit 214", "PostalCode": "90501", "GeoData": { "CityID": 4198103 }, "GeoCoordinates": { "Latitude": 33.819666, "Longitude": -118.315253 }, "CurrentListingPrice": 245000, "CurrentListingCurrency": "USD", "HidePricePublic": false, "ShowAddressOnWeb": true, "SoldDate": "0001-01-01", "TransactionType": 261, "ContractType": 29, "PropertyStatus": 188, "PropertyType": 194, "ListingStatus": 160, "LivingArea": 1, "LotSize": "0.7590 acres", "NumberOfBathrooms": 1, "NumberOfBedrooms": 1, "OrigListingDate": "2014-10-04T09:43:45", "AlternateURL": "www.properties.com/mls/0-PV14150223", "YouTube": "https://www.youtube.com/watch?v=aBph-lQEmMw&feature=youtu.be", "Features": "63" }
Http Status Codes Responses & Messages
Status | Message | Description |
---|---|---|
200 - OK | You get the resource object | Call was successful |
404 - Not Found | Resource was not found for the specified ID |
Create property
This method allows you to create a new property.
Following values from your object model are ignored:
- ID:
- You cannot pass an ID. This value is system generated.
- CreatedDate and ModifiedDate:
- These dates are system generated
- IntegratorID and RegionID:
- They are preset for your account.
- OfficeID and OfficeExternalID
- AssociateExternalID will provide the information about office. A property belongs to an Associate that belong to an Office.
- ListingID
- This is system generated ID.
- Terminated
- This field is not available in all cases. You will be informed if you can use this field.
Call
POST integrator/{integrator id}/properties
Request XML
In XML, elements order is important. The order is alphabetical.
POST http://rexapi.gryphtech.com/api/v1/integrator/1005001/properties HTTP/1.1 Accept: application/xml; charset=utf-8 Content-Type: application/xml; charset=utf-8 Authorization: OAUTH oauth_token="pfl4PLrrHKChIRoDS2O9Wfoyr1yjKgbEjCxk", api_key="10D35802-C92A-42B3-88FC-A4489A3CD619" <Property xmlns=""> <AlternateExternalID>0</AlternateExternalID> <AlternateURL>www.properties.com/mls/0-PV14150223</AlternateURL> <AssociateExternalID>217202</AssociateExternalID> <AssociateID>1005344006</AssociateID> <CommercialResidential>2</CommercialResidential> <ContractType>29</ContractType> <CreatedDate>2014-10-04T09:44:00</CreatedDate> <CurrentListingCurrency>USD</CurrentListingCurrency> <CurrentListingPrice>245000.0000</CurrentListingPrice> <Disabled>false</Disabled> <ExternaID>PV14150223_CKW</ExternaID> <Features>63</Features> <GeoCoordinates> <Latitude>33.819666000000</Latitude> <Longitude>-118.315253000000</Longitude> </GeoCoordinates> <GeoData> <CityID>4198103</CityID> </GeoData> <HidePricePublic>false</HidePricePublic> <ID>1005344006-14</ID> <IntegratorID>1005001</IntegratorID> <ListingID>14</ListingID> <ListingStatus>160</ListingStatus> <LivingArea>1</LivingArea> <LotSize>0.7590 acres</LotSize> <ModifiedDate>2014-11-27T08:22:00</ModifiedDate> <NumberOfBathrooms>1</NumberOfBathrooms> <NumberOfBedrooms>1</NumberOfBedrooms> <OfficeExternalID>6242</OfficeExternalID> <OfficeID>1005344</OfficeID> <OrigListingDate>2014-10-04T09:43:45</OrigListingDate> <PostalCode>90501</PostalCode> <PropertyStatus>188</PropertyStatus> <PropertyType>194</PropertyType> <RegionID>1005</RegionID> <ShowAddressOnWeb>true</ShowAddressOnWeb> <SoldDate>0001-01-01</SoldDate> <StreetName>2742 Cabrillo Avenue Unit 214</StreetName> <TransactionType>261</TransactionType> <YouTube>https://www.youtube.com/watch?v=aBph-lQEmMw&feature=youtu.be</YouTube> </Property>
Response XML
HTTP/1.1 201 Created Content-Type: application/xml; charset=utf-8 Location: http://rexapi.gryphtech.com/api/v1/integrator/1005001/properties/1005344006-14 ... created Property object with new ID ...
Request JSON
In JSON, element order does not matter. In our example they are ordered alphabetically just for comparation with the XML response.
POST http://rexapi.gryphtech.com/api/v1/integrator/1005001/properties HTTP/1.1 Accept: application/json; charset=utf-8 Content-Type: application/json; charset=utf-8 Authorization: OAUTH oauth_token="pfl4PLrrHKChIRoDS2O9Wfoyr1yjKgbEjCxk", api_key="10D35802-C92A-42B3-88FC-A4489A3CD619" { "IntegratorID": 1005001, "ID": "1005344006-14", "ExternaID": "PV14150223_CKW", "CreatedDate": "2014-10-04T09:44:00", "ModifiedDate": "2014-11-27T08:22:00", "AlternateExternalID": "0", "OfficeID": 1005344, "OfficeExternalID": "6242", "AssociateID": 1005344006, "AssociateExternalID": "217202", "ListingID": 14, "RegionID": 1005, "Disabled": false, "CommercialResidential": 2, "StreetName": "2742 Cabrillo Avenue Unit 214", "PostalCode": "90501", "GeoData": { "CityID": 4198103 }, "GeoCoordinates": { "Latitude": 33.819666, "Longitude": -118.315253 }, "CurrentListingPrice": 245000, "CurrentListingCurrency": "USD", "HidePricePublic": false, "ShowAddressOnWeb": true, "SoldDate": "0001-01-01", "TransactionType": 261, "ContractType": 29, "PropertyStatus": 188, "PropertyType": 194, "ListingStatus": 160, "LivingArea": 1, "LotSize": "0.7590 acres", "NumberOfBathrooms": 1, "NumberOfBedrooms": 1, "OrigListingDate": "2014-10-04T09:43:45", "AlternateURL": "www.properties.com/mls/0-PV14150223", "YouTube": "https://www.youtube.com/watch?v=aBph-lQEmMw&feature=youtu.be", "Features": "63" }
Response JSON
HTTP/1.1 201 Created Content-Type: application/json; charset=utf-8 Location: http://rexapi.gryphtech.com/api/v1/integrator/1005001/properties/1005344006-14 ... created Property object with new ID ...
Http Status Codes Responses & Messages
Status | Message | Description |
---|---|---|
201 - Created | You get the created resource object | Call was successful |
400 - Bad request | <Error> <Message> New resource validation failure. Resource was not created. </Message> <MessageDetail> ..... </MessageDetail> </Error> |
<MessageDetail> element will contain the reasons why validation failed. Correct the issues and try again. |
400 - Bad request | <Error> <Message>The request is invalid.</Message> <ModelState> <requestModel>.....</requestModel> </ModelState> </Error> |
The object you tried to upload does not match the expected object definition. <ModelState> element will explain where your object do not match the expected model. Please correct the raised issues and try again. |
409 - Conflict | <Error> <Message> A resource with ExternalID {0} already exists! Resource was not created. </Message> </Error> |
Every property has to have an unique ExternalID. You cannot have 2 properties with the same ExternalID. |
409 - Conflict | <Error> <Message> Resource was not created. Please contact Gryphtech support </Message> </Error> |
Please contact Gryphtech support |
Update propert
This method allows you to update an existing resource.
This can be a full or a partial update. Partial update means that you do not have to provide the entire object, just the object properties that changed. Both PUT and PATCH methods are equivalent, no matter you choose full or partial update.
Following values from your object model are ignored:
- ID and ExternalID
- You cannot update these values. The resource to be updated is identified by the {resource id} URL parameter
- CreatedDate and ModifiedDate:
- These dates are system generated
- IntegratorID and RegionID:
- They are preset for your account.
- OfficeID and OfficeExternalID
- You cannot update these values
- AssociateID and AssociateExternalID
- You cannot update these values. If the property belongs now to another associate and the property ExternalID is the same, then you should use TransferToAssociate method (see below).
- ListingID
- This is system generated ID.
- Terminated
- This field is not available in all cases. You will be informed if you can use this field.
Call
Full update
PUT integrator/{integrator id}/properties/{resource id}
Partial update
PATCH integrator/{integrator id}/properties/{resource id}
Required parameters:
- resource id
- See Get Property method for parameter description
Request XML
This is an example for a partial update. For a full update, the entire object must be present.
PUT http://rexapi.gryphtech.com/api/v1/integrator/1005001/properties/1005344006-14 HTTP/1.1 Accept: application/xml; charset=utf-8 Content-Type: application/xml; charset=utf-8 Authorization: OAUTH oauth_token="pfl4PLrrHKChIRoDS2O9Wfoyr1yjKgbEjCxk", api_key="10D35802-C92A-42B3-88FC-A4489A3CD619" <Office xmlns=""> <CurrentListingPrice>3400.00</CurrentListingPrice> </Office>
Request JSON
This is an example for a partial update. For a full update, the entire object must be present.
PUT http://rexapi.gryphtech.com/api/v1/integrator/1005001/properties/1005344006-14 HTTP/1.1 Accept: application/json; charset=utf-8 Content-Type: application/json; charset=utf-8 Authorization: OAUTH oauth_token="pfl4PLrrHKChIRoDS2O9Wfoyr1yjKgbEjCxk", api_key="10D35802-C92A-42B3-88FC-A4489A3CD619" { "CurrentListingPrice": 3400.00 }
Response
If the update was successful you will get the resource object back with the updated values. See Get Property method for XML and JSON responses.
Http Status Codes Responses & Messages
Status | Message | Description |
---|---|---|
200 - OK | You get the updated resource object | Call was successful |
404 - Not Found | <Error> <Message> Requested resource cannot be found. Requested operation was not performed </Message> <MessageDetail> Please make sure that a resource with the requested ID actually exist before making the call </MessageDetail> </Error> |
Resource was not found for the specified resource ID |
400 - Bad Request | <Error> <Message> New resource validation failure. Resource was not created. </Message> <MessageDetail> ..... </MessageDetail> </Error> |
<MessageDetail> element will contain the reasons why validation failed. Correct the raised issues and try again. |
400 - Bad Request | <Error> <Message>The request is invalid.</Message> <ModelState> <requestModel>.....</requestModel> </ModelState> </Error> |
The object you tried to upload does not match the expected object definition. <ModelState> element will explain where your object do not match the expected model. Please correct the raised issues and try again. |
Cancel property
This method cancel the property by setting the Listing Status of the property to Cancelled. The same result can be achieved using property update method.
Please note that as a result of cancelling, the property will no longer be visible on the public website.
Call
PUT integrator/{integrator id}/properties/{resource id}/cancel
Required parameters:
- resource id
- See Get Property method for parameter description
Request
PUT http://rexapi.gryphtech.com/api/v1/integrator/1005001/offices/12345/cancel HTTP/1.1 Authorization: OAUTH oauth_token="pfl4PLrrHKChIRoDS2O9Wfoyr1yjKgbEjCxk", api_key="10D35802-C92A-42B3-88FC-A4489A3CD619"
Response
If the operation was successful you will get the object back with the updated values. See Get Property method for XML and JSON responses.
Http Status Codes Responses & Messages
Status | Message | Description |
---|---|---|
200 - OK | Call was successful | |
404 - Not Found | <Error> <Message> Requested resource cannot be found. Requested operation was not performed </Message> </Error> |
Resource was not found for the specified ID. As a result, the requested operation could not be performed. |
Transfer property to another associate
This method will transfer the property from the current associate to another one. This method is to be used if the Property maintained in your system its ExternalID while it was transferred to another associate. As a result of this call, all the Property associated information to the new associate. The Property will get a new ID from our system but its ExternalID will remain the same.
The receiving associate mult already exist in our database when you make this call.
Call
PUT integrator/{integrator id}/properties/{resource id}/TransferToAssociate/{associatePATCH integrator/{integrator id}/properties/{resource id}/TransferToAssociate/{associate id}
Required parameters:
- resource id
- This is the ID or ExternalID of the property to be transferred. See Get Property method for parameter description
- associate id
- This is the ID or ExternalID of the associate receiving the property.
Note: Please use same type of ID for both Property and Associate. For instance, if you used ExternalID for Associate, use ExternalID for Property too.
Request
PUT http://rexapi.gryphtech.com/api/v1/integrator/1005001/properties/12345/TransferToAssociate/55566 HTTP/1.1 HTTP/1.1 Authorization: OAUTH oauth_token="pfl4PLrrHKChIRoDS2O9Wfoyr1yjKgbEjCxk", api_key="10D35802-C92A-42B3-88FC-A4489A3CD619"
Response
If the tranfer was successful you will get the transfered object back with the updated values. See Get Property method for XML and JSON responses.
Http Status Codes Responses & Messages
Status | Message | Description |
---|---|---|
200 - OK | Call was successful | |
404 - Not Found | <Error> <Message> Requested property cannot be found. Requested operation was not performed </Message> <MessageDetail> Please make sure that a resource with the requested ID actually exist before making the call </MessageDetail> </Error> |
Resource was not found for the specified ID. As a result, the requested operation could not be performed. |
<Error> <Message> No Associate with with the specified ID can be found to receive the transfer </Message> </Error> |
||
400 - Bad Request | <Error> <Message> Please use resource ID or ExternalID for both property and associate. Do not mix Property ID with Associate ExternalID and the other way around. </Message> </Error> |
|
<Error> <Message> Requested property is marked as terminated. Requested operation was not performed </Message> <MessageDetail> Please contact Gryphtech Support </MessageDetail> </Error> |
Please contact Gryphtech Support | |
<Error> <Message> Associate receiving the transfer is terminated. Please activate first the associate, then request the transfer </Message> </Error> |
||
<Error> <Message> Associate receiving the transfer must be different than the current listing associate </Message> </Error> |
The property tranfer must be done to an associate that is not the current associate owning the property. |