PHPackages                             breakpoint/etsy-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. breakpoint/etsy-php

ActiveLibrary[API Development](/categories/api)

breakpoint/etsy-php
===================

PHP wrapper for the Etsy api.

0.2.1(3y ago)7140[1 issues](https://github.com/breakpoint/etsy-php/issues)MITPHP

Since Jan 30Pushed 3y ago1 watchersCompare

[ Source](https://github.com/breakpoint/etsy-php)[ Packagist](https://packagist.org/packages/breakpoint/etsy-php)[ RSS](/packages/breakpoint-etsy-php/feed)WikiDiscussions main Synced 3w ago

READMEChangelogDependencies (3)Versions (2)Used By (0)

Etsy PHP API Wrapper
====================

[](#etsy-php-api-wrapper)

[![Version](https://camo.githubusercontent.com/e4563c14607761852b5919b91f96f3d5e8c637cce1514ee3760d80b33d27e4d9/68747470733a2f2f706f7365722e707567782e6f72672f627265616b706f696e742f657473792d7068702f76657273696f6e)](//packagist.org/packages/breakpoint/etsy-php)[![Total Downloads](https://camo.githubusercontent.com/517f191b478bc53f41c2597e26e2c6b5229faa32e003c850f5cc5b7ee2a3c222/68747470733a2f2f706f7365722e707567782e6f72672f627265616b706f696e742f657473792d7068702f646f776e6c6f616473)](//packagist.org/packages/breakpoint/etsy-php)

This library aims to provide an easy way to access all methods of the [Etsy](https://etsy.com) API. The structure is based on the organization of the [Etsy API documentation](https://www.etsy.com/developers/documentation/reference/apimethod). Methods are organized based upon their "Type" such as Listing, User, etc.

### Table of Contents

[](#table-of-contents)

- [Quick Start](#quick-start)
- [Requests](#requests)
- [Results](#results)
- [OAuth](#oauth-requests)
- [Provisional Users](#provisional-users)
- [Advanced](#advanced)
- [Development](#development)

### Quick Start

[](#quick-start)

Install via [Composer](http://getcomposer.org/) by running:

```
composer require breakpoint/etsy-php
```

Usage to access all featured listings:

```
$esty = new \breakpoint\etsy\EtsyClient('your-keystring', 'your-secret');
$results = $etsy->listing->findAllFeaturedListings();

foreach ($results as $item) {
    echo $item->listing_id;
}
```

### Requests

[](#requests)

All requests originate with the `EtsyClient` object and are referenced as properties. These generally correspond to the Etsy API documentation with some variations. Three additional types are included but not documented: `application`, `baseline` and `server`. These are only referenced by results from the getMethodTable method.

```
$etsy->listing-> // method found in API documentation
```

#### Parameters

[](#parameters)

Parameters are specified using an array passes directly into the method you are performing.

```
$etsy->listing->getListing(['listing_id' => '123abc']);
```

#### Fields

[](#fields)

If you wish to specify [fields](https://www.etsy.com/developers/documentation/getting_started/resources#section_fields) to be returned then specify them first as an array.

```
$etsy->listing->fields(['listing_id', 'title', 'description', 'url'])->getListing(['listing_id' => '123abc']);
```

#### Associations

[](#associations)

Etsy allows you to request additional [Associations](https://www.etsy.com/developers/documentation/getting_started/resources#section_associations) be returned with your request. You must specify these first as an array.

```
$etsy->shop->associations(['Listings' => [
                'scope' => 'draft',
                'limit' => 10,
                'offset' => 0,
                'select' => array('listing_id', 'title'),
                // you can also specify sub-associations
                //'associations' => // scope, limit, select, etc
                ]])
                ->getShop(['shop_id' => '123abc']);
```

#### Data

[](#data)

All `PATCH`, `POST` and `PUT` requests also accept an array of data.

```
$etsy->userprofile->updateUserProfile(

    // first array is parameters
    ['user_id', 'user_123'],

    // second array is data you are changing
    ['first_name' => 'john', 'last_name' => 'developer']);
```

Results
-------

[](#results)

The `POST` method will always return an `EtsyObject` as the response. The `GET` method will return either a `EtsyResults` or `EtsyObject` based on how many items are expected to be returned. If you are fetching a listing then an `EtsyObject` will be returned while if you are fetching active listings then `EtsyResults` will be returned.

All other requests (`PUT`, `PATCH`, `DELETE`) will return a `true` or `false` depending upon their response.

*Note: return values have been generated automatically then manually reviewed. Please create an issue or pull request if value is not as expected.*

### EtsyResults

[](#etsyresults)

The `EtsyResults` object is a simple iterable and array accessible collection. All items within the collection are instances of `EtsyObject`. A few basic methods are available:

```
$results = $etsy->listing->findAllFeaturedListings();

$results[0]; // access the item at that position
$results->count(); // returns number of items
$results->first(); // access the first item
$results->add(object); // useful if you are performing requests with multiple pages
```

### EtsyObject

[](#etsyobject)

This simple object allows you to access the individual results as properties via magic methods.

```
$listing = $etsy->listing->getListing(['listing_id' => 'listing_123']);

echo $listing->title;
echo $listing->getType(); // 'Listing'
```

OAuth Requests
--------------

[](#oauth-requests)

All methods which require a [permission scope](https://www.etsy.com/developers/documentation/getting_started/oauth#section_permission_scopes) will need oauth access via an access and secret token. An easy way to generate these is by using `y0lk/oauth1-etsy`. You'll specify these values when creating the `EtsyClient` object.

```
$esty = new \breakpoint\etsy\EtsyClient('your-keystring', 'your-secret', 'access_token', 'token_secret');
```

Provisional Users
-----------------

[](#provisional-users)

By default, only the user who owns the application can authenticate and use it via oauth. To allow other users to use your application you must either request "full access" via the Etsy developers site or by adding them as [provisional users](https://groups.google.com/g/etsy-api-v2/c/_TA7DrM2uSU/m/rSs2INR9orQJ). This is made possible by two included method calls:

```
$etsy->application->addProvisional(['user_id' => 'user_123']);
$etsy->application->removeProvisional(['user_id' => 'user_123']);

// returns all users with access
$etsy->application->getProvisional();
```

Advanced
--------

[](#advanced)

If you prefer to receive the full response then use the `raw()` function on your request.

```
$raw = $etsy->listing->raw()->getTrendingListings();
```

Development
-----------

[](#development)

The `generate.php` file is included which creates resources based upon all known types returned from the API. This is meant to serve as a starting point when major changes are made to the API.

```
php generate.php
```

###  Health Score

21

—

LowBetter than 18% of packages

Maintenance17

Infrequent updates — may be unmaintained

Popularity16

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity36

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% 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

1249d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/03beade821b9682e295df3bc5e7b4e5b36bae654d2dc9ced7cf26ce4c289d292?d=identicon)[breakpoint](/maintainers/breakpoint)

---

Top Contributors

[![breakpoint](https://avatars.githubusercontent.com/u/10792467?v=4)](https://github.com/breakpoint "breakpoint (1 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

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

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

###  Alternatives

[statamic/cms

The Statamic CMS Core Package

4.8k3.6M981](/packages/statamic-cms)[tencentcloud/tencentcloud-sdk-php

TencentCloudApi php sdk

3741.3M46](/packages/tencentcloud-tencentcloud-sdk-php)[neuron-core/neuron-ai

The PHP Agentic Framework.

2.0k656.1k38](/packages/neuron-core-neuron-ai)[avalara/avataxclient

Client library for Avalara's AvaTax suite of business tax calculation and processing services. Uses the REST v2 API.

528.5M7](/packages/avalara-avataxclient)[files.com/files-php-sdk

Files.com PHP SDK

2481.1k](/packages/filescom-files-php-sdk)[aimeos/prisma

A powerful PHP package for integrating media related Large Language Models (LLMs) into your applications

1943.1k5](/packages/aimeos-prisma)

PHPackages © 2026

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