{"id":15798457,"url":"https://github.com/chanced/rets-client","last_synced_at":"2025-05-09T01:24:50.538Z","repository":{"id":20100428,"uuid":"23369954","full_name":"chanced/rets-client","owner":"chanced","description":"Node.js RETS Client (Real Estate Transaction Standard)","archived":false,"fork":false,"pushed_at":"2014-08-26T17:24:31.000Z","size":75,"stargazers_count":5,"open_issues_count":0,"forks_count":76,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-10-06T00:41:22.362Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chanced.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-08-26T23:16:04.000Z","updated_at":"2023-11-27T06:08:35.000Z","dependencies_parsed_at":"2022-07-17T20:40:51.727Z","dependency_job_id":null,"html_url":"https://github.com/chanced/rets-client","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chanced%2Frets-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chanced%2Frets-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chanced%2Frets-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chanced%2Frets-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chanced","download_url":"https://codeload.github.com/chanced/rets-client/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253172649,"owners_count":21865556,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-05T00:41:39.904Z","updated_at":"2025-05-09T01:24:50.491Z","avatar_url":"https://github.com/chanced.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"rets-client\n===========\n\nNode.js RETS client (Real Estate Transaction Standard)\n\nLibrary was developed against a server running RETS v1.7.2.\n\n[RETS Specification](http://www.reso.org/specifications)\n\n#### Example RETS Session\n\n\n##### Create a Client Instance (Login)\n\n```javascript\n    //create rets-client\n    var client = require('rets-client').getClient(retsLoginUrl, retsUser, retsPassword);\n\n    //connection success event\n    client.once('connection.success', function() {\n        console.log(\"RETS Server connection success!\");\n        console.log(\"RETS version: \" + client.retsVersion);\n        console.log(\"Member name: \" + client.memberName);\n    });\n\n    //connection failure event\n    client.once('connection.failure', function(error) {\n        console.log(\"connection to RETS server failed ~ %s\", error);\n    });\n```    \n\n##### Get Resources Metadata\n\n```javascript\n    //get resources metadata\n    var client = require('rets-client').getClient(retsLoginUrl, retsUser, retsPassword);\n\n    client.once('connection.success', function() {\n        client.getResources();\n\n        client.once('metadata.resources.success', function(data) {\n            console.log(data.Version);\n            console.log(data.Date);\n            for(var dataItem = 0; dataItem \u003c data.Resources.length; dataItem++) {\n                console.log(data.Resources[dataItem].ResourceID);\n                console.log(data.Resources[dataItem].StandardName);\n                console.log(data.Resources[dataItem].VisibleName);\n                console.log(data.Resources[dataItem].ObjectVersion);\n            }\n        });\n    });\n\n```\n\n##### Get Class Metadata\n\n```javascript\n    //get class metadata\n    var client = require('rets-client').getClient(retsLoginUrl, retsUser, retsPassword);\n\n    client.once('connection.success', function() {\n        client.getClass(\"Property\");\n\n        client.once('metadata.class.success', function(data) {\n            console.log(data.Version);\n            console.log(data.Date);\n            console.log(data.Resource);\n            for(var classItem = 0; classItem \u003c data.Classes.length; classItem++) {\n                console.log(data.Classes[classItem].ClassName);\n                console.log(data.Classes[classItem].StandardName);\n                console.log(data.Classes[classItem].VisibleName);\n                console.log(data.Classes[classItem].TableVersion);\n            }\n        });\n    });\n```\n##### Get Field Metadata\n\n```javascript\n    //get field data\n    var client = require('rets-client').getClient(retsLoginUrl, retsUser, retsPassword);\n\n    client.once('connection.success', function() {\n        client.getTable(\"Property\", \"RESI\");\n\n        client.once('metadata.table.success', function(data) {\n            console.log(data.Version);\n            console.log(data.Date);\n            console.log(data.Resource);\n            console.log(data.Class);\n\n            for(var tableItem = 0; tableItem \u003c data.Fields.length; tableItem++) {\n                console.log(data.Fields[tableItem].MetadataEntryID);\n                console.log(data.Fields[tableItem].SystemName);\n                console.log(data.Fields[tableItem].ShortName);\n                console.log(data.Fields[tableItem].LongName);\n                console.log(data.Fields[tableItem].DataType);\n            }\n\n        });\n    });\n```\n\n##### Perform a Query\n\n```javascript\n    //perform a query using DQML\n    var client = require('rets-client').getClient(retsLoginUrl, retsUser, retsPassword);\n\n    client.once('connection.success', function() {\n\n        //get open house fields\n        client.getTable(\"OpenHouse\", \"OPENHOUSE\");\n        var fields;\n\n        client.once('metadata.table.success', function(table) {\n\n            fields = table.Fields;\n\n            //pass resource, class, and DQML query\n            client.query(\"OpenHouse\", \"OPENHOUSE\", \n            \"(OpenHouseType=PUBLIC),(ActiveYN=1)\", function(error, data) {\n\n                if (error) {\n                    console.log(error);\n                    return;\n                }\n\n                //iterate through search results\n                for(var dataItem = 0; dataItem \u003c data.length; dataItem++) {\n                    console.log(\"-------- Open House --------\")\n\n                    for(var fieldItem = 0; fieldItem \u003c fields.length; fieldItem++) {\n                        var systemStr = fields[fieldItem].SystemName;\n                        console.log(systemStr + \" : \" + data[dataItem][systemStr]);\n                    }\n\n                    console.log(\"\\n\");\n                }\n            });\n        });\n    });\n```\n##### Retrieve Large Photos of a Property\n\n```javascript\n    //get photos\n    var client = require('rets-client').getClient(retsLoginUrl, retsUser, retsPassword);\n\n    client.once('connection.success', function() {\n\n        client.getPhotos(\"Property\", \"LargePhoto\", \"123456789\", function(error, dataList) {\n            if (error) {\n                console.log(error);\n                return;\n            }\n\n            for(var i = 0; i \u003c dataList.length; i++) {\n                console.log(\"Photo \" + (i+1) + \" MIME type: \" + dataList[i].mime);\n                \n                require('fs').writeFile(\n                    \"imgs/photo\"+(i+1)+\".\"+dataList[i].mime.match(/image\\/(\\w+)/i)[1], \n                    dataList[i].buffer\n                );\n            }\n        });\n    });\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchanced%2Frets-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchanced%2Frets-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchanced%2Frets-client/lists"}