PHPackages                             tousanco/php-zaya - 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. tousanco/php-zaya

ActiveLibrary

tousanco/php-zaya
=================

using this package you can easily implement the zaya.io link shortener in your php application.

v1.1.24(2y ago)43.5k1MITPHPPHP &gt;=5.6

Since Aug 20Pushed 2y ago1 watchersCompare

[ Source](https://github.com/tousanco/php-zaya)[ Packagist](https://packagist.org/packages/tousanco/php-zaya)[ Docs](https://github.com/tousanco/php-zaya)[ RSS](/packages/tousanco-php-zaya/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (4)Dependencies (3)Versions (9)Used By (1)

Zaya link shortener sdk for PHP
===============================

[](#zaya-link-shortener-sdk-for-php)

[![Check Imports](https://github.com/tousanco/php-zaya/actions/workflows/check_imports.yml/badge.svg?branch=master)](https://github.com/tousanco/php-zaya/actions/workflows/check_imports.yml)

using this package you can easily implement the [Zaya](https://zaya.io) link shortener in your php application.

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

[](#installation)

You can install the package via composer:

```
composer require tousanco/php-zaya
```

Usage
-----

[](#usage)

First you need to get your API key from [Zaya](https://zaya.io/developers/api)

### Instantiate

[](#instantiate)

```
use Tousanco\PhpZaya\Link;
use GuzzleHttp\Client;

$apiKey = 'your api key';

// available classes: Link, Space, Domain, Account, Stats.
$instance = Link::instance($apiKey);
// OR
$client = new Client();
$instance = (new Link($client, $apiKey));
```

### Links

[](#links)

```
use Tousanco\PhpZaya\Link;

$instanceLink = Link::instance($apiKey);

$listParams = [
    // All options nullable

    // search (string)
    'search' => 'search key',
    // by (in:title,alias,url) null for all.
    'by' => 'title',
    // ids comma separated (string)
    'ids' => '1,2,3,4,5',
    /*
     * status (int|in:0,1,2,3,4,5,6)
     * 0 or null for all
     * 1 for active
     * 2 for pending
     * 3 for deactivate
     * 4 for suspended
     * 5 for expired
     */
    'status' => 1,
    // (int) space-id
    'space' => 1,
    // (int) domain-id
    'domain' => 1,
    // favorites (bool|in:1) null for false
    'favorites' => 1,
    /*
     * sort (string|in:desc,asc,max,min)
     * max for maximum clicks
     * min for minimum clicks
     */
    'sort' => 'desc',
];
$links = $instanceLink->all($listParams);

$createOrUpdateParams = [
    // All options nullable
    'alias' => 'string',
    'password' => 'string',
    'space' => 'int',
    'domain' => 'int',
    'disabled' => 'int',
    'public' => 'int',
    'description' => 'string',
    'expiration_url' => 'url',
    'expiration_date' => 'Y-m-d',
    'expiration_time' => 'HH:MM',
    'expiration_clicks' => 'int',
];
$link = $instanceLink->create('https://example.com', $createOrUpdateParams);

$linkId = 1;
$link = $instanceLink->details($linkId);

$link = $instanceLink->update($linkId, $createOrUpdateParams);

$instanceLink->delete($linkId);
```

### Spaces

[](#spaces)

```
use Tousanco\PhpZaya\Space;

$instanceSpace = Space::instance($apiKey);

$listParams = [
    // All options nullable
    'search' => 'string key',
    // sort (string|in:desc,asc)
    'sort' => 'desc',
];
$spaces = $instanceSpace->all($listParams);

$params = ['name' => 'sample space', 'color' => '#fff'];
$space = $instanceSpace->create($params);

$spaceId = 1;
$space = $instanceSpace->details($spaceId);

$space = $instanceSpace->update($spaceId, $params);

$instanceSpace->delete($spaceId);
```

### Domains

[](#domains)

```
use Tousanco\PhpZaya\Domain;

$instanceDomain = Domain::instance($apiKey);

$listParams = [
    // All options nullable
    'search' => 'string key',
    // sort (string|in:desc,asc)
    'sort' => 'desc',
];
$domains = $instanceDomain->all($listParams);

$params = [
    'name' => 'your-domain.com',
    // index_page and not_found_page nullable.
    'index_page' => 'url',
    'not_found_page' => 'url',
];
$domain = $instanceDomain->create($params);

$domainId = 1;
$domain = $instanceDomain->details($domainId);

// You cannot update the domain name
$domain = $instanceDomain->update($domainId, $params);

$instanceDomain->delete($domainId);
```

### Stats

[](#stats)

```
use Tousanco\PhpZaya\Stats;

$instanceStats = Stats::instance($apiKey);

$linkId = 1;
// The default value is the current day's
$params = ['from' => 'Y-m-d H:i:s', 'to' => 'Y-m-d H:i:s'];

$total = $instanceStats->total($linkId, $params);

$clicks = $instanceStats->clicks($linkId, $params);

$referrers = $instanceStats->referrers($linkId, $params);

$countries = $instanceStats->countries($linkId, $params);

$languages = $instanceStats->languages($linkId, $params);

$browsers = $instanceStats->browsers($linkId, $params);

$devices = $instanceStats->devices($linkId, $params);

$operatingSystems = $instanceStats->operatingSystems($linkId, $params);
```

### Account

[](#account)

```
use Tousanco\PhpZaya\Account;

$accountInstance = Account::instance($apiKey);

$account = $accountInstance->details();
```

### Timeout

[](#timeout)

You can set timeout in two ways:

- When you create an object from the zaya class
- When you call the methods of sending the request

```
$baseUrl = 'https://zaya.io/api/v1';
$timeout = 5;
$instance = Link::instance($apiKey, $baseUrl, $timeout);
```

```
$timeout = 5;
$linkId = 22;
$instance->details($linkId, $timeout);
```

Documentation
-------------

[](#documentation)

See the [documentation](https://zaya.io/developers) for more details.

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity21

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity43

Maturing project, gaining track record

 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 ~19 days

Recently: every ~30 days

Total

8

Last Release

867d ago

PHP version history (2 changes)v1.0.0PHP &gt;=7.1.3

v1.1.0PHP &gt;=5.6

### Community

Maintainers

![](https://www.gravatar.com/avatar/59ee3f7e96052ac98a9921fe9a640331a4e0ae85a12c772afcbff082a9cf26ed?d=identicon)[tousanco](/maintainers/tousanco)

---

Top Contributors

[![alikhosravidev](https://avatars.githubusercontent.com/u/49164621?v=4)](https://github.com/alikhosravidev "alikhosravidev (17 commits)")

---

Tags

link-shortenerzaya

###  Code Quality

TestsPHPUnit

### Embed Badge

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

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

###  Alternatives

[neuron-core/neuron-ai

The PHP Agentic Framework.

1.8k245.3k21](/packages/neuron-core-neuron-ai)[tencentcloud/tencentcloud-sdk-php

TencentCloudApi php sdk

3731.2M42](/packages/tencentcloud-tencentcloud-sdk-php)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

245.2k](/packages/aedart-athenaeum)

PHPackages © 2026

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