PHP bindings for Upwork API (OAuth2)

v2.2.0 2020-09-18 00:00 UTC

This package is not auto-updated.

Last update: 2021-01-08 16:01:48 UTC


License Latest Stable Version Package version Build status Monthly downloads SensioLabsInsight


This project provides a set of resources of Upwork API from http://developers.upwork.com based on OAuth 2.0.


These are the supported API resources:

  • My Info
  • Custom Payments
  • Hiring
  • Job and Freelancer Profile
  • Search Jobs and Freelancers
  • Organization
  • Messages
  • Time and Financial Reporting
  • Metadata
  • Snapshot
  • Team
  • Work Diary
  • Activities


Copyright 2018 Upwork Corporation. All Rights Reserved.

php-upwork-oauth2 is licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at


Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.


The usage of this API is ruled by the Terms of Use at:


Application Integration

To integrate this library you need to have:

  • PHP >= 5.6.0
  • Composer installed


In addition to this, a full example is available in the example directory. This includes example.php that gets an access token and requests the data.

There is also a composer.json included to use with Composer.


In order to easily integrate with your application we recommend using Composer to install the dependencies.

Below is a simple example of the composer.json file you can use:

    "name": "upwork/my-oauth2-app",
    "require": {
        "upwork/php-upwork-oauth2": "dev-master"

Installation using Composer

Add upwork/php-upwork-oauth2 to your composer.json, simple example:

    "name": "my/my-oauth-app",
    "require": {
        "upwork/php-upwork-oauth2": "v2.0.0" // note: the latest release is recommended

run the following command /usr/local/bin/composer.phar update

the output should look similar to

Loading composer repositories with package information
Updating dependencies (including require-dev)
  - Installing upwork/php-upwork-oauth2 (v2.0.0)
    Downloading: 100%         

Writing lock file
Generating autoload files

IMPORTANT: The library supports different OAuth2 clients, by default it uses thephpleague/oauth2-client. In case you don't want to use it, or you don't have the possibility to install it, you can create your own wrapper (check vendor/upwork/php-upwork-oauth2/src/Upwork/API/AuthTypes/ to see how it works).

copy vendor/upwork/php-upwork-oauth2/example/example.php to the myapp.php if you have

NOTE: if you use your own wrapper, update 'authType' property in the configuration section of myapp.php and specify the name of your handler.

open myapp.php and type the clientId, clientSecret and redirectUri that you previously got from the API Center. Please, read carefully the comments in the example.

That's all. Run your app as php myapp.php and have fun.