PHPackages                             metaregistrar/php-epp-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. [Parsing &amp; Serialization](/categories/parsing)
4. /
5. metaregistrar/php-epp-client

ActiveLibrary[Parsing &amp; Serialization](/categories/parsing)

metaregistrar/php-epp-client
============================

Object-oriented PHP EPP Client

1.0.14(1y ago)229121.0k↓19.9%165[1 issues](https://github.com/metaregistrar/php-epp-client/issues)7MITPHPPHP ^7|^8.0CI failing

Since Oct 8Pushed 1mo ago15 watchersCompare

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

READMEChangelog (10)DependenciesVersions (20)Used By (7)

PHP EPP Client
==============

[](#php-epp-client)

[![Latest Stable Version](https://camo.githubusercontent.com/f8c8c9259a2d19b1108e8777a72b95e95f59d48585470efc73091f0a3e6e4fc6/68747470733a2f2f706f7365722e707567782e6f72672f6d6574617265676973747261722f7068702d6570702d636c69656e742f762f737461626c65)](https://packagist.org/packages/metaregistrar/php-epp-client)[![Total Downloads](https://camo.githubusercontent.com/0feb9b51b73b58eaaebbda7d6f648f8374fd307188bb0701ff67394eb3b691cf/68747470733a2f2f706f7365722e707567782e6f72672f6d6574617265676973747261722f7068702d6570702d636c69656e742f646f776e6c6f616473)](https://packagist.org/packages/metaregistrar/php-epp-client)[![Latest Unstable Version](https://camo.githubusercontent.com/aca07953a5cf06df94c28b1c43476d81a5775c86665fc0e16ce8c7c576c6e8a8/68747470733a2f2f706f7365722e707567782e6f72672f6d6574617265676973747261722f7068702d6570702d636c69656e742f762f756e737461626c65)](https://packagist.org/packages/metaregistrar/php-epp-client)

**Object-oriented PHP EPP Client.**

Welcome to the "object-oriented EPP client in PHP" project.

This project supports the following:
------------------------------------

[](#this-project-supports-the-following)

- Full EPP 57xx RFC standard
- Extensible PHP objects to add registry-specific additions
- Rock-solid object-oriented programming, object inheritance and exception handling
- Interface tested and in use with a registrar that handles 600.000+ domain names
- Public/private key client certificates for connecting to EPP service (for example see Registries/IIS)
- Connection to EPP via HTTP/SSL (for example see Registries/Openprovider)
- DNSSEC transactions
- Registry sunrise, landrush and claims periods (draft-ietf-eppext-launchphase)
- TMCH/TMDB CNIS retrieval examples with standard ICANN registrar message

This code will provide you with a fully functional EPP client to connect to any registry world-wide that supports EPP. All code is organized in objects, so connecting to a new registry is just a matter of object re-use and extension. Sample registry connections are provided in the Registries directory.

---

Currently supported registries:

- SIDN (.nl)
- dotAmsterdam
- Donuts
- EurID (.eu)
- DNS Belgium (.be .vlaanderen .brussels)
- .CO.NL
- dotFRL
- IIS (.nu and .se)
- CarDNS (.hr)
- Metaregistrar
- Nic.AT (.at)
- Key Systems RRPPROXY
- .PT
- Switch (.ch)
- Openprovider
- Ficora (.fi)
- DNS.PT (.pt)
- Norid (.no)
- Arnes (.si)
- Nic.lv (.lv)
- SK-NIC (.sk)

All code changes are tested automatically with the phpunit tests in the Tests directory

Example scipts in the main directory:

FileDescriptioncheckdomain.phpCheck one domain name.timeddomaincheck.phpCheck multiple domain names and check how fast the registry is.registerdomain.phpRegister a domain name.changepassword.phpChange EPP password.infodomain.phpGet information on a domain name.modifydomain.phpUpdate a domain name with new info.createcontact.phpCreate a contact object.updatecontact.phpUpdate contact details of a created contact object.createdomain.phpRegister a domain name in general availability phase.signdomain.phpDNSSEC sign a domain name.poll.phpList registry poll messages and confirm a message.checklaunchdomain.phpCheck domain name in 'claims' phase of draft-ietf-eppext-launchphase and check if the domain is free.createlaunchdomain.phpRegister domain name in 'claims' phase of draft-ietf-eppext-launchphase.checktmchdomain.phpCheck domain name in the 'claims' phase and check if the domain has a claim and retrieve the cnis info from the TMCH.test-claim.phpConnect to the TMCH test service and retrieve the list of domain names, query cnis info and display icann std warning msg.createclaimeddomain.phpCreate domain name that has a tmch claim in the claims phase of the launch.How to use this repository
--------------------------

[](#how-to-use-this-repository)

1. Check out the latest version from github. (Or `composer require metaregistrar/php-epp-client`)
2. Use the `Examples/checkdomain.php` and create a connection to your favorite registry (for example `new Metaregistrar\EPP\metaregEppConnection()`).
3. Create a `settings.ini` in with the following contents:

```
        interface=eppConnection
        hostname=ssl://epp-ote.metaregistrar.com
        port=7000
        userid=xxxxxxxx
        password=xxxxxxxxx
        logging=true
        certificatefile=/home/xxxxxx/xxxxxxx.pem
        certificatekey=/home/xxxxxx/xxxxxxx.key
        certificatepassword=xxxxxxx
        verifypeer=true/false
        verifypeername=true/false
        allowselfsigned=true/false

```

4. Now, `checkdomain.php` should be functioning and checking domains.

**If** you do not want to use `settings.ini` files in the Registries directory, you can create a connection as follows: `$conn = Metaregistrar\EPP\eppConnection::create('path-to-settings.ini');`

Or set all parameters individually:

```
$conn = new Metaregistrar\EPP\eppConnection();
$conn->setHostname('ssl://epp-ote.metaregistrar.com'); // Hostname may vary depending on the registry selected
$conn->setPort(7000); // Port may vary depending on the registry selected
$conn->setUsername('xxxxxxxx');
$conn->setPassword('xxxxxxxxx');

```

###  Health Score

63

—

FairBetter than 99% of packages

Maintenance71

Regular maintenance activity

Popularity53

Moderate usage in the ecosystem

Community40

Growing community involvement

Maturity77

Established project with proven stability

 Bus Factor1

Top contributor holds 75.1% 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 ~249 days

Recently: every ~456 days

Total

15

Last Release

390d ago

PHP version history (4 changes)1.0.0PHP &gt;=5.3

1.0.3PHP &gt;=5.4

1.0.7PHP ^7

1.0.11PHP ^7|^8.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/bc993c62187624f63aa1fc4f8488c0c3c5add03186413d1172cdb95119e1983e?d=identicon)[metaregistrar](/maintainers/metaregistrar)

---

Top Contributors

[![metaregistrar](https://avatars.githubusercontent.com/u/3437914?v=4)](https://github.com/metaregistrar "metaregistrar (635 commits)")[![alexrsagen](https://avatars.githubusercontent.com/u/4870800?v=4)](https://github.com/alexrsagen "alexrsagen (46 commits)")[![bessone](https://avatars.githubusercontent.com/u/1089510?v=4)](https://github.com/bessone "bessone (24 commits)")[![W0rma](https://avatars.githubusercontent.com/u/20659830?v=4)](https://github.com/W0rma "W0rma (17 commits)")[![thomasmeike](https://avatars.githubusercontent.com/u/7045954?v=4)](https://github.com/thomasmeike "thomasmeike (16 commits)")[![MikeAT](https://avatars.githubusercontent.com/u/5129700?v=4)](https://github.com/MikeAT "MikeAT (12 commits)")[![aksl](https://avatars.githubusercontent.com/u/11601427?v=4)](https://github.com/aksl "aksl (10 commits)")[![spacecodeit](https://avatars.githubusercontent.com/u/25511964?v=4)](https://github.com/spacecodeit "spacecodeit (9 commits)")[![webdevvie](https://avatars.githubusercontent.com/u/6097722?v=4)](https://github.com/webdevvie "webdevvie (9 commits)")[![OrangeJuiced](https://avatars.githubusercontent.com/u/22561290?v=4)](https://github.com/OrangeJuiced "OrangeJuiced (8 commits)")[![jansen-s](https://avatars.githubusercontent.com/u/28800130?v=4)](https://github.com/jansen-s "jansen-s (7 commits)")[![mvdgeijn](https://avatars.githubusercontent.com/u/50988060?v=4)](https://github.com/mvdgeijn "mvdgeijn (6 commits)")[![NikoGrano](https://avatars.githubusercontent.com/u/4658966?v=4)](https://github.com/NikoGrano "NikoGrano (5 commits)")[![Brianvanwessel](https://avatars.githubusercontent.com/u/31928901?v=4)](https://github.com/Brianvanwessel "Brianvanwessel (5 commits)")[![RiRe](https://avatars.githubusercontent.com/u/7419386?v=4)](https://github.com/RiRe "RiRe (4 commits)")[![wevothere120](https://avatars.githubusercontent.com/u/13237780?v=4)](https://github.com/wevothere120 "wevothere120 (3 commits)")[![sfenne](https://avatars.githubusercontent.com/u/2726664?v=4)](https://github.com/sfenne "sfenne (3 commits)")[![ivan1986](https://avatars.githubusercontent.com/u/156418?v=4)](https://github.com/ivan1986 "ivan1986 (3 commits)")[![esurov](https://avatars.githubusercontent.com/u/1679357?v=4)](https://github.com/esurov "esurov (3 commits)")[![php-bhosted](https://avatars.githubusercontent.com/u/206213661?v=4)](https://github.com/php-bhosted "php-bhosted (3 commits)")

---

Tags

domainnamemanagereppphpxmldomainsepp

### Embed Badge

![Health badge](/badges/metaregistrar-php-epp-client/health.svg)

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

###  Alternatives

[masterminds/html5

An HTML5 parser and serializer.

1.8k242.8M229](/packages/masterminds-html5)[jms/serializer

Library for (de-)serializing data of any complexity; supports XML, and JSON.

2.3k135.8M851](/packages/jms-serializer)[jms/metadata

Class/method/property metadata management in PHP

1.8k152.8M88](/packages/jms-metadata)[jms/serializer-bundle

Allows you to easily serialize, and deserialize data of any complexity

1.8k89.3M627](/packages/jms-serializer-bundle)[sabre/xml

sabre/xml is an XML library that you may not hate.

52832.2M131](/packages/sabre-xml)[presta/sitemap-bundle

A Symfony bundle that provides tools to build your application sitemap.

3929.4M28](/packages/presta-sitemap-bundle)

PHPackages © 2026

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