PHPackages                             metaverse-systems/gandi-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. [Utility &amp; Helpers](/categories/utility)
4. /
5. metaverse-systems/gandi-client

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

metaverse-systems/gandi-client
==============================

Client for managing Gandi domains.

06PHP

Since Jun 30Pushed 1y agoCompare

[ Source](https://github.com/metaverse-systems/gandi-client)[ Packagist](https://packagist.org/packages/metaverse-systems/gandi-client)[ RSS](/packages/metaverse-systems-gandi-client/feed)WikiDiscussions main Synced today

READMEChangelogDependenciesVersions (1)Used By (0)

Gandi Client for Laravel
========================

[](#gandi-client-for-laravel)

A Laravel package for managing Gandi domains and DNS records through the Gandi API.

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

[](#installation)

Install the package via Composer:

```
composer require metaverse-systems/gandi-client
```

Configuration
-------------

[](#configuration)

### Environment Variables

[](#environment-variables)

Add your Gandi Personal Access Token to your `.env` file:

```
GANDI_PERSONAL_ACCESS_TOKEN=your_gandi_personal_access_token_here
GANDI_BASE_URL=https://api.gandi.net
```

You can create a Personal Access Token in your [Gandi Admin dashboard](https://admin.gandi.net/organizations/account/pat).

### Publish Configuration (Optional)

[](#publish-configuration-optional)

You can publish the configuration file to customize the package settings:

```
php artisan vendor:publish --tag=gandi-config
```

This will create a `config/gandi.php` file where you can customize the package settings.

Usage
-----

[](#usage)

### Using the Facade

[](#using-the-facade)

```
use MetaverseSystems\GandiClient\Facades\Gandi;

// Get all domains
$domains = Gandi::getDomains();

// Get specific domain information
$domain = Gandi::getDomain('example.com');

// Get DNS records for a domain
$records = Gandi::getDnsRecords('example.com');

// Create a new DNS record
$record = Gandi::createDnsRecord('example.com', [
    'rrset_name' => 'www',
    'rrset_type' => 'A',
    'rrset_values' => ['192.168.1.1'],
    'rrset_ttl' => 3600
]);

// Update a DNS record
$updatedRecord = Gandi::updateDnsRecord('example.com', 'record-id', [
    'rrset_values' => ['192.168.1.2']
]);

// Delete a DNS record
Gandi::deleteDnsRecord('example.com', 'record-id');
```

### Using Dependency Injection

[](#using-dependency-injection)

```
use MetaverseSystems\GandiClient\GandiClient;

class DomainController extends Controller
{
    public function __construct(private GandiClient $gandiClient)
    {
    }

    public function index()
    {
        $domains = $this->gandiClient->getDomains();
        return view('domains.index', compact('domains'));
    }
}
```

API Methods
-----------

[](#api-methods)

### Domains

[](#domains)

- `getDomains()` - Get all domains
- `getDomain(string $domain)` - Get specific domain information

### DNS Records

[](#dns-records)

- `getDnsRecords(string $domain)` - Get all DNS records for a domain
- `createDnsRecord(string $domain, array $record)` - Create a new DNS record
- `updateDnsRecord(string $domain, string $recordId, array $record)` - Update a DNS record
- `deleteDnsRecord(string $domain, string $recordId)` - Delete a DNS record

Configuration Options
---------------------

[](#configuration-options)

The following configuration options are available in `config/gandi.php`:

- `personal_access_token` - Your Gandi Personal Access Token
- `base_url` - The Gandi API base URL (default: )
- `timeout` - Request timeout in seconds (default: 30)
- `verify_ssl` - Whether to verify SSL certificates (default: true)

License
-------

[](#license)

This package is open-sourced software licensed under the [MIT license](LICENSE).

###  Health Score

16

—

LowBetter than 4% of packages

Maintenance36

Infrequent updates — may be unmaintained

Popularity4

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity15

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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/544de7b46960eb87f0f60bc59cb8bd4dccd2679622adf0c8ed82b75df9f65685?d=identicon)[timschwartz](/maintainers/timschwartz)

---

Top Contributors

[![timschwartz](https://avatars.githubusercontent.com/u/13080528?v=4)](https://github.com/timschwartz "timschwartz (5 commits)")

### Embed Badge

![Health badge](/badges/metaverse-systems-gandi-client/health.svg)

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

###  Alternatives

[digilist/snakedumper

4946.0k](/packages/digilist-snakedumper)[lifo/ip

IP address helper PHP library for working with IPv4 and IPv6 addresses

19100.1k1](/packages/lifo-ip)[jolicode/seo-override

Override your seo markup on the fly

1363.0k](/packages/jolicode-seo-override)

PHPackages © 2026

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