PHPackages                             reso/reso-php - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. reso/reso-php

ActiveLibrary[API Development](/categories/api)

reso/reso-php
=============

RESO PHP SDK / Library

1.0(8y ago)624.2k↓100%3[9 issues](https://github.com/RESO-RETS/RESOWebAPIReferenceClientinPHP/issues)[3 PRs](https://github.com/RESO-RETS/RESOWebAPIReferenceClientinPHP/pulls)MITPHPPHP &gt;=5.6

Since Apr 10Pushed 2y ago3 watchersCompare

[ Source](https://github.com/RESO-RETS/RESOWebAPIReferenceClientinPHP)[ Packagist](https://packagist.org/packages/reso/reso-php)[ Docs](https://www.reso.org/)[ RSS](/packages/reso-reso-php/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)Dependencies (1)Versions (2)Used By (0)

Overview
========

[](#overview)

The goal of this library is to allow developers to make basic Web API requests using HTTP and OAuth2. Those who need to parse OData metadata will need to add additional handling for the [OData XML Metadata format](https://docs.oasis-open.org/odata/odata-csdl-xml/v4.01/os/schemas/).

See [RESO's Web API Core specification](https://github.com/RESOStandards/reso-web-api-specifications#web-api-core-endorsement) for more information about which queries servers should support.

Note that RESO is not currently maintaining this codebase, but contributions are welcome. Please open a pull request and it will be reviewed and merged.

RESO WebAPI Client PHP SDK
==========================

[](#reso-webapi-client-php-sdk)

The RESO WebAPI Client PHP SDK for PHP allows developers to build applications with RESO API queries for listing data retrieval. For more information on the Real Estate Standards Organization (RESO) please visit [www.reso.org](http://www.reso.org) or contact . Developers wishing to better understand how to use and contribute to our standards visit [RESO Developers FAQ](https://www.reso.org/developer-faqs/working-with-github/).

Specific questions about this repository should be posted to the 'Issues' section with the [Issue Template](ISSUE_TEMPLATE.md).

Requirements
------------

[](#requirements)

PHP 5.3.3 and later.

Composer
--------

[](#composer)

You can install the bindings via [Composer](http://getcomposer.org/). Run the following command:

```
composer require reso/reso-php
```

To use the bindings, use Composer's [autoload](https://getcomposer.org/doc/01-basic-usage.md#autoloading):

```
require_once('vendor/autoload.php');
```

Manual Installation
-------------------

[](#manual-installation)

If you do not wish to use Composer, you can download the [latest release](https://github.com/RESO-RETS/RESOWebAPIReferenceClientinPHP/releases). Then, to use the bindings, include the `init.php` file.

```
require_once('/path/to/reso-php-sdk/init.php');
```

Dependencies
------------

[](#dependencies)

The following PHP extensions are required for all the RESO WebAPI Client PHP SDK functions to work properly:

- [`curl`](https://secure.php.net/manual/en/book.curl.php)
- [`json`](https://secure.php.net/manual/en/book.json.php)
- [`mbstring`](https://secure.php.net/manual/en/book.mbstring.php)
- [`dom`](https://secure.php.net/manual/en/book.dom.php)

If you use Composer, these dependencies will be handled automatically. If you install manually, you'll want to make sure that these extensions are available.

Getting Started
---------------

[](#getting-started)

Simple usage looks like:

```
// Set the variables
RESO\RESO::setClientId('YOUR_CLIENT_ID');
RESO\RESO::setClientSecret('YOUR_CLIENT_SECRET');
RESO\RESO::setAPIAuthUrl('https://op.api.crmls.org/identity/connect/authorize');
RESO\RESO::setAPITokenUrl('https://op.api.crmls.org/identity/connect/token');
RESO\RESO::setAPIRequestUrl('https://h.api.crmls.org/RESO/OData/');
// Authorize user
$auth_code = RESO\OpenIDConnect::authorize('YOUR_USERNAME', 'YOUR_PASSWORD', 'https://openid.reso.org/', 'ODataApi');
// Get access token
RESO\RESO::setAccessToken(RESO\OpenIDConnect::requestAccessToken($auth_code, 'https://openid.reso.org/', 'ODataApi'));
// Set the Accept header (if needed)
RESO\Request::setAcceptType("json");
// Retrieve top 10 properties from the RESO API endpoint
$data = RESO\Request::request('Property?\$top=10', 'json', true);

// Display records
print_r($data);
```

Example apps
------------

[](#example-apps)

Several usage examples are provided in the [`examples/`](https://github.com/RESO-RETS/RESOWebAPIReferenceClientinPHP/tree/master/examples) folder:

- [`cli-example`](https://github.com/RESO-RETS/RESOWebAPIReferenceClientinPHP/tree/master/examples/cli-example) - provides a sample console application to query RESO API data;
- [`web-example`](https://github.com/RESO-RETS/RESOWebAPIReferenceClientinPHP/tree/master/examples/web-callback-example) - provides a sample PHP + HTML application to login (auth done on server-side) and execute RESO API requests, retrieve the data;
- [`web-callback-example`](https://github.com/RESO-RETS/RESOWebAPIReferenceClientinPHP/tree/master/examples/web-example) - provides a sample PHP application, which demonstrates the user auth using callback URL.

To configure the example app variables / settings - copy the config.php file in each example application as \_config.php and edit the variables accordingly.

Configuring a Logger
--------------------

[](#configuring-a-logger)

The SDK has a built-in logger for debug / testing purposes. Usage:

```
// Set logging
RESO\RESO::setLogEnabled(true); // enables logging in general. Default: false.
RESO\RESO::setLogConsole(true); // enables log messages to console.
RESO\RESO::setLogFile(true); // enabled log messages to be written to log file.
```

Unit Tests
----------

[](#unit-tests)

The SDK code set contains PHPUnit tests. The tests reside in the [`tests/`](https://github.com/RESO-RETS/RESOWebAPIReferenceClientinPHP/tree/master/tests) folder and covers core RESO WebAPI Client PHP SDK functionality testing.

To run the tests duplicate the tests/config.php file to tests/\_config.php and set the appropriate API variables. Then, execute:

```
./vendor/bin/phpunit --bootstrap init.php tests/

```

Contributing
------------

[](#contributing)

Please read the [contributing guidelines](CONTRIBUTING.md) if You are interested in contributing to the project.

###  Health Score

29

—

LowBetter than 59% of packages

Maintenance0

Infrequent updates — may be unmaintained

Popularity32

Limited adoption so far

Community15

Small or concentrated contributor base

Maturity58

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 59.1% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

2951d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/bdbadf5b6702c15e4bbc573506b3436ff197285f7467d2857f9e6d28bb1682ba?d=identicon)[MindaugasKiznis](/maintainers/MindaugasKiznis)

---

Top Contributors

[![kiznis](https://avatars.githubusercontent.com/u/194841?v=4)](https://github.com/kiznis "kiznis (13 commits)")[![darnjo](https://avatars.githubusercontent.com/u/535358?v=4)](https://github.com/darnjo "darnjo (4 commits)")[![bobgott](https://avatars.githubusercontent.com/u/14927381?v=4)](https://github.com/bobgott "bobgott (3 commits)")[![ch3k1](https://avatars.githubusercontent.com/u/10967829?v=4)](https://github.com/ch3k1 "ch3k1 (2 commits)")

---

Tags

up-for-adoptionphpapisdkRESO

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/reso-reso-php/health.svg)

```
[![Health](https://phpackages.com/badges/reso-reso-php/health.svg)](https://phpackages.com/packages/reso-reso-php)
```

###  Alternatives

[jstolpe/instagram-graph-api-php-sdk

Instagram Graph API PHP SDK

13998.4k2](/packages/jstolpe-instagram-graph-api-php-sdk)[clever/clever-php

231.6k](/packages/clever-clever-php)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
