emild / api3-lib
API v.3.0 client
Requires
- php: >=5.5
- guzzlehttp/guzzle: ^7.0.1
Requires (Dev)
- kint-php/kint: ^2.2
This package is auto-updated.
Last update: 2024-11-15 18:04:00 UTC
README
Table of Contents
Installation
You need composer to install this library.
composer require nameisp/api3-lib
Usage
use NameISP\API3\Client; $api = new Client('YOUR_API_KEY');
If you want to use non-default another base URL for api, you could pass it as second parameter:
$api = new Client('YOUR_API_KEY', 'https://example.com/api');
Error handling
There are some types of exceptions, that you are able to catch:
NameISP\API3\Exception\BaseException
If you want to catch all exception types from this library, you should use this exception class:
use NameISP\API3\Exception\BaseException; try { $api->searchDomain('example.org'); } catch (BaseException $e) { // Do something... }
This should be enought for a basic application. But if you need more control you could also catch these exceptions:
NameISP\API3\Exception\ApiException
When API returns non-succesful response. You are able to get API error code and message from that exception:
use NameISP\API3\Exception\ApiException; try { $api->searchDomain('example.org'); } catch (ApiException $e) { var_dump($e->getCode()); // int(2303) var_dump($e->getMessage()); // string(21) "Object does not exist" }
NameISP\API3\Exception\AuthFailedException
This exception throws when authorization was failed with your API token.
NameISP\API3\Exception\NetworkException
Any network exception. If you need more details, you could get original Guzzle exception by using $e->getPrevious();
Methods
If some argument is null by default, it's optional, others are required.
If you want to unset boolean flag, you should pass false
(e.g. $setAutoRenew
argument in the editDomain
method)
Almost all methods return an array as result. Some returns string. The checkDnsZone method returns boolean.
Domains
createDomainRegistration
/** * @param string $domainName must be fully qualified domain name * @param int $itemYear * @param int $ownerId * @param int $adminId * @param int $techId * @param bool $autoRenew * @param bool $shieldWhoIs * @param bool $trustee * @param bool $tmchacceptance is only required if the domain name has a claim. If there is no claim this parameter is ignored. */ public function createDomainRegistration($domainName, $itemYear, $ownerId, $adminId = null, $techId = null, $autoRenew = null, $shieldWhoIs = null, $trustee = null, $tmchacceptance = null)
createDomainTransfer
/** * @param string $domainName must be fully qualified domain name * @param string $auth */ public function createDomainTransfer($domainName, $auth = false)
domainDetails
/** * @param int $itemid */ public function domainDetails($itemid)
domainGenAuthCode
/** * @param string $domainName */ public function domainGenAuthCode($domainName)
domainList
/** * @param string $domainName * @param int $limit default: 100, min: 1 max: 1000, invalid values are ignored and default value is used * @param int $start default: 0 */ public function domainList($domainName = null, $limit = null, $start = null)
editDomain
/** * @param array|string $domainName must be fully qualified domain name * @param bool $setAutoRenew * @param bool $setShieldWhoIs * @param array $addLabel * @param array $removeLabel */ public function editDomain($domainName, $setAutoRenew = null, $setShieldWhoIs = null, array $addLabel = null, array $removeLabel = null)
Example:
$api->editDomain('example.com', false, null, ['label']); // Returns an empty array on success
searchDomain
/** * @param array|string $domainName */ public function searchDomain($domainName)
updateDomainDNS
/** * @param string $domainName must be fully qualified domain name * @param array $nameServer */ public function updateDomainDNS($domainName, array $nameServer)
updateDomainRenew
/** * @param string $domainName must be fully qualified domain name * @param int $itemYear */ public function updateDomainRenew($domainName, $itemYear)
DNS
checkDnsZone
/** * @param string $domainName * @param string $nameServer */ public function checkDnsZone($domainName, $nameServer)
Example:
$api->checkDnsZone('example.com', 'ns1.nameisp.info'); // Returns true or false
dnsAddRecord
/** * DnsAddRecord * * Notes: * Using $type = redirect will create a redirect * - Valid values for $redirectType are 301, 302 & frame. Default: 301 * - Forward url is to be entered in content ex. http://www.example.com * Using $type = mailforward will create a mailforward * - Valid values for name is full qualified email address for the domainname * - Forward email is to be entered in content ex. example@example.com * * @param string $domainName * @param string $name * @param string $type * @param string $content * @param int $ttl * @param int $prio * @param string $redirectType */ public function dnsAddRecord($domainName, $name, $type, $content, $ttl, $prio = null, $redirectType = null)
dnsDeleteRecord
/** * @param int $recordId * @param string $domainName */ public function dnsDeleteRecord($recordId, $domainName)
Example:
$api->dnsDeleteRecord(16992196, 'example.com'); // Returns an empty array on success
dnsGetRecords
/** * @param string $domainName */ public function dnsGetRecords($domainName)
dnsUpdateRecord
/** * DnsUpdateRecord * * Notes: * Using type = redirect will create a redirect * - Valid values for redirecttype are 301, 302 & frame. Default: 301 * - Forward url is to be entered in content ex. http://www.example.com * * @param int $recordId * @param string $domainName * @param string $name * @param string $type * @param string $content * @param int $ttl * @param int $prio * @param string $redirectType */ public function dnsUpdateRecord($recordId, $domainName, $name, $type, $content, $ttl, $prio = null, $redirectType = null)
Example:
$api->dnsUpdateRecord(16992196, 'example.com', '*.example.com', 'A', '1.1.1.2', 3600); // Returns an empty array on success
publishDnsSec
/** * PublishDnsSec * * Notes: * $flags * - 256 ZSK * - 257 KSK * $alg can at the time of writing use one of the following integers: * - 5 RSA/SHA-1 * - 7 RSASHA1-NSEC3-SHA1 * - 8 RSA/SHA-256 * - 10 RSA/SHA-512 * - 12 GOST R 34.10-2001 * - 13 ECDSA/SHA-256 * - 14 ECDSA/SHA-384 * * @param string $domainName * @param string $dnsKey * @param int $flags * @param int $alg */ public function publishDnsSec($domainName, $dnsKey, $flags, $alg)
Example:
$api->publishDnsSec('example.com', 'c6884357e49fd6b1fdede867c96aafb1', 256, 5); // Returns an empty array on success
unpublishDnsSec
/** * @param string $domainName */ public function unpublishDnsSec($domainName)
Example:
$api->unPublishDnsSec('example.com'); // Returns an empty array on success
Economy
priceList
/** * PriceList * * Note: * Using $print will ignore $limit and $start parameters, WARNING using $print = true will result with a large JSON object, it’s recommended to use $print = true together with $skipRules = true to limit the JSON size. * * @param bool $print * @param bool $skipRules * @param string $tldName * @param int $priceTypes * @param int $limit * @param int $start */ public function priceList($print = null, $skipRules = null, $tldName = null, $priceTypes = null, $limit = null, $start = null)
Miscellaneous
createLabel
/** * @param string $label * @param integer $starred */ public function createLabel($label, $starred = null)
deleteLabel
/** * @param int $labelId */ public function deleteLabel($labelId)
Example:
$api->deleteLabel(2317); // Returns an empty array on success
getLabels
public function getLabels()
updateLabel
/** * UpdateLabel * * Note: * Valid parameter values are: name, starred * * @param int $labelId * @param string $parameter * @param string $value */ public function updateLabel($labelId, $parameter, $value)
Example:
$api->updateLabel(2317, 'name', 'updated label 1'); // Returns an empty array on success
Request
requestCancellation
/** * RequestCancellation * * Note: * Only statuses with cancelable flag are cancelable. * * @param int $reqId */ public function requestCancellation($reqId)
requestDetails
/** * @param int $reqId */ public function requestDetails($reqId)
requestList
/** * @param string $domainName * @param string $reqType * @param int $limit default: 100, min: 1 max: 1000, invalid values are ignored and default value is used * @param int $start default: 0 */ public function requestList($domainName = null, $reqType = null, $limit = null, $start = null)
requestUpdate
/** * @param int $reqId * @param string $error parameter from error list */ public function requestUpdate($reqId, $error)
TODO: example
Contacts
contactList
/** * ContactList * * Note: * Valid $filters keys: * firstname, lastname, organization, orgnr, address1, zipcode, city, countrycode, phone, fax, email * * @param array $filters key-value array with filters * @param int $limit default: 100, min: 1 max: 1000, invalid values are ignored and default value is used * @param int $start default: 0 * @param string $searchString is a free text search parameter, use this parameter to search every field. If this parameter is used all other parameters are ignored */ public function contactList(array $filters = [], $searchString = null, $limit = null, $start = null)
createContact
/** * @param string $firstName * @param string $lastName * @param string $email * @param string $orgnr * @param string $address1 * @param string $zipCode * @param string $city * @param string $countryCode * @param string $phone * @param string $organization * @param string $fax */ public function createContact($firstName, $lastName, $email, $orgnr, $address1, $zipCode, $city, $countryCode, $phone, $organization = null, $fax = null)
updateContact
/** * UpdateContact * * Notes: * Private persons can’t update $firstName or $lastName * Organization can’t update $organization * No one can update orgnr * if value does not exist, value is added else it is updated * * Possible $fields keys: * firstname, lastname, organization, address1, zipcode, city, countrycode, phone, fax, email * * @param int $contactId * @param array $fields */ public function updateContact($contactId, array $fields)
Example:
$api->updateContact(1234181, [ 'city' => 'New York', 'countrycode' => 'us' ]); // Returns an empty array on success