PARTNERS

Partner level API for accessing information for clients under a development parter's account.

endpoint: https://api.idxbroker.com/partners/[...]

This is a simple, access anywhere, method for getting a list of all API components available.

  • GET

    • primary request ID: none
    • secondary request ID: none
    • additional input: none
    • output: all available APIs/Components
    // access URL and request method
    $url = 'https://api.idxbroker.com/partners/listcomponents';
    $method = 'GET';
    
    // headers (required and optional)
    $headers = array(
    	'Content-Type: application/x-www-form-urlencoded', // required
    	'accesskey: abcdefghijklmnopqrstuvwx', // required - replace with your own
    	'outputtype: json' // optional - overrides the preferences in our API control page
    );
    
    // set up cURL
    $handle = curl_init();
    curl_setopt($handle, CURLOPT_URL, $url);
    curl_setopt($handle, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($handle, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false);
    
    // exec the cURL request and returned information. Store the returned HTTP code in $code for later reference
    $response = curl_exec($handle);
    $code = curl_getinfo($handle, CURLINFO_HTTP_CODE);
    
    if ($code >= 200 || $code < 300)
    	$components = json_decode($response,true);
    else
    	$error = $code;
    											
  • POST None

  • PUT None

  • DELETE None

A simple method for listing all available methods in the current API component. This method will also list which request methods (GET, PUT, POST, or DELETE) are supported by each method.

  • GET

    • primary request ID: none
    • secondary request ID: none
    • additional input: none
    • output: basic information about all available methods in this API. Data included includes:
      • Method Name
      • The list of actions (GET, POST, etc) and a boolean denoting whether or not the action is available in the method.
      • The method's status.
        • indev: This method is in development. Input or output may change without notice.
        • active: This method is operating normally.
        • deprecated: The functionality of this method is being superseded by another as described in the method description.
        • sunset: This method is no longer available.
      • A one to two sentance description of the method.
    // access URL and request method
    $url = 'https://api.idxbroker.com/partners/listmethods';
    $method = 'GET';
    
    // headers (required and optional)
    $headers = array(
    	'Content-Type: application/x-www-form-urlencoded', // required
    	'accesskey: abcdefghijklmnopqrstuvwx', // required - replace with your own
    	'outputtype: json' // optional - overrides the preferences in our API control page
    );
    
    // set up cURL
    $handle = curl_init();
    curl_setopt($handle, CURLOPT_URL, $url);
    curl_setopt($handle, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($handle, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false);
    
    // exec the cURL request and returned information. Store the returned HTTP code in $code for later reference
    $response = curl_exec($handle);
    $code = curl_getinfo($handle, CURLINFO_HTTP_CODE);
    
    if ($code >= 200 || $code < 300)
    	$response = json_decode($response,true);
    else
    	$error = $code;
    											
  • POST None

  • PUT None

  • DELETE None

A list of clients available to a given partner. The list of clients can be filtered by GET values.

  • GET

    • primary request ID: none
    • secondary request ID: none
    • additional input:
      • filterField optional the field to use when filtering output. Available values:
        • accountStatus - filter to just enabled or just disabled accounts.
        • accountID - information for a single client by their account ID.
      • filterValue conditional on use of filterField - the value by which to filter
    • output: the account ID, company name, display name, account status, and current API key of each client or clients matching the filter values.
    // access URL and request method
    $url = 'https://api.idxbroker.com/partners/clients';
    $method = 'GET';
    
    // headers (required and optional)
    $headers = array(
    	'Content-Type: application/x-www-form-urlencoded', // required
    	'accesskey: abcdefghijklmnopqrstuvwx', // required - replace with your own
    	'outputtype: json' // optional - overrides the preferences in our API control page
    );
    
    // set up cURL
    $handle = curl_init();
    curl_setopt($handle, CURLOPT_URL, $url);
    curl_setopt($handle, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($handle, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false);
    
    // exec the cURL request and returned information. Store the returned HTTP code in $code for later reference
    $response = curl_exec($handle);
    $code = curl_getinfo($handle, CURLINFO_HTTP_CODE);
    
    if ($code >= 200 || $code < 300)
    	$clients = json_decode($response,true);
    else
    	$error = $code;
    											
  • POST None

  • PUT None

  • DELETE None

A control method for generating, replacing, and revoking the key for any client under a partner's account.

  • GET None

  • POST None

  • PUT

    Create a new API key for a client. If there is an existing API key it will be replaced.
    • primary request ID: accountID required The client's numeric account ID
    • secondary request ID: none
    • additional input: none
    • output: the new client API key.
    // access URL and request method
    $url = 'https://api.idxbroker.com/partners/clientkeys/123';
    $method = 'PUT';
    
    // headers (required and optional)
    $headers = array(
    	'Content-Type: application/x-www-form-urlencoded', // required
    	'accesskey: abcdefghijklmnopqrstuvwx', // required - replace with your own
    	'outputtype: json' // optional - overrides the preferences in our API control page
    );
    
    // set up cURL
    $handle = curl_init();
    curl_setopt($handle, CURLOPT_URL, $url);
    curl_setopt($handle, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($handle, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false);
    
    if ($method != 'GET')
    	curl_setopt($handle, CURLOPT_CUSTOMREQUEST, $method);
    
    // exec the cURL request and returned information. Store the returned HTTP code in $code for later reference
    $response = curl_exec($handle);
    $code = curl_getinfo($handle, CURLINFO_HTTP_CODE);
    
    if ($code >= 200 || $code < 300)
    	$clients = json_decode($response,true);
    else
    	$error = $code;
    											
  • DELETE

    Revoke a client's API key.
    • primary request ID: accountID required The client's numeric account ID
    • secondary request ID: none
    • additional input: none
    • output: none. 204 code indicates success.
    // access URL and request method
    $url = 'https://api.idxbroker.com/partners/clientkeys/123';
    $method = 'DELETE';
    
    // headers (required and optional)
    $headers = array(
    	'Content-Type: application/x-www-form-urlencoded', // required
    	'accesskey: abcdefghijklmnopqrstuvwx', // required - replace with your own
    	'outputtype: json' // optional - overrides the preferences in our API control page
    );
    
    // set up cURL
    $handle = curl_init();
    curl_setopt($handle, CURLOPT_URL, $url);
    curl_setopt($handle, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($handle, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false);
    
    if ($method != 'GET')
    	curl_setopt($handle, CURLOPT_CUSTOMREQUEST, $method);
    
    // exec the cURL request and returned information. Store the returned HTTP code in $code for later reference
    $response = curl_exec($handle);
    $code = curl_getinfo($handle, CURLINFO_HTTP_CODE);
    
    if ($code >= 200 || $code < 300)
    	$clients = json_decode($response,true);
    else
    	$error = $code;
    											

Gives the names and IDs of all available property types. This method differs from the property type lookup method in the client API compenent in that it can look up property types for any active Platinum MLS, not just those for which the client is a member.

  • GET

    • primary request ID: idxID optional The IDX ID of the MLS from which you need property type information. If no IDX ID is specified then only the IDX property types (parentPtID) will be returned.
    • secondary request ID: none
    • additional input: none
    • output: An array containing the IDX property types and, if an IDX ID has been provided, the MLS's property types and their IDs. The IDX property types are those used for multiple MLS searches and are equivalent to the property types used in the original IDX product. The data returned is structured as:
      • idxPropTypes
        • parentPtID - the numeric ID for IDX property types; seen as parentPtID when retrieving property information
        • pt - the 2 to 3 letter abbreviated property type as seen in multiple MLS search queries as the variable pt.
        • propertyType - the human friendly property type name
      • [idxID] in the format a### (this element will not be present at all if no IDX ID is provided)
        • mlsPtID - the numeric ID given to MLS property types; seen as parentPtID when retrieving property information and in single MLS search queries as the variable pt.
        • propertyType - the human friendly property type name
        • parentPtID - the ID of the IDX property type to which this MLS property type belongs.
    // access URL and request method
    $url = 'https://api.idxbroker.com/partners/propertytypes/a001';
    $method = 'GET';
    
    // headers (required and optional)
    $headers = array(
    	'Content-Type: application/x-www-form-urlencoded', // required
    	'accesskey: abcdefghijklmnopqrstuvwx', // required - replace with your own
    	'outputtype: json' // optional - overrides the preferences in our API control page
    );
    
    // set up cURL
    $handle = curl_init();
    curl_setopt($handle, CURLOPT_URL, $url);
    curl_setopt($handle, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($handle, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false);
    
    // exec the cURL request and returned information. Store the returned HTTP code in $code for later reference
    $response = curl_exec($handle);
    $code = curl_getinfo($handle, CURLINFO_HTTP_CODE);
    
    if ($code >= 200 || $code < 300)
    	$propertyTypes = json_decode($response,true);
    else
    	$error = $code;
    											
  • POST None

  • PUT None

  • DELETE None

Get a list of all leads created, edited, or active during a specified time frame of up to 1 week.

  • GET

    • primary request ID: none
    • secondary request ID: none
    • additional input:
      • interval optional - the number of hours worth of data to return.
        • This must be a numeric value but can be an integer or a decimal. E.g. to get the last 90 minutes you would use an interval value of 1.5.
          • Up to 4 digits after the decimal point will be tolerated, additional precision will be rounded off.
          • Intervals will also be rounded to the nearest second.
        • The interval specifies the number of hours before the startDatetime from which lead information will be returned.
        • Minimum value: 0.0166 (~ 1 minute). Maximum value: 168 (1 week).
        • If no value is specified 1 hour will we used.
      • startDatetime optional - the date and time to from which the interval counts back.
        • This is the date and time closest to now from which you want lead information. E.g. if you want all leads created on New Year's Day you could use an interval of 24 plus a startDatetime of 2013-01-01 23:59:59. This will pull data from the very end of the day to 24 hours previous.
        • Format: YYYY-MM-DD hh:mm:ss
        • This method currently assumes the date passed will be UTC
        • If no value is specified the current date/time will be used
      • dateType optional - there are several dates associated with a lead, this will specify is being used to return information.
        • Possible Values:
          • subscribeDate - set at the time the lead signed up or was added to the system via API or middleware.
          • lastEdited - set any time lead information is edited.
          • lastLoginDate - the last time the lead logged in to their account.
          • lastPropertyUpdateDate - the last time the lead received property updates.
          • lastActivityDate - the last time the lead was active. This could be a login, a saved property, or a saved search.
        • If no value is specified subscribeDate will be used.
    • output: the applicable client account ID, lead ID, first name, last name, email address, address, city, state/province, country, zipCode, phone number, ID of the agent assigned, email format (html or plain text), disabled status (y/n), allowed to log in to their account (y/n), will receive property updates (y/n), subscribe date, last edited, last login date, last property update date, last activity type, and last activity date.
    • note: For bandwidth and memory considerations there is a limit of 5,000 on the number of leads that can be returned in any single request. Even if a full week of data is requested this limit will only be encountered if your clients have a combined average 30+ leads created, updated, or active per hour (as such it will be most common when requesting leads based on last property update date). If this limit is exceeded a 413 -Requested Entity Too Large error is returned. If encountered a smaller interval will need to be used.
    // access URL and request method
    $url = 'https://api.idxbroker.com/partners/aggregatedleads?interval=24&startDatetime=2012-01-01+23:59:59&dateType=lastLoginDate';
    $method = 'GET';
    
    // headers (required and optional)
    $headers = array(
    	'Content-Type: application/x-www-form-urlencoded', // required
    	'accesskey: abcdefghijklmnopqrstuvwx', // required - replace with your own
    	'outputtype: json' // optional - overrides the preferences in our API control page
    );
    
    // set up cURL
    $handle = curl_init();
    curl_setopt($handle, CURLOPT_URL, $url);
    curl_setopt($handle, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($handle, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false);
    
    // exec the cURL request and returned information. Store the returned HTTP code in $code for later reference
    $response = curl_exec($handle);
    $code = curl_getinfo($handle, CURLINFO_HTTP_CODE);
    
    if ($code >= 200 || $code < 300)
    	$leads = json_decode($response,true);
    else
    	$error = $code;
    											
  • POST None

  • PUT None

  • DELETE None

Get a list of all saved searches created or edited during a specified time frame of up to 1 week.

  • GET

    • primary request ID: none
    • secondary request ID: none
    • additional input:
      • interval optional - the number of hours worth of data to return.
        • This must be a numeric value but can be an integer or a decimal. E.g. to get the last 90 minutes you would use an interval value of 1.5.
          • Up to 4 digits after the decimal point will be tolerated, additional precision will be rounded off.
          • Intervals will also be rounded to the nearest second.
        • The interval specifies the number of hours before the startDatetime from which lead information will be returned.
        • Minimum value: 0.0166 (~ 1 minute). Maximum value: 168 (1 week).
        • If no value is specified 1 hour will we used.
      • startDatetime optional - the date and time to from which the interval counts back.
        • This is the date and time closest to now from which you want lead information. E.g. if you want all leads created on New Year's Day you could use an interval of 24 plus a startDatetime of 2013-01-01 23:59:59. This will pull data from the very end of the day to 24 hours previous.
        • Format: YYYY-MM-DD hh:mm:ss
        • This method currently assumes the date passed will be UTC
        • If no value is specified the current date/time will be used
      • dateType optional - there are several dates associated with a lead, this will specify is being used to return information.
        • Possible Values:
          • created - set at the time the search is saved.
          • lastEdited - set any time search information is edited.
        • If no value is specified created will be used.
    • output: search ID, the applicable client account ID, lead ID, page ID, search name, search parameters, lead will receive property updates (y/n), created date, last edited date
    • note: For bandwidth and memory considerations there is a limit of 5,000 on the number of searches that can be returned in any single request.
    // access URL and request method
    $url = 'https://api.idxbroker.com/partners/aggregatedsearches?interval=24&startDatetime=2012-01-01+23:59:59&dateType=created';
    $method = 'GET';
    
    // headers (required and optional)
    $headers = array(
    	'Content-Type: application/x-www-form-urlencoded', // required
    	'accesskey: abcdefghijklmnopqrstuvwx', // required - replace with your own
    	'outputtype: json' // optional - overrides the preferences in our API control page
    );
    
    // set up cURL
    $handle = curl_init();
    curl_setopt($handle, CURLOPT_URL, $url);
    curl_setopt($handle, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($handle, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false);
    
    // exec the cURL request and returned information. Store the returned HTTP code in $code for later reference
    $response = curl_exec($handle);
    $code = curl_getinfo($handle, CURLINFO_HTTP_CODE);
    
    if ($code >= 200 || $code < 300)
    	$searches = json_decode($response,true);
    else
    	$error = $code;
    											
  • POST None

  • PUT None

  • DELETE None

Get a list of all saved properties created or edited during a specified time frame of up to 1 week.

  • GET

    • primary request ID: none
    • secondary request ID: none
    • additional input:
      • interval optional - the number of hours worth of data to return.
        • This must be a numeric value but can be an integer or a decimal. E.g. to get the last 90 minutes you would use an interval value of 1.5.
          • Up to 4 digits after the decimal point will be tolerated, additional precision will be rounded off.
          • Intervals will also be rounded to the nearest second.
        • The interval specifies the number of hours before the startDatetime from which lead information will be returned.
        • Minimum value: 0.0166 (~ 1 minute). Maximum value: 168 (1 week).
        • If no value is specified 1 hour will we used.
      • startDatetime optional - the date and time to from which the interval counts back.
        • This is the date and time closest to now from which you want lead information. E.g. if you want all leads created on New Year's Day you could use an interval of 24 plus a startDatetime of 2013-01-01 23:59:59. This will pull data from the very end of the day to 24 hours previous.
        • Format: YYYY-MM-DD hh:mm:ss
        • This method currently assumes the date passed will be UTC
        • If no value is specified the current date/time will be used
      • dateType optional - there are several dates associated with a lead, this will specify is being used to return information.
        • Possible Values:
          • created - set at the time the search is saved.
          • lastEdited - set any time search information is edited.
        • If no value is specified created will be used.
    • output: search ID, the applicable client account ID, lead ID, page ID, search name, search parameters, lead will receive property updates (y/n), created date, last edited date
    • note: For bandwidth and memory considerations there is a limit of 5,000 on the number of searches that can be returned in any single request.
    // access URL and request method
    $url = 'https://api.idxbroker.com/partners/aggregatedproperties?interval=24&startDatetime=2012-01-01+23:59:59&dateType=created';
    $method = 'GET';
    
    // headers (required and optional)
    $headers = array(
    	'Content-Type: application/x-www-form-urlencoded', // required
    	'accesskey: abcdefghijklmnopqrstuvwx', // required - replace with your own
    	'outputtype: json' // optional - overrides the preferences in our API control page
    );
    
    // set up cURL
    $handle = curl_init();
    curl_setopt($handle, CURLOPT_URL, $url);
    curl_setopt($handle, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($handle, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false);
    
    // exec the cURL request and returned information. Store the returned HTTP code in $code for later reference
    $response = curl_exec($handle);
    $code = curl_getinfo($handle, CURLINFO_HTTP_CODE);
    
    if ($code >= 200 || $code < 300)
    	$properties = json_decode($response,true);
    else
    	$error = $code;
    											
  • POST None

  • PUT None

  • DELETE None

Get a list of all leads traffic history during a specified time frame of up to 1 week.

  • GET

    • primary request ID: none
    • secondary request ID: none
    • additional input:
      • interval optional - the number of hours worth of data to return.
        • This must be a numeric value but can be an integer or a decimal. E.g. to get the last 90 minutes you would use an interval value of 1.5.
          • Up to 4 digits after the decimal point will be tolerated, additional precision will be rounded off.
          • Intervals will also be rounded to the nearest second.
        • The interval specifies the number of hours before the startDatetime from which lead traffic history will be returned.
        • Minimum value: 0.0166 (~ 1 minute). Maximum value: 168 (1 week).
        • If no value is specified 1 hour will we used.
      • startDatetime optional - the date and time to from which the interval counts back.
        • This is the date and time closest to now from which you want lead traffic history. E.g. if you want all lead traffic history created on New Year's Day you could use an interval of 24 plus a startDatetime of 2013-01-01 23:59:59. This will pull data from the very end of the day to 24 hours previous.
        • Format: YYYY-MM-DD hh:mm:ss
        • This method currently assumes the date passed will be UTC
        • If no value is specified the current date/time will be used
    • output: the applicable client account ID, date, lead ID, IP , page, referrer
    • note: For bandwidth and memory considerations there is a limit of 5,000 on the number of searches that can be returned in any single request.
    // access URL and request method
    $url = 'https://api.idxbroker.com/partners/aggregatedleadtraffic?interval=24&startDatetime=2012-01-01+23:59:59';
    $method = 'GET';
    
    // headers (required and optional)
    $headers = array(
    	'Content-Type: application/x-www-form-urlencoded', // required
    	'accesskey: abcdefghijklmnopqrstuvwx', // required - replace with your own
    	'outputtype: json' // optional - overrides the preferences in our API control page
    );
    
    // set up cURL
    $handle = curl_init();
    curl_setopt($handle, CURLOPT_URL, $url);
    curl_setopt($handle, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($handle, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false);
    
    // exec the cURL request and returned information. Store the returned HTTP code in $code for later reference
    $response = curl_exec($handle);
    $code = curl_getinfo($handle, CURLINFO_HTTP_CODE);
    
    if ($code >= 200 || $code < 300)
    	$properties = json_decode($response,true);
    else
    	$error = $code;
    											
  • POST None

  • PUT None

  • DELETE None

Get a list of featured MLS properties listed over a specified time frame of up to 1 year per query.

  • GET

    • primary request ID: none
    • secondary request ID: none
    • additional input:
      • interval optional - the number of hours worth of data to return.
        • This must be a numeric value but can be an integer or a decimal. E.g. to get the last 90 minutes you would use an interval value of 1.5.
          • Up to 4 digits after the decimal point will be tolerated, additional precision will be rounded off.
          • Intervals will also be rounded to the nearest second.
        • The interval specifies the number of hours before the startDatetime from which lead information will be returned.
        • Minimum value: 0.0166 (~ 1 minute). Maximum value: 8765 (1 year).
        • If no value is specified 720 hours (~1 month) will we used.
      • startDatetime optional - the date and time to from which the interval counts back.
        • This is the date and time closest to now from which you want lead information. E.g. if you want all leads created on New Year's Day you could use an interval of 24 plus a startDatetime of 2013-01-01 23:59:59. This will pull data from the very end of the day to 24 hours previous.
        • Format: YYYY-MM-DD hh:mm:ss
        • This method currently assumes the date passed will be UTC
        • If no value is specified the current date/time will be used
      • dateType optional - there are several dates associated with a lead, this will specify is being used to return information.
        • Possible Values:
          • dateAdded - the date/time at which the IDX system first added the listing to our system.
          • dateModified - the date time the IDX system last saw a change in data as listed in the MLS. Note that this value will be 0000-00-00 00:00:00 if the property has not changed in the time that it has been in our system.
        • If no value is specified dateAdded will be used.
    • output: the following fields will be included in the output:
      • acres
      • address
      • bedrooms
      • cityID
      • cityName
      • coListingAgentID
      • coListingOfficeID
      • countyID
      • countyName
      • dateAdded (first seen by the IDX system)
      • dateModified
      • displayAddress
      • fullBaths
      • latitude
      • listingAgentID
      • listingID
      • listingOfficeID
      • listingPrice
      • longitude
      • mlsPtID
      • openHouses
      • partialBaths
      • propStatus
      • propType
      • remarksConcat
      • rntLse
      • rntLsePrice
      • rntLsePriceOffSeason
      • sqFt
      • state
      • streetDirection
      • streetName
      • streetNumber
      • totalBaths
      • unitNumber
      • virtualTours
      • yearBuilt
      • zipcode
      • zip4
      • zoning
      These fields may or may not be populated depending on how the information is given to us by the MLS.
    // access URL and request method
    $url = 'https://api.idxbroker.com/partners/aggregatedfeatured?interval=24&startDatetime=2012-01-01+23:59:59&dateType=dateAdded';
    $method = 'GET';
    
    // headers (required and optional)
    $headers = array(
    	'Content-Type: application/x-www-form-urlencoded', // required
    	'accesskey: abcdefghijklmnopqrstuvwx', // required - replace with your own
    	'outputtype: json' // optional - overrides the preferences in our API control page
    );
    
    // set up cURL
    $handle = curl_init();
    curl_setopt($handle, CURLOPT_URL, $url);
    curl_setopt($handle, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($handle, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false);
    
    // exec the cURL request and returned information. Store the returned HTTP code in $code for later reference
    $response = curl_exec($handle);
    $code = curl_getinfo($handle, CURLINFO_HTTP_CODE);
    
    if ($code >= 200 || $code < 300)
    	$properties = json_decode($response,true);
    else
    	$error = $code;
    											
  • POST None

  • PUT None

  • DELETE None

Get a list of supplemental (non-MLS) properties listed over a specified time frame of up to 1 year per query.

  • GET

    • primary request ID: none
    • secondary request ID: none
    • additional input:
      • interval optional - the number of hours worth of data to return.
        • This must be a numeric value but can be an integer or a decimal. E.g. to get the last 90 minutes you would use an interval value of 1.5.
          • Up to 4 digits after the decimal point will be tolerated, additional precision will be rounded off.
          • Intervals will also be rounded to the nearest second.
        • The interval specifies the number of hours before the startDatetime from which lead information will be returned.
        • Minimum value: 0.0166 (~ 1 minute). Maximum value: 8765 (1 year).
        • If no value is specified 720 hours (~1 month) will we used.
      • startDatetime optional - the date and time to from which the interval counts back.
        • This is the date and time closest to now from which you want lead information. E.g. if you want all leads created on New Year's Day you could use an interval of 24 plus a startDatetime of 2013-01-01 23:59:59. This will pull data from the very end of the day to 24 hours previous.
        • Format: YYYY-MM-DD hh:mm:ss
        • This method currently assumes the date passed will be UTC
        • If no value is specified the current date/time will be used
      • dateType optional - there are several dates associated with a lead, this will specify is being used to return information.
        • Possible Values:
          • dateAdded - the date/time at which the IDX system first added the listing to our system.
          • dateModified - the date time the IDX system last saw a change in data as listed in the MLS. Note that this value will be 0000-00-00 00:00:00 if the property has not changed in the time that it has been in our system.
        • If no value is specified dateAdded will be used.
    • output: the following fields will be included in the output:
      • acres
      • address
      • bedrooms
      • cityID
      • cityName
      • coListingAgentID
      • coListingOfficeID
      • countyID
      • countyName
      • dateAdded
      • dateModified
      • displayAddress
      • fullBaths
      • latitude
      • listingAgentID
      • listingID
      • listingOfficeID
      • listingPrice
      • longitude
      • mlsPtID
      • openHouses
      • partialBaths
      • propStatus
      • propType
      • remarksConcat
      • rntLse
      • rntLsePrice
      • rntLsePriceOffSeason
      • sqFt
      • state
      • streetDirection
      • streetName
      • streetNumber
      • totalBaths
      • unitNumber
      • virtualTours
      • yearBuilt
      • zipcode
      • zip4
      • zoning
      These fields may or may not be populated depending on how the information was entered into the IDX system.
    // access URL and request method
    $url = 'https://api.idxbroker.com/partners/aggregatedsupplemental?interval=24&startDatetime=2012-01-01+23:59:59&dateType=dateAdded';
    $method = 'GET';
    
    // headers (required and optional)
    $headers = array(
    	'Content-Type: application/x-www-form-urlencoded', // required
    	'accesskey: abcdefghijklmnopqrstuvwx', // required - replace with your own
    	'outputtype: json' // optional - overrides the preferences in our API control page
    );
    
    // set up cURL
    $handle = curl_init();
    curl_setopt($handle, CURLOPT_URL, $url);
    curl_setopt($handle, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($handle, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false);
    
    // exec the cURL request and returned information. Store the returned HTTP code in $code for later reference
    $response = curl_exec($handle);
    $code = curl_getinfo($handle, CURLINFO_HTTP_CODE);
    
    if ($code >= 200 || $code < 300)
    	$properties = json_decode($response,true);
    else
    	$error = $code;
    											
  • POST None

  • PUT None

  • DELETE None

Get a list of sold/pending MLS properties listed over a specified time frame of up to 1 year per query.

  • GET

    • primary request ID: none
    • secondary request ID: none
    • additional input:
      • interval optional - the number of hours worth of data to return.
        • This must be a numeric value but can be an integer or a decimal. E.g. to get the last 90 minutes you would use an interval value of 1.5.
          • Up to 4 digits after the decimal point will be tolerated, additional precision will be rounded off.
          • Intervals will also be rounded to the nearest second.
        • The interval specifies the number of hours before the startDatetime from which lead information will be returned.
        • Minimum value: 0.0166 (~ 1 minute). Maximum value: 8765 (1 year).
        • If no value is specified 720 hours (~1 month) will we used.
      • startDatetime optional - the date and time to from which the interval counts back.
        • This is the date and time closest to now from which you want lead information. E.g. if you want all leads created on New Year's Day you could use an interval of 24 plus a startDatetime of 2013-01-01 23:59:59. This will pull data from the very end of the day to 24 hours previous.
        • Format: YYYY-MM-DD hh:mm:ss
        • This method currently assumes the date passed will be UTC
        • If no value is specified the current date/time will be used
      • dateType optional - there are several dates associated with a lead, this will specify is being used to return information.
        • Possible Values:
          • dateAdded - the date/time at which the IDX system first added the listing to our system.
          • dateModified - the date time the IDX system last saw a change in data as listed in the MLS. Note that this value will be 0000-00-00 00:00:00 if the property has not changed in the time that it has been in our system.
          We are planning to add the ability to query by the date the property left the market and, for sold listings, the date it was sold in a future update.
        • If no value is specified dateAdded will be used.
    • output: the following fields will be included in the output:
      • acres
      • address
      • bedrooms
      • cityID
      • cityName
      • coListingAgentID
      • coListingOfficeID
      • countyID
      • countyName
      • dateAdded (first seen by the IDX system)
      • displayAddress
      • fullBaths
      • latitude
      • listingAgentID
      • listingID
      • listingOfficeID
      • listingPrice
      • longitude
      • mlsPtID
      • openHouses
      • partialBaths
      • propStatus
      • propType
      • remarksConcat
      • rntLse
      • rntLsePrice
      • rntLsePriceOffSeason
      • sqFt
      • state
      • streetDirection
      • streetName
      • streetNumber
      • totalBaths
      • unitNumber
      • virtualTours
      • yearBuilt
      • zipcode
      • zip4
      • zoning
      • backupDate (The date IDX saw the listing leave the market)
      • soldDate (added by the client)
      • soldPrice (added by the client)
      • archiveStatus (added by the client)
      These fields may or may not be populated depending on how the information is given to us by the MLS.
    // access URL and request method
    $url = 'https://api.idxbroker.com/partners/aggregatedsoldpending?interval=24&startDatetime=2012-01-01+23:59:59&dateType=dateAdded';
    $method = 'GET';
    
    // headers (required and optional)
    $headers = array(
    	'Content-Type: application/x-www-form-urlencoded', // required
    	'accesskey: abcdefghijklmnopqrstuvwx', // required - replace with your own
    	'outputtype: json' // optional - overrides the preferences in our API control page
    );
    
    // set up cURL
    $handle = curl_init();
    curl_setopt($handle, CURLOPT_URL, $url);
    curl_setopt($handle, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($handle, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false);
    
    // exec the cURL request and returned information. Store the returned HTTP code in $code for later reference
    $response = curl_exec($handle);
    $code = curl_getinfo($handle, CURLINFO_HTTP_CODE);
    
    if ($code >= 200 || $code < 300)
    	$properties = json_decode($response,true);
    else
    	$error = $code;
    											
  • POST None

  • PUT None

  • DELETE None

This method gives the status for all MLS listings (not supplemental) broken down by client account ID. This includes sold/pending listings with an unknown status which are not usually returned by sold/pending api methods. This is helping if you need to know when previously gathered featured properties have left the market.

  • GET

    • primary request ID: none
    • secondary request ID: none
    • additional input:
      • filterField optional the field to use when filtering output. Available values:
        • status
      • filterValue conditional on use of filterField - the value by which to filter. Available values:
        • active
        • unknown
        • sold
        • pending
        • contingent
    // access URL and request method
    $url = 'https://api.idxbroker.com/partners/aggregatedlistingstatus?filterField=status&filterValue=unknown';
    $method = 'GET';
    
    // headers (required and optional)
    $headers = array(
    	'Content-Type: application/x-www-form-urlencoded', // required
    	'accesskey: abcdefghijklmnopqrstuvwx', // required - replace with your own
    	'outputtype: json' // optional - overrides the preferences in our API control page
    );
    
    // set up cURL
    $handle = curl_init();
    curl_setopt($handle, CURLOPT_URL, $url);
    curl_setopt($handle, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($handle, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false);
    
    // exec the cURL request and returned information. Store the returned HTTP code in $code for later reference
    $response = curl_exec($handle);
    $code = curl_getinfo($handle, CURLINFO_HTTP_CODE);
    
    if ($code >= 200 || $code < 300)
    	$listings = json_decode($response,true);
    else
    	$error = $code;
    											
  • POST None

  • PUT None

  • DELETE None

Get a list of all agents for your clients.

  • GET

    • primary request ID: none
    • secondary request ID: none
    • additional input: none
    • output: all available APIs/Components
    // access URL and request method
    $url = 'https://api.idxbroker.com/partners/aggregatedagents';
    $method = 'GET';
    
    // headers (required and optional)
    $headers = array(
    	'Content-Type: application/x-www-form-urlencoded', // required
    	'accesskey: abcdefghijklmnopqrstuvwx', // required - replace with your own
    	'outputtype: json' // optional - overrides the preferences in our API control page
    );
    
    // set up cURL
    $handle = curl_init();
    curl_setopt($handle, CURLOPT_URL, $url);
    curl_setopt($handle, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($handle, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false);
    
    // exec the cURL request and returned information. Store the returned HTTP code in $code for later reference
    $response = curl_exec($handle);
    $code = curl_getinfo($handle, CURLINFO_HTTP_CODE);
    
    if ($code >= 200 || $code < 300)
    	$components = json_decode($response,true);
    else
    	$error = $code;
    											
  • POST None

  • PUT None

  • DELETE None