### Retrieve Media Resources via HTTP GET Source: https://docs.anyprop.com/ Demonstrates how to perform a GET request to the Media endpoint using standard HTTP syntax. Requires a valid Bearer token in the Authorization header. ```HTTP GET /v1/listings/data/Media HTTP/1.1 Host: api.anyprop.com Authorization: Bearer YOUR_SECRET_TOKEN Accept: */* ``` -------------------------------- ### Filter Open House Data with OData Query Parameters Source: https://docs.anyprop.com/ This example demonstrates how to filter Open House data using OData query parameters. It showcases the use of $filter with comparison and logical operators, as well as string functions like 'contains' and 'startswith'. The example also includes a date comparison. ```HTTP # Multiple conditions GET https://api.anyprop.com/v1/listings/data/OpenHouse?$filter=PropertyType eq 'Residential' and StandardStatus eq 'Active' # String function with logical operator GET https://api.anyprop.com/v1/listings/data/OpenHouse?$filter=startswith(OfficeMlsId, 'P') or contains(OfficeName, 'Real') # Date comparison GET https://api.anyprop.com/v1/listings/data/OpenHouse?$filter=ModificationTimestamp gt '2023-01-01T00:00:00Z' ``` -------------------------------- ### Retrieve Property Listings via HTTP GET Source: https://docs.anyprop.com/ Demonstrates how to authenticate and request property listing data from the AnyProp API using a standard HTTP GET request. ```HTTP GET /v1/listings/data/Property HTTP/1.1 Host: api.anyprop.com Authorization: Bearer YOUR_SECRET_TOKEN Accept: */* ``` -------------------------------- ### Retrieve Office Data via HTTP GET Source: https://docs.anyprop.com/ This snippet demonstrates how to fetch office data using an HTTP GET request to the /v1/listings/data/Office endpoint. It requires an Authorization header with a Bearer token. The response includes metadata like @odata.count, @odata.totalCount, and @odata.nextLink, along with the 'value' array containing office details. ```cURL GET /v1/listings/data/Office HTTP/1.1 Host: api.anyprop.com Authorization: Bearer YOUR_SECRET_TOKEN Accept: */* ``` ```JavaScript fetch('https://api.anyprop.com/v1/listings/data/Office', { method: 'GET', headers: { 'Authorization': 'Bearer YOUR_SECRET_TOKEN', 'Accept': '*/*' } }) .then(response => response.json()) .then(data => console.log(data)) .catch(error => console.error('Error:', error)); ``` ```Python import requests url = "https://api.anyprop.com/v1/listings/data/Office" headers = { "Authorization": "Bearer YOUR_SECRET_TOKEN", "Accept": "*/*" } response = requests.get(url, headers=headers) print(response.json()) ``` -------------------------------- ### GET /v1/account/resources Source: https://docs.anyprop.com/ Retrieves the account resources, permissions, and available MLS systems associated with the authenticated user. ```APIDOC ## GET /v1/account/resources ### Description Retrieve resources, permissions, and a list of available MLS systems for the authenticated account. ### Method GET ### Endpoint https://api.anyprop.com/v1/account/resources ### Parameters #### Headers - **Authorization** (string) - Required - Bearer ### Request Example GET /v1/account/resources HTTP/1.1 Host: api.anyprop.com Authorization: Bearer ### Response #### Success Response (200) - **resources** (object) - Contains a list of accessible MLS systems #### Response Example { "resources": { "listings": [ { "originating_system_name": "agsmls", "originating_system_full_name": "aspen glenwood mls" } ] } } ``` -------------------------------- ### Group Open House Data by Fields using $apply=groupby() Source: https://docs.anyprop.com/ This example shows how to group Open House data using the $apply=groupby() OData system query option. It demonstrates the basic syntax for grouping by one or more fields. Note that all grouping is case-insensitive for string fields. ```HTTP # Group by a single field GET https://api.anyprop.com/v1/listings/data/OpenHouse?$apply=groupby((OriginatingSystemName)) # Group by multiple fields GET https://api.anyprop.com/v1/listings/data/OpenHouse?$apply=groupby((OriginatingSystemName, OpenHouseType)) ``` -------------------------------- ### Retrieve Account Resources Source: https://docs.anyprop.com/ Fetch account-specific resources and permissions using a GET request. Requires a valid Bearer token in the Authorization header. ```HTTP GET /v1/account/resources HTTP/1.1 Host: api.anyprop.com Accept: */* ``` -------------------------------- ### GET /Properties Source: https://docs.anyprop.com/ Search for property listings using OData-style filters and sorting parameters. ```APIDOC ## GET /Properties ### Description Retrieve property listings based on specific search terms or internal fields. Supports keyword searching and relevance-based sorting. ### Method GET ### Endpoint /Properties ### Parameters #### Query Parameters - **$filter** (string) - Optional - OData filter expression. Use `search.text(Field, 'query')` for keyword searches. - **$orderby** (string) - Optional - Sorting criteria. Use `relevance desc` for BM25 best match sorting. ### Request Example GET /Properties?$filter=search.text(KeywordSearchText,'waterfront dock boat',1)&$orderby=relevance desc ### Response #### Success Response (200) - **data** (array) - List of property objects containing standard RESO fields and internal 'anyprop' fields. #### Response Example { "value": [ { "anyprop_Address": "100 Gold St, San Francisco, CA", "anyprop_Latitude": 37.79, "anyprop_Longitude": -122.40, "anyprop_City": "San Francisco" } ] } ``` -------------------------------- ### Querying Phone Numbers (Raw and Normalized) Source: https://docs.anyprop.com/ This example illustrates querying phone numbers for the Member resource in the Anyprop API. It shows how to use the 'anyprop_MemberPhone' field, which searches across multiple phone number fields. The query demonstrates filtering by both raw and normalized (all numeric) phone number formats. ```url https://api.anyprop.com/v1/listings/data/Member?$filter=anyprop_MemberPhone eq '(123) 456-7890' or anyprop_MemberPhone eq '1234567890' ``` -------------------------------- ### GET /v1/listings/data/Office Source: https://docs.anyprop.com/ Retrieves a list of real estate offices. Supports pagination and filtering. ```APIDOC ## GET /v1/listings/data/Office ### Description Retrieves a list of real estate offices. Supports pagination and filtering. ### Method GET ### Endpoint /v1/listings/data/Office ### Query Parameters - **@odata.count** (integer) - Optional - Number of results in current response - **@odata.totalCount** (integer) - Optional - Total number of available results - **@odata.nextLink** (string) - Optional - URL for next page of results ### Request Example ``` GET /v1/listings/data/Office HTTP/1.1 Host: api.anyprop.com Authorization: Bearer YOUR_SECRET_TOKEN Accept: */* ``` ### Response #### Success Response (200) - **value** (array) - An array of office objects. - **@odata.id** (string) - Unique identifier for the office. - **BillingOfficeKey** (string) - Key for the billing office. - **FranchiseAffiliation** (string) - The franchise affiliation of the office. - **FranchiseNationalAssociationID** (string) - National association ID for the franchise. - **HistoryTransactional** (string) - Transactional history status. - **IDXOfficeParticipationYN** (boolean) - Indicates if the office participates in IDX. - **MainOffice** (string) - Identifier for the main office. - **MainOfficeKey** (string) - Key for the main office. - **MainOfficeMlsId** (string) - MLS ID for the main office. - **Media** (string) - Identifier for office media. - **ModificationTimestamp** (string) - Timestamp of the last modification. - **NumberOfBranches** (integer) - Number of branches associated with the office. - **NumberOfNonMemberSalespersons** (integer) - Number of non-member salespersons. - **OfficeAddress1** (string) - First line of the office address. - **OfficeAddress2** (string) - Second line of the office address. - **OfficeAlternateId** (string) - Alternate ID for the office. - **OfficeAOR** (string) - Association of Realtors for the office. - **OfficeAORkey** (string) - Key for the Association of Realtors. - **OfficeAORMlsId** (string) - MLS ID for the Association of Realtors. - **OfficeAssociationComments** (string) - Comments from the office association. - **OfficeBio** (string) - Biography of the office. - **OfficeBranchType** (string) - Type of office branch. - **OfficeBroker** (string) - Identifier for the office broker. - **OfficeBrokerKey** (string) - Key for the office broker. - **OfficeBrokerMlsId** (string) - MLS ID for the office broker. - **OfficeBrokerNationalAssociationID** (string) - National association ID for the office broker. - **OfficeCity** (string) - City of the office. - **OfficeCorporateLicense** (string) - Corporate license number. - **OfficeCountry** (string) - Country of the office. - **OfficeCountyOrParish** (string) - County or parish of the office. - **OfficeEmail** (string) - Email address of the office. - **OfficeFax** (string) - Fax number of the office. - **OfficeKey** (string) - Unique key for the office. - **OfficeMailAddress1** (string) - First line of the office mailing address. - **OfficeMailAddress2** (string) - Second line of the office mailing address. - **OfficeMailCareOf** (string) - Care of for the mailing address. - **OfficeMailCity** (string) - City of the office mailing address. - **OfficeMailCountry** (string) - Country of the office mailing address. - **OfficeMailCountyOrParish** (string) - County or parish of the office mailing address. - **OfficeMailPostalCode** (string) - Postal code of the office mailing address. - **OfficeMailPostalCodePlus4** (string) - Plus 4 for the office mailing postal code. - **OfficeMailStateOrProvince** (string) - State or province of the office mailing address. - **OfficeManager** (string) - Identifier for the office manager. - **OfficeManagerKey** (string) - Key for the office manager. - **OfficeManagerMlsId** (string) - MLS ID for the office manager. - **OfficeMlsId** (string) - MLS ID for the office. - **OfficeName** (string) - Name of the office. - **OfficeNationalAssociationId** (string) - National association ID for the office. - **OfficePhone** (string) - Phone number of the office. - **OfficePhoneExt** (string) - Extension for the office phone number. - **OfficePostalCode** (string) - Postal code of the office. - **OfficePostalCodePlus4** (string) - Plus 4 for the office postal code. - **OfficeStateOrProvince** (string) - State or province of the office. - **OfficeStatus** (string) - Status of the office. - **OfficeType** (string) - Type of the office. - **OfficeURL** (string) - URL of the office website. - **OriginalEntryTimestamp** (string) - Timestamp of the original entry. - **OriginatingSystemID** (string) - ID of the originating system. - **OriginatingSystemKey** (string) - Key of the originating system. - **OriginatingSystemName** (string) - Name of the originating system. - **OriginatingSystemOfficeID** (string) - Office ID in the originating system. - **OriginatingSystemOfficeKey** (string) - Office key in the originating system. - **SocialMediaType** (string) - Social media platforms the office uses. - **SourceSystemID** (string) - ID of the source system. - **SourceSystemKey** (string) - Key of the source system. - **SourceSystemName** (string) - Name of the source system. - **SourceSystemOfficeID** (string) - Office ID in the source system. - **SourceSystemOfficeKey** (string) - Office key in the source system. #### Response Example ```json { "value": [ { "@odata.id": "Office('demo_office001')", "BillingOfficeKey": "demo_billing_001", "FranchiseAffiliation": "Century 21", "FranchiseNationalAssociationID": "C21NAT001", "HistoryTransactional": "Current", "IDXOfficeParticipationYN": true, "MainOffice": "demo_main_office_001", "MainOfficeKey": "demo_main_office_001", "MainOfficeMlsId": "MAIN001", "Media": "demo_office_photo001", "ModificationTimestamp": "2024-03-15T09:00:00.000000Z", "NumberOfBranches": 3, "NumberOfNonMemberSalespersons": 2, "OfficeAddress1": "123 Main Street", "OfficeAddress2": "Suite 200", "OfficeAlternateId": "ALT_OFF_001", "OfficeAOR": "Demo Board of Realtors", "OfficeAORkey": "demo_board_001", "OfficeAORMlsId": "DBR001", "OfficeAssociationComments": "Charter member since 1995, active in community outreach", "OfficeBio": "Demo Realty Group has been serving the Springfield community for over 25 years, providing exceptional real estate services with a commitment to integrity and client satisfaction.", "OfficeBranchType": "Main Office", "OfficeBroker": "demo_broker_001", "OfficeBrokerKey": "demo_broker_001", "OfficeBrokerMlsId": "BR001", "OfficeBrokerNationalAssociationID": "NAR_BR001", "OfficeCity": "Springfield", "OfficeCorporateLicense": "CORP123456789", "OfficeCountry": "US", "OfficeCountyOrParish": "Madison County", "OfficeEmail": "info@demorealty.com", "OfficeFax": "555-123-4568", "OfficeKey": "demo_office_001", "OfficeMailAddress1": "PO Box 12345", "OfficeMailAddress2": null, "OfficeMailCareOf": null, "OfficeMailCity": "Springfield", "OfficeMailCountry": "US", "OfficeMailCountyOrParish": "Madison County", "OfficeMailPostalCode": "12346", "OfficeMailPostalCodePlus4": "0001", "OfficeMailStateOrProvince": "IL", "OfficeManager": "demo_manager_001", "OfficeManagerKey": "demo_manager_001", "OfficeManagerMlsId": "MGR001", "OfficeMlsId": "OF567890", "OfficeName": "Demo Realty Group", "OfficeNationalAssociationId": "NAR_OF567890", "OfficePhone": "555-123-4567", "OfficePhoneExt": null, "OfficePostalCode": "12345", "OfficePostalCodePlus4": "6789", "OfficeStateOrProvince": "IL", "OfficeStatus": "Active", "OfficeType": "Real Estate", "OfficeURL": "https://www.demorealty.com", "OriginalEntryTimestamp": "2024-01-01T08:00:00.000000Z", "OriginatingSystemID": "DOS_001", "OriginatingSystemKey": "demo_office_system", "OriginatingSystemName": "Demo Office System", "OriginatingSystemOfficeID": "DOS_OFF_001", "OriginatingSystemOfficeKey": "orig_off_001", "SocialMediaType": "Facebook, LinkedIn, Instagram", "SourceSystemID": "SS_OFF_001", "SourceSystemKey": "source_office_system", "SourceSystemName": "Demo Source System", "SourceSystemOfficeID": "SS_OFFICE_001", "SourceSystemOfficeKey": "src_off_001" }, { "@odata.id": "Office('demo_office002')", "BillingOfficeKey": null, "FranchiseAffiliation": null, "FranchiseNationalAssociationID": null, "HistoryTransactional": "Current", "IDXOfficeParticipationYN": false, "MainOffice": null, "MainOfficeKey": null, "MainOfficeMlsId": null, "Media": null, "ModificationTimestamp": "2024-02-15T10:00:00.000000Z", "NumberOfBranches": 0, "NumberOfNonMemberSalespersons": 0, "OfficeAddress1": "456 Oak Avenue", "OfficeAddress2": null, "OfficeAlternateId": "ALT_OFF_002", "OfficeAOR": "Springfield Board of Realtors", "OfficeAORkey": "demo_board_001", "OfficeAORMlsId": "DBR001", "OfficeAssociationComments": null, "OfficeBio": "Riverside Realty is a premier real estate agency dedicated to providing personalized service and expert guidance to buyers and sellers in the Riverside area.", "OfficeBranchType": "Branch Office", "OfficeBroker": "demo_broker_002", "OfficeBrokerKey": "demo_broker_002", "OfficeBrokerMlsId": "BR002", "OfficeBrokerNationalAssociationID": "NAR_BR002", "OfficeCity": "Riverside", "OfficeCorporateLicense": "CORP987654321", "OfficeCountry": "US", "OfficeCountyOrParish": "River County", "OfficeEmail": "contact@riversiderealty.com", "OfficeFax": "555-987-6543", "OfficeKey": "demo_office002", "OfficeMailAddress1": "PO Box 54321", "OfficeMailAddress2": null, "OfficeMailCareOf": null, "OfficeMailCity": "Riverside", "OfficeMailCountry": "US", "OfficeMailCountyOrParish": "River County", "OfficeMailPostalCode": "54321", "OfficeMailPostalCodePlus4": "0987", "OfficeMailStateOrProvince": "IL", "OfficeManager": "demo_manager_002", "OfficeManagerKey": "demo_manager_002", "OfficeManagerMlsId": "MGR002", "OfficeMlsId": "OF123456", "OfficeName": "Riverside Realty", "OfficeNationalAssociationId": "NAR_OF123456", "OfficePhone": "555-246-8100", "OfficePhoneExt": null, "OfficePostalCode": "54321", "OfficePostalCodePlus4": "0987", "OfficeStateOrProvince": "IL", "OfficeStatus": "Active", "OfficeType": "Real Estate", "OfficeURL": "https://www.riversiderealty.com", "OriginalEntryTimestamp": "2024-02-15T10:00:00.000000Z", "OriginatingSystemID": "DOS_002", "OriginatingSystemKey": "demo_office_system", "OriginatingSystemName": "Demo Office System", "OriginatingSystemOfficeID": "DOS_OFF_002", "OriginatingSystemOfficeKey": "orig_off_002", "SocialMediaType": "LinkedIn, Google Business", "SourceSystemID": "SS_OFF_002", "SourceSystemKey": "source_office_system", "SourceSystemName": "Demo Source System", "SourceSystemOfficeID": "SS_OFFICE_002", "SourceSystemOfficeKey": "src_off_002" } ], "@odata.count": 2, "@odata.totalCount": 892, "@odata.nextLink": "https://api.anyprop.com/v1/listings/data/Office/skiptoken/demo_office_skip_321" } ``` #### Error Responses - **400 Bad Request**: Returned if the request is malformed. - **401 Unauthorized**: Returned if the request lacks valid authentication credentials. ``` -------------------------------- ### Example API Response for Member Resource Source: https://docs.anyprop.com/ This JSON snippet represents a typical response from the Anyprop API for the Member resource. It includes details about the member's originating system, MLS ID, social media presence, and subscriptions. The response also contains OData metadata for pagination, such as '@odata.count', '@odata.totalCount', and '@odata.nextLink'. ```json { "value": [ { "OriginatingSystemName": "Demo MLS System", "PrimaryAor": "River County Board of Realtors", "PrimaryAorMlsId": "RBR001", "SocialMediaType": "LinkedIn, Twitter", "SourceSystemID": "SRC_002", "SourceSystemKey": "source_system_demo", "SourceSystemMemberKey": "src_mike_002", "SourceSystemName": "Demo Source System", "Subscriptions": "Full MLS Access, Analytics Package, Lead Management" } ], "@odata.count": 2, "@odata.totalCount": 3456, "@odata.nextLink": "https://api.anyprop.com/v1/listings/data/Member/skiptoken/demo_member_skip_789" } ``` -------------------------------- ### GET /websites/anyprop/Media Source: https://docs.anyprop.com/ Retrieves a list of media assets associated with a property. Supports filtering by various fields to narrow down the results. ```APIDOC ## GET /websites/anyprop/Media ### Description Retrieves a list of media assets (e.g., photos) for a given property. You can filter the results using the `$filter` parameter. ### Method GET ### Endpoint `/websites/anyprop/Media` ### Parameters #### Query Parameters - **$filter** (string) - Optional - Allows filtering the results based on fields like `OriginatingSystemName`, `ModificationTimestamp`, `MediaKey`, `MediaStatus`, `Order`, `MediaCategory`, `ResourceName`, `ResourceRecordKey`, `ResourceRecordID`. ### Request Example ```json { "example": "GET /websites/anyprop/Media?$filter=ResourceRecordKey eq 'demo_prop001' and MediaStatus eq 'Active'" } ``` ### Response #### Success Response (200) - **@odata.count** (integer) - The number of media items returned in the current response. - **@odata.totalCount** (integer) - The total number of media items available matching the filter criteria. - **@odata.nextLink** (string) - A URL to retrieve the next page of results if there are more items available. - **value** (array) - An array of media objects, each containing detailed information about a media asset. - **ChangedByMemberKey** (string) - The key of the member who last changed the media record. - **ClassName** (string) - The class name of the media object (e.g., 'Photo'). - **ImageHeight** (integer) - The height of the image in pixels. - **ImageOf** (string) - A description of what the image depicts (e.g., 'Exterior Front', 'Kitchen'). - **ImageSizeDescription** (string) - A description of the image's resolution or size. - **ImageWidth** (integer) - The width of the image in pixels. - **LongDescription** (string) - A detailed description of the media asset. - **MediaAlteration** (string) - Any alterations made to the media (e.g., 'Color Enhanced', 'Brightness Adjusted'). - **MediaCategory** (string) - The category of the media (e.g., 'Photo'). - **MediaHTML** (string) - HTML snippet to embed the media. - **MediaKey** (string) - The unique key for the media asset. - **MediaModificationTimestamp** (string) - The timestamp when the media was last modified. - **MediaObjectID** (string) - The object ID of the media. - **MediaStatus** (string) - The status of the media (e.g., 'Active'). - **MediaType** (string) - The type of media (e.g., 'JPEG'). - **MediaURL** (string) - The URL to access the media asset. - **ModificationTimestamp** (string) - The timestamp when the record was last modified. - **Order** (integer) - The display order of the media asset. - **OriginatingSystem** (string) - The system where the media originated. - **OriginatingSystemID** (string) - The ID of the originating system. - **OriginatingSystemMediaKey** (string) - The media key from the originating system. - **OriginatingSystemName** (string) - The name of the originating system. - **OriginatingSystemResourceRecordID** (string) - The resource record ID from the originating system. - **OriginatingSystemResourceRecordKey** (string) - The resource record key from the originating system. - **OriginatingSystemResourceRecordSystemID** (string) - The resource record system ID from the originating system. - **Permission** (string) - The permission level for the media. - **PreferredPhotoYN** (boolean) - Indicates if this is the preferred photo for the property. - **ResourceName** (string) - The name of the resource the media is associated with (e.g., 'Property'). - **ResourceRecordID** (string) - The ID of the resource record. - **ResourceRecordKey** (string) - The key of the resource record. - **ShortDescription** (string) - A brief description of the media asset. - **SourceSystem** (string) - The source system of the media. - **SourceSystemID** (string) - The ID of the source system. - **SourceSystemMediaKey** (string) - The media key from the source system. - **SourceSystemName** (string) - The name of the source system. - **SourceSystemResourceRecordID** (string) - The resource record ID from the source system. - **SourceSystemResourceRecordKey** (string) - The resource record key from the source system. - **SourceSystemResourceRecordSystemID** (string) - The resource record system ID from the source system. #### Response Example ```json { "@odata.count": 2, "@odata.totalCount": 1847, "@odata.nextLink": "https://api.anyprop.com/v1/listings/data/Media/skiptoken/demo_media_skip_456", "value": [ { "ChangedByMemberKey": "demo_agent_jane001", "ClassName": "Photo", "ImageHeight": 768, "ImageOf": "Exterior Front", "ImageSizeDescription": "High Resolution", "ImageWidth": 1024, "LongDescription": "Beautiful exterior front view showing landscaping and architectural details", "MediaAlteration": "Color Enhanced", "MediaCategory": "Photo", "MediaHTML": "Exterior Front View", "MediaKey": "demo_media001", "MediaModificationTimestamp": "2024-03-15T10:30:00.000000Z", "MediaObjectID": "IMG_001_EXT_FRONT", "MediaStatus": "Active", "MediaType": "JPEG", "MediaURL": "https://photos.demo.com/prop001/exterior-front.jpg", "ModificationTimestamp": "2024-03-15T10:30:00.000000Z", "Order": 1, "OriginatingSystem": "Demo Photo System", "OriginatingSystemID": "DPS001", "OriginatingSystemMediaKey": "ext_front_001", "OriginatingSystemName": "demo_photo_system", "OriginatingSystemResourceRecordID": "DEMO001", "OriginatingSystemResourceRecordKey": "demo_prop001", "OriginatingSystemResourceRecordSystemID": "DPS_PROP_001", "Permission": "Public", "PreferredPhotoYN": true, "ResourceName": "Property", "ResourceRecordID": "DEMO001", "ResourceRecordKey": "demo_prop001", "ShortDescription": "Exterior Front", "SourceSystem": "Demo MLS System", "SourceSystemID": "DMS001", "SourceSystemMediaKey": "media_001_front", "SourceSystemName": "demo_mls_system", "SourceSystemResourceRecordID": "DEMO001", "SourceSystemResourceRecordKey": "demo_prop001", "SourceSystemResourceRecordSystemID": "DMS_PROP_001" }, { "@odata.id": "Media('demo_media002')", "ChangedByMember": "demo_agent_jane001", "ChangedByMemberID": "AG123456", "ChangedByMemberKey": "demo_agent_jane001", "ClassName": "Photo", "ImageHeight": 768, "ImageOf": "Kitchen", "ImageSizeDescription": "High Resolution", "ImageWidth": 1024, "LongDescription": "Gourmet kitchen with granite countertops, stainless steel appliances, and island seating", "MediaAlteration": "Brightness Adjusted", "MediaCategory": "Photo", "MediaHTML": "Kitchen View", "MediaKey": "demo_media002", "MediaModificationTimestamp": "2024-03-15T10:45:00.000000Z", "MediaObjectID": "IMG_002_KITCHEN", "MediaStatus": "Active", "MediaType": "JPEG", "MediaURL": "https://photos.demo.com/prop001/kitchen.jpg", "ModificationTimestamp": "2024-03-15T10:45:00.000000Z", "Order": 3, "OriginatingSystem": "Demo Photo System", "OriginatingSystemID": "DPS002", "OriginatingSystemMediaKey": "kitchen_001", "OriginatingSystemName": "demo_photo_system", "OriginatingSystemResourceRecordID": "DEMO001", "OriginatingSystemResourceRecordKey": "demo_prop001", "OriginatingSystemResourceRecordSystemID": "DPS_PROP_001", "Permission": "Public", "PreferredPhotoYN": false, "ResourceName": "Property", "ResourceRecordID": "DEMO001", "ResourceRecordKey": "demo_prop001", "ShortDescription": "Kitchen", "SourceSystem": "Demo MLS System", "SourceSystemID": "DMS002", "SourceSystemMediaKey": "media_002_kitchen", "SourceSystemName": "demo_mls_system", "SourceSystemResourceRecordID": "DEMO001", "SourceSystemResourceRecordKey": "demo_prop001", "SourceSystemResourceRecordSystemID": "DMS_PROP_001" } ] } ``` #### Error Response (400/404/500) - **error** (object) - Contains error details if the request fails. - **code** (string) - Error code. - **message** (string) - Error message describing the issue. ``` } ] } ``` ``` -------------------------------- ### GET /v1/listings/data/Office Source: https://docs.anyprop.com/ Retrieves a list of real estate offices. Supports OData filtering and pagination. ```APIDOC ## GET /v1/listings/data/Office ### Description Retrieves a collection of real estate office records. Use this endpoint to fetch detailed office profiles including location, contact, and association data. ### Method GET ### Endpoint /v1/listings/data/Office ### Parameters #### Query Parameters - **$filter** (string) - Optional - Filter results by fields: OriginatingSystemName, ModificationTimestamp, OfficeMlsId, OfficeName, OfficePhone, OfficeEmail, OfficeStateOrProvince, OfficeStatus ### Request Example GET /v1/listings/data/Office?$filter=OfficeStatus eq 'Active' ### Response #### Success Response (200) - **OfficeName** (string) - The name of the real estate office. - **OfficeEmail** (string) - Primary contact email for the office. - **OfficeStatus** (string) - Current operational status of the office. - **@odata.count** (integer) - Number of records in the current response. - **@odata.totalCount** (integer) - Total number of records available. #### Response Example { "OfficeName": "Riverside Realty", "OfficeEmail": "info@riversiderealty.com", "OfficeStatus": "Active", "@odata.count": 2, "@odata.totalCount": 892 } ``` -------------------------------- ### GET /websites/anyprop Source: https://docs.anyprop.com/ Retrieves a list of property listings with detailed attributes. Supports filtering via query parameters. ```APIDOC ## GET /websites/anyprop ### Description Retrieves a list of property listings with detailed attributes. Supports filtering via query parameters. ### Method GET ### Endpoint /websites/anyprop ### Parameters #### Query Parameters - **$filter** (string) - Optional - Allows filtering of results based on available fields. Example: `$filter=ListPrice gt 200000` ### Request Example ```json { "example": "GET /websites/anyprop?$filter=ListPrice gt 200000" } ``` ### Response #### Success Response (200) - **ListOfficeNationalAssociationId** (string) - The National Association ID for the listing office. - **ListOfficePhone** (string) - The phone number of the listing office. - **ListPrice** (number) - The current listing price of the property. - **LivingArea** (number) - The living area of the property. - **LivingAreaSource** (string) - The source of the living area information. - **LivingAreaUnits** (string) - The units for the living area (e.g., "Square Feet"). - **LockBoxType** (array) - Types of lockboxes available for property access. - **Longitude** (number) - The longitude coordinate of the property. - **LotFeatures** (array) - Features of the lot (e.g., "Level", "Rectangular"). - **LotSizeAcres** (number) - The size of the lot in acres. - **LotSizeArea** (number) - The area of the lot. - **LotSizeDimensions** (string) - The dimensions of the lot (e.g., "80 x 98"). - **LotSizeSquareFeet** (number) - The size of the lot in square feet. - **LotSizeUnits** (string) - The units for the lot size. - **MaintenanceExpense** (number) - The monthly maintenance expense for the property. - **MLSAreaMajor** (string) - The major MLS area the property is located in. - **MlsStatus** (string) - The MLS status of the listing (e.g., "Active"). - **ModificationTimestamp** (string) - The timestamp when the listing was last modified. - **NewConstructionYN** (boolean) - Indicates if the property is new construction. - **NumberOfUnitsTotal** (number) - The total number of units in the property. - **OccupantType** (string) - The type of occupant (e.g., "Vacant"). - **OnMarketDate** (string) - The date the property was listed on the market. - **OnMarketTimestamp** (string) - The timestamp when the property was listed on the market. - **OpenParkingSpaces** (number) - The number of open parking spaces. - **OpenParkingYN** (boolean) - Indicates if open parking is available. - **OriginalEntryTimestamp** (string) - The timestamp of the original entry of the listing. - **OriginalListPrice** (number) - The original listing price of the property. - **OriginatingSystemKey** (string) - The key of the originating MLS system. - **OriginatingSystemName** (string) - The name of the originating MLS system. - **OwnerPays** (array) - Expenses typically paid by the owner. - **ParcelNumber** (string) - The unique parcel number for the property. - **ParkingFeatures** (array) - Features of the parking available. - **ParkingTotal** (number) - The total number of parking spaces. - **PetsAllowed** (array) - Policies regarding pets. - **PhotosCount** (number) - The number of photos available for the listing. - **PoolPrivateYN** (boolean) - Indicates if the property has a private pool. - **Possession** (array) - Terms of possession. - **PossibleUse** (array) - Potential uses for the property. - **PostalCode** (string) - The postal code of the property's location. - **PostalCodePlus4** (string) - The plus-four extension of the postal code. - **PrivateRemarks** (string) - Private remarks for agents. - **PropertyCondition** (array) - The condition of the property. - **PropertySubType** (string) - The sub-type of the property (e.g., "Single Family Residence"). - **PropertyType** (string) - The type of property (e.g., "Residential"). - **PublicRemarks** (string) - Public remarks for potential buyers. - **RentIncludes** (array) - Items included in the rent (if applicable). - **RoadSurfaceType** (array) - The surface type of the road accessing the property. - **Roof** (array) - The type of roof. - **RoomsTotal** (number) - The total number of rooms in the property. - **SeniorCommunityYN** (boolean) - Indicates if the property is a senior community. - **Sewer** (array) - The type of sewer system. - **StandardStatus** (string) - The standard status of the listing. - **StateOrProvince** (string) - The state or province where the property is located. - **StatusChangeTimestamp** (string) - The timestamp when the listing status last changed. - **Stories** (number) - The number of stories in the property. - **StoriesTotal** (number) - The total number of stories in the building. - **StreetName** (string) - The name of the street. - **StreetNumber** (string) - The street number. - **StreetNumberNumeric** (number) - The numeric street number. - **StreetSuffix** (string) - The suffix of the street name. - **StructureType** (array) - The type of structure. - **SubdivisionName** (string) - The name of the subdivision. - **TaxAnnualAmount** (number) - The annual property tax amount. - **TaxAssessedValue** (number) - The assessed value of the property for tax purposes. - **TaxYear** (number) - The tax year. - **TenantPays** (array) - Expenses typically paid by the tenant (if applicable). - **UnparsedAddress** (string) - The unparsed full address. - **Utilities** (array) - The utilities connected to the property. - **ViewYN** (boolean) - Indicates if the property has a view. - **WaterfrontYN** (boolean) - Indicates if the property is waterfront. - **WaterSource** (array) - The source of the water supply. - **WindowFeatures** (array) - Features of the windows. - **YearBuilt** (number) - The year the property was built. - **YearBuiltSource** (string) - The source of the year built information. - **Zoning** (string) - The zoning classification of the property. - **ZoningDescription** (string) - A description of the zoning classification. - **@odata.count** (number) - The total count of matching records. - **@odata.totalCount** (number) - The total number of records available. - **@odata.nextLink** (string) - A link to the next page of results. #### Response Example ```json { "ListOfficeNationalAssociationId": "OF123456", "ListOfficePhone": "555-246-8100", "ListPrice": 289000, "LivingArea": 1200, "LivingAreaSource": "Builder", "LivingAreaUnits": "Square Feet", "LockBoxType": [ "Combination" ], "Longitude": -87.6298, "LotFeatures": [ "Level", "Rectangular" ], "LotSizeAcres": 0.18, "LotSizeArea": 7840, "LotSizeDimensions": "80 x 98", "LotSizeSquareFeet": 7840, "LotSizeUnits": "Square Feet", "MaintenanceExpense": 200, "MLSAreaMajor": "East Riverside", "MlsStatus": "Active", "ModificationTimestamp": "2024-03-20T11:15:00.000000Z", "NewConstructionYN": false, "NumberOfUnitsTotal": 1, "OccupantType": "Vacant", "OnMarketDate": "2024-03-20", "OnMarketTimestamp": "2024-03-20T09:00:00.000000Z", "OpenParkingSpaces": 2, "OpenParkingYN": true, "OriginalEntryTimestamp": "2024-03-18T14:30:00.000000Z", "OriginalListPrice": 289000, "OriginatingSystemKey": "demo_system", "OriginatingSystemName": "Demo MLS System", "OwnerPays": [ "Property Tax" ], "ParcelNumber": "456-78-901-234", "ParkingFeatures": [ "Carport", "Driveway" ], "ParkingTotal": 3, "PetsAllowed": [ "No Pets" ], "PhotosCount": 15, "PoolPrivateYN": false, "Possession": [ "At Closing" ], "PossibleUse": [ "Single Family" ], "PostalCode": "54321", "PostalCodePlus4": "0987", "PrivateRemarks": "Priced to sell. Good starter home or investment property.", "PropertyCondition": [ "Good" ], "PropertySubType": "Single Family Residence", "PropertyType": "Residential", "PublicRemarks": "Charming 3-bedroom, 2-bathroom ranch home in quiet Riverside neighborhood. This well-maintained home features an open floor plan, updated kitchen with all appliances included, and a large fenced backyard perfect for pets or entertaining. Convenient location near schools, shopping, and public transportation. Move-in ready!", "RentIncludes": [], "RoadSurfaceType": [ "Asphalt" ], "Roof": [ "Asphalt Shingles" ], "RoomsTotal": 7, "SeniorCommunityYN": false, "Sewer": [ "Public Sewer" ], "StandardStatus": "Active", "StateOrProvince": "IL", "StatusChangeTimestamp": "2024-03-20T09:00:00.000000Z", "Stories": 1, "StoriesTotal": 1, "StreetName": "PINE", "StreetNumber": "567", "StreetNumberNumeric": 567, "StreetSuffix": "STREET", "StructureType": [ "Stick Built" ], "SubdivisionName": "RIVERSIDE HEIGHTS", "TaxAnnualAmount": 4200, "TaxAssessedValue": 235000, "TaxYear": 2023, "TenantPays": [ "Electric", "Gas" ], "UnparsedAddress": "567 PINE STREET", "Utilities": [ "Electricity Connected", "Water Connected", "Sewer Connected" ], "ViewYN": false, "WaterfrontYN": false, "WaterSource": [ "Public" ], "WindowFeatures": [ "Screens" ], "YearBuilt": 1985, "YearBuiltSource": "Public Records", "Zoning": "R-2", "ZoningDescription": "Single Family Residential", "@odata.count": 2, "@odata.totalCount": 125847, "@odata.nextLink": "https://api.anyprop.com/v1/listings/data/Property/skiptoken/demo_skip_token_12345" } ``` ``` -------------------------------- ### Filtering Member Resource by Available Fields Source: https://docs.anyprop.com/ This example demonstrates how to filter the Member resource using available fields in the Anyprop API. It shows a query string that includes filters for 'OriginatingSystemName' and 'MemberMlsId'. The API supports filtering on various fields, including timestamps, names, emails, status, and office information. ```url https://api.anyprop.com/v1/listings/data/Member?$filter=OriginatingSystemName eq 'Demo MLS System' and MemberMlsId eq 'MEMBER123' ```