PHPackages                             webwinkelkeur/client - 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. [HTTP &amp; Networking](/categories/http)
4. /
5. webwinkelkeur/client

ActiveLibrary[HTTP &amp; Networking](/categories/http)

webwinkelkeur/client
====================

A client for the WebwinkelKeur API

1.4(5y ago)011.5k↓44.4%[1 issues](https://github.com/webwinkelkeur/client/issues)3MITPHPPHP &gt;=5.5CI failing

Since May 9Pushed 5y agoCompare

[ Source](https://github.com/webwinkelkeur/client)[ Packagist](https://packagist.org/packages/webwinkelkeur/client)[ RSS](/packages/webwinkelkeur-client/feed)WikiDiscussions master Synced 1mo ago

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

WebwinkelKeur API Client
========================

[](#webwinkelkeur-api-client)

This is a web client for the WebwinkelKeur API.

The documentation of the API is available at .

Should you experience any issues with the API client, feel free to open a [GitHub issue](https://github.com/webwinkelkeur/client/issues).

Installation
------------

[](#installation)

You can use `composer` to install the API client into your project:

```
composer require webwinkelkeur/client

```

Usage
-----

[](#usage)

To send requests to the API, you need your WebwinkelKeur ID and authentication token.

```
use WebwinkelKeur\Client;
use WebwinkelKeur\Client\Request;

$webwinkelKeurClient = new Client($id, $authToken);
```

### Sending invitations

[](#sending-invitations)

```
$invitation = new Request\Invitation();
$invitation
    ->setCustomerName('John Doe')
    ->setEmailAddress('john.doe@example.com')
    ->setPhoneNumbers(['+1.2024561111', '+1.2024561414'])
    ->setOrderNumber(184553)
    ->setOrderTotal(23.55);

try {
    $webwinkelKeurClient->sendInvitation($invitation);
    echo 'Success!';
} catch (Client\Exception $e) {
    echo $e->getMessage();
}
```

### Retrieving sent invitations

[](#retrieving-sent-invitations)

```
try {
    foreach ($webwinkelKeurClient->getSentInvitations() as $sentInvitation) {
        echo 'Invitation for order ' . $sentInvitation->getOrderNumber()
            . ' was sent on ' . $sentInvitation->getCreatedAt()->format('r')
            . ' to ' . $sentInvitation->getEmail() . "\n";
    }
} catch (Client\Exception $e) {
    echo $e->getMessage();
}
```

### Retrieving ratings

[](#retrieving-ratings)

```
try {
    foreach ($webwinkelKeurClient->getRatings() as $rating) {
        echo $rating->getName() . ' says "' . $rating->getComment() . "\"\n";
    }
} catch (Client\Exception $e) {
    echo $e->getMessage();
}
```

### Retrieving ratings summary

[](#retrieving-ratings-summary)

```
try {
    $ratingsSummary = $webwinkelKeurClient->getRatingsSummary();
    echo 'The average rating is ' . $ratingsSummary->getRatingAverage()
        . ' out of ' . $ratingsSummary->getAmount() . " ratings.";
} catch (Client\Exception $e) {
    echo $e->getMessage();
}
```

### Retrieving web shop details

[](#retrieving-web-shop-details)

```
try {
    $webshop = $webwinkelKeurClient->getWebshop();
    $address = $webshop->getAddress();
    echo $webshop->getName() . ' is located at '
        . $address->getNumber() . ' ' . $address->getStreet() . ', ' . $address->getCity();
} catch (Client\Exception $e) {
    echo $e->getMessage();
}
```

### Retrieving rich snippet

[](#retrieving-rich-snippet)

```
try {
    $richSnippet = $webwinkelKeurClient->getRichSnippet();
    echo $richSnippet;
} catch (Client\Exception $e) {
    echo $e->getMessage();
}
```

###  Health Score

32

—

LowBetter than 72% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity24

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity61

Established project with proven stability

 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

Every ~305 days

Total

4

Last Release

2017d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/5ac19cfdc39afe4a0bd82431db312dab301aca07f63c201bb05730b2e34794a9?d=identicon)[kiboit](/maintainers/kiboit)

---

Top Contributors

[![apeschar](https://avatars.githubusercontent.com/u/122977?v=4)](https://github.com/apeschar "apeschar (9 commits)")

---

Tags

apiclientresthttp clientweb servicewebwinkelkeur

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/webwinkelkeur-client/health.svg)

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

###  Alternatives

[eightpoints/guzzle-bundle

Integrates Guzzle 6.x, a PHP HTTP Client, into Symfony. Comes with easy and powerful configuration options and optional plugins.

45912.1M55](/packages/eightpoints-guzzle-bundle)[e-moe/guzzle6-bundle

Integrates Guzzle 6 into your Symfony application

11259.2k](/packages/e-moe-guzzle6-bundle)[ismaeltoe/osms

PHP library wrapper of the Orange SMS API.

4540.0k](/packages/ismaeltoe-osms)

PHPackages © 2026

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