MrDomain's API

    MrDomain's API

    API User Manual
    Version 1.0.20 - 15/07/2021
    MrDomain

    1 General concepts

    Important
    The API and its documentation is under constant development. We recommend checking the documentation from time time to avoid problems and incompatibilities.

    This reference guide is intended to help you understand how to access and use our API. In it you will find how to perform requests, how the API works, error codes you may get, and the format for most of the responses. It's advised to only use the API if you're experienced in this kind of environments.

    1.1 Getting started

    Usage of MrDomain's API is restricted to accounts previously authorized that have passed the required quality checks by the MrDomain's team.

    The API service is restricted to a limited amount of IP address. Each of these IP address must be registered in the system to allow access to the API. Additionally, access credentials ( apiuser and apipasswd) will be required for most of the API calls. You can obtain these credentials contacting our support team.

    1.2 API Intended use

    The usage of MrDomain's API is intended for the creation of web applications to manage domains and domain collections.

    Is expressly prohibited to use the API to perform mass requests and queries (domain capture, mass availability checks...). Any attempt to do so will be detected in real-time by our system, temporarily blocking access to the API for the username and password used.

    Repeated attemps will result in blocking and/or terminating the account.

    1.3 Limits

    Both the number of simultaneous access to the API and the number of operations and errors generated are properly monitored and limited to avoid a missuse of our systems. Going beyond the established limits may result in a temporal blocking of the API username and password.

    You will find more information on the Usage policy for the API.

    2 Simple-POST Interface

    Access to the API is done via HTTPS protocol. Parameters must be sent using POST (parameters sent using GET are ignored). It is recommended that you check the SSL certificate from the server to ensure that you are connecting to the correct server.

    Responses will be sent in JSON format (JavaScript Object Notation).

    2.1 Information needed for the connection

    URL: https://simple-api.dondominio.net[:443]/[APICALL]/
    apiuser: *******
    apipasswd: *******
    IP: IP Address

    To perform a request, for example, to tool/hello, you need to perform a POST request to the URI https://simple-api.dondominio.net/tool/hello/.

    Valid request example:

    Request:

    POST /tool/hello/
    
    param1=value1&param2=value2

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "tool\/hello",
        "version": "1.0.20",
        "responseData": {
            "ip": "127.0.0.1",
            "lang": "en",
            "version": "1.0.20"
        }
    }

    If the success parameters is true (errorCode = 0), that means that the request was successful and responseData contains the requested information. On the other side, if success is false, that means that there were one or more errors and the request failed.

    Invalid request example:

    Request:

    POST /tool/requestinvalid/

    Response example:

    {
        "success": false,
        "errorCode": 102,
        "errorCodeMsg": "Object action invalid",
        "action": "tool\/requestinvalid",
        "version": "1.0.20",
        "messages": [
            "invalid object\/action"
        ],
        "responseData": []
    }

    2.2 Credentials

    Access credentials must be sent for every request that require them. They will be sent using POST with the following parameters (key/value in application/x-www-form-urlencode format):

    POST /requesturi/
    
    apiuser=YOURAPIUSER&apipasswd=YOURAPIPASS

    2.3 Common parameters and output formats

    Some parameters are common to almost every request. For example, in each request that requires authentication, you will need to provide apiuser and apipasswd.

    It is possible to change the output format for the response using the parameters output-format and output-pretty. The former is used to change the format of the response, and the latter to apply a more legible format. By default json without format is used.

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    output-format Optional json Response format.
    Possible values: json, xml
    output-pretty Optional false Use a more legible format

    Example using output-format = json and output-pretty = false

    Response example:

    {"success":true,"errorCode":0,"errorCodeMsg":"","action":"tool\/hello","version":"1.0.20","responseData":{"ip":"37.152.93.46","lang":"en","version":"1.0.20"}}

    Example using output-format = xml and output-pretty = false

    Response example:

    <?xml version="1.0" encoding="UTF-8"?>
    <data><success>1</success><errorCode>0</errorCode><errorCodeMsg></errorCodeMsg><action>tool/hello</action><version>1.0.20</version><responseData><ip>37.152.93.46</ip><lang>en</lang><version>1.0.20</version></responseData></data>

    Example with output-format = xml and output-pretty = true

    Response example:

    <?xml version="1.0" encoding="UTF-8"?>
    <data>
      <success>1</success>
      <errorCode>0</errorCode>
      <errorCodeMsg></errorCodeMsg>
      <action>tool/hello</action>
      <version>1.0.20</version>
      <responseData>
        <ip>37.152.93.46</ip>
        <lang>en</lang>
        <version>[#VERSION]</version>
      </responseData>
    </data>

    2.4 Available modules

    Module Title Description
    /tool/ Tools General purpose tools
    /account/ Account Actions on user/API account
    /domain/ Domains Actions on domains
    /contact/ Contacts Actions on domain contacts
    /service/ Service Actions on servies
    /ssl/ SSL Actions on Certificates SSL

    3 Module: Tool

    The tool module allows access to different general purpose tools.

    Available actions:

    Action Authentication Description
    /tool/hello/ Required Check availability of the API
    /tool/idnconverter/ Required IDNA/Unicode/Punycode conversor
    /tool/domainsuggests/ Required Suggesting available domains
    /tool/gettable/ Required Retrieve different tables used by the API
    /tool/dig/ Required DIG (Domain Information Groper) - DNS server checking tool
    /tool/zonecheck/ Required Check TLD requisites for a domain

    3.1 Hello ( tool/hello/ )

    Use: Checks that the API is reachable and working properly.

    Request:

    POST /tool/hello/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password

    Response fields description:

    Field Description
    ip IP address being use to connect to the API
    lang Language used by API
    version Current API version

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "tool\/hello",
        "version": "1.0.20",
        "responseData": {
            "ip": "127.0.0.1",
            "lang": "en",
            "version": "1.0.20"
        }
    }

    3.2 IDN Converter ( tool/idnconverter/ )

    Use: Converts a string or domain name between Unicode and Punycode (IDNA format).

    Request:

    POST /tool/idnconverter/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    query Required Query/Domain to be converted to Unicode or Punycode

    Response fields description:

    Field Description
    query The original string
    unicode String/Domain name in Unicode
    punycode String/Domain name in Punycode

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "tool\/idnconverter",
        "version": "1.0.20",
        "responseData": {
            "query": "espa\u00f1a.com", /* españa.com */
            "unicode": "espa\u00f1a.com",
            "punycode": "xn--espaa-rta.com"
        }
    }

    3.3 Domain Suggests ( tool/domainsuggests/ )

    Use: Search available domains suggestions from a provided word. Abusing the domain/check/ command can lead to a temporal or definitive banning of the account.

    Request:

    POST /tool/domainsuggests/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    query Required Word or domain to search suggestions for
    language Optional es Language of the suggestions. One of: es, en, zh, fr, de, kr, pt, tr
    tlds Optional com,net TLDs to check for suggestions. Comma separated.
    Available TLDs: com,net,tv,cc

    Response fields description:

    Field Description
    query Query performed
    suggests/word/tld Bool Indicated whether word.tld is available or not

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "tool\/domainsuggests",
        "version": "1.0.20",
        "responseData": {
            "query": "coches",
            "suggests": {
                "coches": {
                    "es": false,
                    "com": false,
                    "net": false
                },
                "cochesonline": {
                    "es": false,
                    "com": false,
                    "net": true
                },
                "loscoches": {
                    "es": false,
                    "com": false,
                    "net": true
                }
                    /*,...*/
        }
    }

    3.4 Get Table ( tool/gettable/ )

    Use: Retrieve code tables used by some API calls.

    Request:

    POST /tool/gettable/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    tableType Required Table to retrieve
    countries: Country codes and country names.
    es_juridic: Organization type codes used by Spain's Government.

    Response fields description:

    Field Description
    items Array containing codes and descriptions

    Example for tableType = country

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "tool\/gettable",
        "version": "1.0.20",
        "responseData": {
            "items": [
                {
                    "code": "AD",
                    "name": "Andorra"
                },
                {
                    "code": "AE",
                    "name": "United Arab Emirates"
                },
                {
                    "code": "AF",
                    "name": "Afghanistan"
                }
                /*
                ,{ ....  }
                */
                ]
        }
    }

    Example for tableType = es_juridic

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "tool\/gettable",
        "version": "1.0.20",
        "responseData": {
            "items": [
                {
                    "code": "39",
                    "name": "Agrupaci\u00f3n de Inter\u00e9s Econ\u00f3mico"
                },
                {
                    "code": "47",
                    "name": "Asociaci\u00f3n"
                },
                {
                    "code": "59",
                    "name": "Asocicaci\u00f3n Deportiva"
                }
                /*
                ,{ ....  }
                */
                ]
        }
    }

    3.5 DIG ( tool/dig/ )

    Use: DIG (or Domain Information Groper) is a tool to check DNS servers. In the event that your domain is not resolving correctly you will be able to check the cause, helping you to minimize downtime.

    Request:

    POST /tool/dig/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    query Required Domain/Query
    type Required Type of test. One of: A, AAAA, ANY, CNAME, MX, NS, SOA, TXT, CAA
    nameserver Required DNS server name or IP address

    Response fields description:

    Field Description
    query Query performed
    nameserver DNS server name or IP address
    type Type of test
    result Results of the test in plain text

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "tool\/dig",
        "version": "1.0.20",
        "responseData": {
            "query": "microsoft.com",
            "nameserver": "8.8.8.8",
            "type": "SOA",
            "result": ";; Got answer:\n;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62615\n;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0\n\n;; QUESTION SECTION:\n;microsoft.com.\t\t\tIN\tSOA\n\n;; ANSWER SECTION:\nmicrosoft.com.\t\t3599\tIN\tSOA\tns1.msft.net. msnhst.microsoft.com. 2015080701 7200 600 2419200 3600\n\n"
    
        }
    }

    3.6 ZoneCheck( tool/zonecheck/ )

    Use: Checks whether a domain fulfills the conditions required by some TLDs.

    Request:

    POST /tool/zonecheck/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    domain Required Domain name
    nameservers Required DNS Servers ( min: 2 )

    Response fields description:

    Field Description
    domain Domain name
    nameservers DNS Server
    result Result of the test
    result/zonepass Indicates whether the domain fulfills the conditions required
    result/report Full test report in plain text

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "tool\/zonecheck",
        "version": "1.0.20",
        "responseData": {
            "domain": "dondominio.fr",
            "nameservers": [
                "ns5.dondominio.com",
                "ns2.dondominio.com"
            ],
            "result": {
                "zonepass": true,
                "report": "ZONE  : dondominio.fr\nNS <= : ns5.dondominio.com [37.152.88.14]\nNS    : ns2.dondominio.com [178.33.146.32]\n\n       _______________\n     ,---------------.|\n~~~~ |    warning    || ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n     `---------------'\nw> [TEST can deliver email to 'postmaster']: Connection refused - connect(2)\n=> generic\n\n==> SUCCESS (but 1 warning(s))\n"
            }
        }
    }

    4 Module: Account

    The account module allows access to the different options for the account.

    Available actions:

    Action Authentication Description
    /account/info/ Required Retrieves information from the account/API
    /account/promos/ Required List current promotions
    /account/zones/ Required Retrieves information from the zones/TLDs

    4.1 Info ( account/info/ )

    Use: Retrieves information about the account, including the available balance.

    Request:

    POST /account/info/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password

    Response fields description:

    Field Description
    clientName Customer name
    apiuser API Username
    balance Balance available in account
    threshold Threshold for notifying low balance
    currency (float) Currency used for balance
    ip Current IP address connecting to the API

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "account\/info",
        "version": "1.0.20",
        "responseData": {
            "clientName": "clientX",
            "apiuser": "YOURAPIUSER",
            "balance": 124.0,
            "threshold": 30.0,
            "currency": "EUR",
            "ip": "127.0.0.1"
        }
    }

    4.2 Promos ( account/promos/ )

    Use: List current promotions.

    Request:

    POST /account/promos/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password

    Response fields description:

    Field Description
    promo Promotion identification
    type Promotion type
    action What the promotion affect to
    price Price with promotion
    tsIni Init date of the promotion
    tsEnd End date of the promotion
    tld (If type=domain) Affected domain tld
    productID (If type=ssl) Affected SSL product identification

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "account\/promos",
        "version": "1.0.20",
        "responseData": [
            {
                "promo": "LSxDNFErMyhQLDM8TytXIVI7UGBgCmAK",
                "type": "domain",
                "action": "create",
                "price": 4.95,
                "tsIni": "2017-01-01 00:00:00",
                "tsEnd": "2021-12-31 23:59:00",
                "tld": "pro"
            },
            {
                "promo": "MSxTQFcrMyhQLEMkTytXLVM7IlVNODdEYApgCg==",
                "type": "ssl",
                "action": "create",
                "price": 28,
                "tsIni": "2021-05-03 00:00:00",
                "tsEnd": "2021-07-03 00:00:00",
                "productID": "57"
            }
        ]
    }

    4.3 Zones ( account/zones/ )

    Use: Retrieves available zones/TLDs.

    Request:

    POST /account/zones/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    pageLength Optional 100 Maximum number of results
    page Optional 1 Results page number
    tld Optional Filter by TLD
    tldtop Optional Fiter by top TLD

    Response fields description:

    Field Description
    queryInfo Information about the query made
    queryInfo/page Results page number
    queryInfo/pageLength Maximum number of results per page
    queryInfo/results Number of results obtained
    queryInfo/total Total number of results
    zones/tld TLD
    zones/tldtop Top TLD
    zones/authcodereq (bool) Indicates whether the TLD requires authcode for transfers
    zones/requirements If present, indicates special requieremes for the zone/TLD
    zones/create If present, zone/TLD allows new domain registrations
    zones/create/price Cost of domain registration
    zones/create/years Allowed years/periods for registration
    zones/create/inPromo (bool) Indicates whethere the TLD has a promo
    Just when is true
    zones/renew If present, zone/TLD allows domain renewals
    zones/renew/pric Cost of domain renewal
    zones/renew/years Allowed years/periods for renewals
    zones/renew/inPromo (bool) Indicates whethere the TLD has a promo
    Just when is true
    zones/transfer If present, zone/TLD allows domain transfers
    zones/transfer/price Cost of domain transfer
    zones/transfer/years Allowed years/periods for transfers
    zones/transfer/inPromo (bool) Indicates whethere the TLD has a promo
    Just when is true

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "account\/zones",
        "version": "1.0.20",
        "responseData": {
            "queryInfo": {
                "page": 1,
                "pageLength": 100,
                "results": 1,
                "total": 1
            },
            "zones": [
                {
                    "tld": "green",
                    "tldtop": "green",
                    "authcodereq": true,
                    "create": {
                        "price": 12.95,
                        "years": "1",
                        "inPromo": true
                    },
                    "renew": {
                        "price": 52.95,
                        "years": "1,2,3,4,5,6,7,8,9,10"
                    },
                    "transfer": {
                        "price": 52.95,
                        "years": "1"
                    }
                }
            ]
        }
    }

    5 Module: Domain

    The domain module allows access to differents options for domains.ç

    Available actions:

    Action Authentication Description
    domain/check Required Check availability to register a domain
    domain/checkfortransfer Required Check availability to transfer a domain
    domain/create Required Register a domain
    domain/transfer Required Transfer a domain
    domain/transferrestart Required Restart a domain transfer
    domain/update Required Update domain information
    domain/updatenameservers Required Update domain's nameservers
    domain/updatecontacts Required Update domain's contact information
    domain/gluerecordcreate Required Create a DNS Server associated with a domain
    domain/gluerecordupdate Required Update a DNS Server associated with a domain
    domain/gluerecorddelete Required Delete a DNS Server associated with a domain
    domain/list Required Search/Filter/List domains in the account
    domain/getinfo Required Retrieve information from a domain
    domain/getauthcode Required Retrieve domain's authcode
    domain/getnameservers Required Retrieve domain's nameservers
    domain/getgluerecords Required Retrieve domain's DNS Servers (Gluerecords)
    domain/getdnssec Required Retrieve the DNSSEC entries associated with a domain
    domain/dnsseccreate Required Add a DNSSEC entry
    domain/dnssecdelete Required Remove a DNSSEC entry
    domain/renew Required Renew a domain
    domain/whois Required Check the public whois for a domain
    domain/resendverificationmail Required Resend the verification email for owner contact data
    domain/resendfoamail Required Resend the FOA authorization email to the owner contact
    domain/resetfoa Required Reset the domain authorization process
    domain/gethistory Requerid Domain history
    domain/listdeleted Requerid Deleted domains

    5.1 Check ( domain/check/ )

    Use: Checks if a domain is available to be registered. Excessive uses of domain/check/ may result in a temporal or definitive account banning.

    Request:

    POST /domain/check/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    domain Required Domain name

    Response fields description:

    Field Description
    name Domain name in Unicode
    punycode Domain name in Punycode
    tld Domain TLD
    available (bool) Indicates whether the domain can be registered
    premium (bool) Indicates whether the domain is premium. To register a premium domain, this parameter must be passed
    price (float) Yearly registration cost
    currency Currency used for the cost

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "domain\/check",
        "version": "1.0.20",
        "responseData": {
            "domains": [
                {
                    "name": "exampledomain-001.com",
                    "punycode": "exampledomain-001.com",
                    "tld": "com",
                    "available": true,
                    "premium": false,
                    "price": 9.95,
                    "currency": "EUR"
                }
            ]
        }
    }

    5.2 Check For Transfer ( domain/checkfortransfer/ )

    Use: Checks whether a domain name is available to be transferred to MrDomain from its current registrar.

    Request:

    POST /domain/checkfortransfer/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    domain Required Domain name

    Response fields description:

    Field Description
    name Domain name in Unicode
    punycode Domain name in Punycode
    tld Domain TLD
    transferavail (bool) Indicates whether the domain can be transferred
    transfermsg Additional messages if domain can't be transferred
    price (float) Yearly cost of registration
    currency Currency used for cost

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "domain\/checkfortransfer",
        "version": "1.0.20",
        "responseData": {
            "domains": [
                {
                    "name": "example01.com",
                    "punycode": "example01.com",
                    "tld": "com",
                    "transferavail": true,
                    "transfermsg": [],
                    "price": 9.95,
                    "currency": "EUR"
                }
            ]
        }
    }

    5.3 Create ( domain/create/ )

    Use: Creates/Registers a new domain name with MrDomain.

    Tip:
    Before making a request to domain/create/, first check with domain/check/ if the domain is actually available to be registered.

    Request:

    POST /domain/create/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    domain Required Domain name
    period Optional Min years (normalmente 1 año) Number of years to register the domain (by default, the minimum possible)
    premium Optional false Must be true to register premium domains
    nameservers Optional parking Comma-separated list of DNS Servers
    If parking, parking and redirection service will be assigned
    If not, a comma-separated list of DNS Servers must be provided (min. 2, máx. 7):
    ns1.dns.com,ns2.dns.com
    ownerContact[Data] Required Owner contact data (See below)
    adminContact[Data] Optional Administrative contact data. If not present, owner contact data will be used instead.
    techContact[Data] Optional Technical contact data. If not present, administrative contact data will be used instead.
    billingContact[Data] Optional Billing contact data. If not present, administrative contact data will be used instead.

    5.3.1 Providing contact data

    The contact data for ownerContact[Data], techContact[Data], adminContact[Data] and/or billingContact[Data] may be provided in two different ways:

    (1) Providing a Contact ID: (example for owner)

    Request parameters:

    Name Required Default Description
    ownerContactID Required Contact ID in MrDomain. Example: XXX-23423

    (2) Providing all required information: (example for owner)

    In this case, an ownerContactID may not be specified, or all these fields will be ignored.

    Request parameters:

    Name Required Default Description
    ownerContactType Required Contact type: individual or organization
    ownerContactFirstName Required First name
    ownerContactLastName Required Last name
    ownerContactOrgName Required
    if ownerContactType = organization
    Organization or company name
    ownerContactOrgType Required
    if ownerContactType = organization
    and ownerCountry = ES
    Spanish organization type (See table)
    ownerContactIdentNumber Required Tax identification number, VAT Number, ID Card number...
    ownerContactEmail Required Email
    ownerContactPhone Required Phone number in +DD.DDDDDDDD format
    ownerContactFax Optional Fax number in +DD.DDDDDDDDD format
    ownerContactAddress Required Address
    ownerContactPostalCode Required Postal code
    ownerContactCity Required City
    ownerContactState Required State/Province
    ownerContactCountry Required (String 2 characters) Country code (See table)

    Other contacts may be provided switching the prefix owner accordingly to admin, tech or billing.

    5.3.2 Response

    Response fields description:

    Field Description
    billing/total Total cost of the operation
    billing/currency Currency used for cost
    domains/name Domain name
    domains/status Domain status
    domains/tld Domain TLD
    domains/tsExpir Domain's expiration date
    domains/domainID Domain ID
    domains/period Period registered
    domains/inPromo (bool) Indicates whethere the TLD has a promo
    Just when is true

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "domain\/create",
        "version": "1.0.20",
        "responseData": {
            "billing": {
                "total": 12.04,
                "currency": "EUR"
            },
            "domains": [
                {
                    "name": "myexample.com",
                    "status": "register-init",
                    "tld": "com",
                    "tsExpir": "",
                    "domainID": 45762358,
                    "period": 1
                }
            ]
        }
    }

    5.3.3 TLD-specific parameters

    .aero domains

    Request parameters:

    Name Required Default Description
    aeroId Required ENS Identifier. More information available on ENS Aero ID
    aeroPass Required ENS Password
    .barcelona, .madrid, .cat, .pl, .scot, .eus, .gal, .quebec. .radio domains

    Request parameters:

    Name Required Default Description
    domainIntendedUse Required Indended use for the domain
    .ee domains

    Request parameters:

    Name Required Default Description
    ownerDateOfBirth Required
    if ownerContactType = individual
    Date of birth of the owner contact
    .fi domains

    Request parameters:

    Name Required Default Description
    ownerDateOfBirth Required
    if ownerContactType = individual
    Date of birth of the owner contact
    .fr, .re, .yt, .pm, .wf, .tf domains

    Please note
    In the event that the owner contact is an organization, the domain will be registered by default using the VAT Number provided (ownerIdentNumber). You can associate it to a SIREN number (providing frSirenNumber) or to a trademark (providing frTradeMark).

    Request parameters:

    Name Required Default Description
    frTradeMark Optional You may provide a Trademark Number if the owner contact is an organization
    frSirenNumber Optional You may provide a SIREN number if the owner contact is an organization
    .hk domains

    Request parameters:

    Name Required Default Description
    ownerDateOfBirth Required
    if ownerContactType = individual
    Date of birth of the owner contact
    .law, .abogado domains

    Request parameters:

    Name Required Default Description
    lawaccid Required Accreditation number of the person soliciting the domain
    lawaccbody Required Official name of the accreditation body
    lawaccyear Required Year of accreditation
    lawaccjurcc Required Country of accreditation
    lawaccjurst Required State/Province of accreditation
    .jobs domains

    Request parameters:

    Name Required Default Description
    jobsOwnerIsAssocMember Optional false (bool) Indicates whether the owner is member of the SHRM
    jobsOwnerWebsite Required Owner website
    jobsOwnerTitle Optional Owner's title
    jobsOwnerIndustrytype Optional Owner's business type
    jobsAdminIsAssocMember Optional false (bool) Indicates whether the administrative contact is member of the SHRM
    jobsAdminWebsite Required Administrative contact's website
    jobsAdminTitle Optional Administrative contact's title
    jobsAdminIndustrytype Optional Administrative contact's business type
    jobsTechIsAssocMember Optional false (bool) Indicates whether the technical contact is member of the SHRM
    jobsTechWebsite Required Technical contact's website
    jobsTechTitle Optional Technical contact's title
    jobsTechIndustrytype Optional Technical contact's business type
    jobsBillingIsAssocMember Optional false (bool) Indicates whether the billing contact is member of the SHRM
    jobsBillingWebsite Required Billing contact's website
    jobsBillingTitle Optional Billing contact's title
    jobsBillingIndustrytype Optional Billing contact's business type
    .lawyer, .attorney, .dentist, .airforce, .army, .navy domains

    Request parameters:

    Name Required Default Description
    coreContactInfo Required Contact information of competent bodies for complain and abuse notification
    .ltda domains

    Request parameters:

    Name Required Default Description
    ltdaAuthority Optional Authority who certifies the owner's profession
    ltdaLicenseNumber Optional Owner's licenser number
    .moscow domains

    Request parameters:

    Name Required Default Description
    ownerDateOfBirth Required
    if ownerContactType = individual
    Date of birth of the owner contact
    .my domains

    Request parameters:

    Name Required Default Description
    ownerDateOfBirth Required
    if ownerContactType = individual
    Date of birth of the owner contact
    .ru domains

    Request parameters:

    Name Required Default Description
    ownerDateOfBirth Required
    if ownerContactType = individual
    Date of birth of the owner contact
    ruIssuer Required
    if ownerContactType = individual
    Issuer of owner's certification
    ruIssuerDate Required
    if ownerContactType = individual
    Certification date of issuing
    .vndomains

    Request parameters:

    Name Required Default Description
    ownerDateOfBirth Required
    if ownerContactType = individual
    Date of birth of the owner contact
    .xxx domains

    Request parameters:

    Name Required Default Description
    xxxClass Required Type of user in the .xxx community
    default: Non-member
    membership: Member of the .xxx community
    nonResolver: Domain will not resolve DNS
    xxxName Required
    if xxxClass = default
    First and last name for .xxx community registration
    xxxEmail Required
    if xxxClass = default
    Email for .xxx community registration
    xxxId Required
    if xxxClass = membership
    ICM Registry ID (.xxx Community ID)

    5.4 Transfer ( domain/transfer/ )

    Use: Transfers a domain from any other Registrar to MrDomain.

    Tip: Before making a request to domain/transfer/, first check with domain/checkfortransfer/ if the domain is actually available to be transferred.

    Request:

    POST /domain/transfer/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    domain Required Domain name
    nameservers Optional parking List of DNS servers
    If parking, parking and redirection service will be assigned
    If keepns, current nameservers will be preserved
    Otherwise, provide a comma-separated list of DNS servers (min. 2, max. 7):
    ns1.dns.com,ns2.dns.com
    authcode Optional Authcode (EPP Code), if required by the TLD
    foacontact Optional owner Contact used to send the FOA email (Available values: owner or admin )
    ownerContact[Data] Required Owner contact data (See Create)
    adminContact[Data] Optional Administrative contact data. If not present, owner contact data will be used instead.
    techContact[Data] Optional Technical contact data. If not present, administrative contact data will be used instead.
    billingContact[Data] Optional Billing contact data. If not present, administrative contact data will be used instead.

    Contact data may be provided using the same format as in domain/create.

    Response fields description:

    Field Description
    billing/total Total cost of the operation
    billing/currency Currency used for cost
    domains/name Domain name
    domains/status Domain status
    domains/tld Domain TLD
    domains/tsExpir Domain expiration date
    domains/domainID Domain ID
    domains/inPromo (bool) Indicates whethere the TLD has a promo
    Just when is true

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "domain\/create",
        "version": "1.0.20",
        "responseData": {
            "billing": {
                "total": 12.04,
                "currency": "EUR"
            },
            "domains": [
                {
                    "name": "myexample.com",
                    "status": "register-init",
                    "tld": "com",
                    "tsExpir": "",
                    "domainID": 45762358,
                    "period": 1
                }
            ]
        }
    }

    5.4.1 TLD-specific parameters

    .jobs domains

    Request parameters:

    Name Required Default Description
    jobsOwnerIsAssocMember Optional false (bool) Indicates whether the owner is member of the SHRM
    jobsOwnerWebsite Required Owner website
    jobsOwnerTitle Optional Owner's title
    jobsOwnerIndustrytype Optional Owner's business type
    jobsAdminIsAssocMember Optional false (bool) Indicates whether the administrative contact is member of the SHRM
    jobsAdminWebsite Required Administrative contact's website
    jobsAdminTitle Optional Administrative contact's title
    jobsAdminIndustrytype Optional Administrative contact's business type
    jobsTechIsAssocMember Optional false (bool) Indicates whether the technical contact is member of the SHRM
    jobsTechWebsite Required Technical contact's website
    jobsTechTitle Optional Technical contact's title
    jobsTechIndustrytype Optional Technical contact's business type
    jobsBillingIsAssocMember Optional false (bool) Indicates whether the billing contact is member of the SHRM
    jobsBillingWebsite Required Billing contact's website
    jobsBillingTitle Optional Billing contact's title
    jobsBillingIndustrytype Optional Billing contact's business type
    Dominios .ru

    Request parameters:

    Name Required Default Description
    ownerDateOfBirth Required
    if ownerContactType = individual
    Date of birth of the owner contact
    ruIssuer Required
    if ownerContactType = individual
    Issuer of owner's certification
    ruIssuerDate Required
    if ownerContactType = individual
    Certification date of issuing

    5.5 Transfer Restart ( domain/transferrestart )

    Usage: Restart the transfer process. Allows to change the old authcode if needed.

    Request:

    POST /domain/transferrestart/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    domain Requerido
    (unless the field domainID is specified)
    Domain name
    domainID Requerido
    (unless the field domain is specified)
    Domain identifier
    authcode Optional New authcode, if needed
    foacontact Optional owner Contact used to send the FOA email (Available values: owner or admin )

    Response fields description:

    Field Description
    name Domain name
    status Domain status
    tld Domain TLD
    tsExpir Domain expiration date
    domainID Domain identifier

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "domain\/transferrestart",
        "version": "1.0.20",
        "messages": [
            "Operation done correctly."
        ],
        "responseData": {
            "name": "example-domain.tv",
            "status": "active",
            "tld": "tv",
            "tsExpir": "2015-05-14",
            "domainID": 60523498
        }
    }

    5.6 Update ( domain/update/ )

    Use: Update existing information about a domain: contacts, nameservers, lock status, etc.

    Request:

    POST /domain/update/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    domain Required
    (unless the field domainID is specified)
    Domain name
    domainID Required
    (unless the field domain is specified)
    Domain ID
    updateType Required Type of information to update
    contact: Update contacts
    nameservers: Update DNS servers
    transferBlock: Enable or disable the transfer lock
    block: Enable or disable the modifications lock
    whoisPrivacy: Enable or disable the Whois privacy service
    renewalMode: Change the renewal type
    tag: Update the domain tag
    viewWhois: Enable/Disable Whois information visibility
    updateType = contact
    ownerContact[Data] Optional Owner contact data (See Create)
    adminContact[Data] Optional Administrative contact data. If not present, owner contact data will be used instead.
    techContact[Data] Optional Technical contact data. If not present, administrative contact data will be used instead.
    billingContact[Data] Optional Billing contact data. If not present, administrative contact data will be used instead.
    updateType = nameservers
    nameservers Required List of DNS servers
    If default, MrDomain's DNS servers will be assigned for the appropriate service
    Otherwise, provide a comma-separated list of DNS servers (min. 2, max. 7):
    ns1.dns.com,ns2.dns.com
    updateType = transferBlock
    transferBlock Required false (bool) Transfer lock status
    updateType = block
    block Required false (bool) Modifications lock status
    updateType = whoisPrivacy
    whoisPrivacy Required false (bool) Whois Privacy service status
    updateType = viewWhois
    viewWhois Required false (bool) New status for Whois information visibility
    updateType = renewalMode
    renewalMode Required Renewal type ( Check table )
    updateType = tag
    tag Required Domain tag or tags (separated by ,)

    Response fields description:

    Field Description
    name Domain name
    status Domain status
    tld Domain TLD
    tsExpir Domain expiration date
    domainID Domain ID

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "domain\/update",
        "version": "1.0.20",
        "messages": [
            "Operation done correctly."
        ],
        "responseData": {
            "name": "example-domain.tv",
            "status": "active",
            "tld": "tv",
            "tsExpir": "2015-05-14",
            "domainID": 60523498
        }
    }

    5.7 Update NameServers ( domain/updatenameservers/ )

    Use: Update Nameservers ( wrapper for domain/update [updateType=nameservers] )

    Request:

    POST /domain/updatenameservers/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    domain Required
    (unless the field domainID is specified)
    Domain name
    domainID Required
    (unless the field domain is specified)
    Domain ID
    nameservers Required List of DNS servers
    If default, MrDomain's DNS servers will be assigned for the appropriate service
    Otherwise, provide a comma-separated list of DNS servers (min. 2, max. 7):
    ns1.dns.com,ns2.dns.com

    Response fields description:

    Field Description
    name Domain name
    status Domain status
    tld Domain TLD
    tsExpir Domain expiration date
    domainID Domain ID

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "domain\/updatenameservers",
        "version": "1.0.20",
        "responseData": {
            "name": "example-domain.tv",
            "status": "active",
            "tld": "tv",
            "tsExpir": "2015-05-14",
            "domainID": 60523498
        }
    }

    5.8 Update Contacts ( domain/updatecontacts/ )

    Use: Update domain contacts ( wrapper de domain/update [updateType=contact] )

    Request:

    POST /domain/updatecontacts/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    domain Required
    (unless the field domainID is specified)
    Domain name
    domainID Required
    (unless the field domain is specified)
    Domain ID
    ownerContact[Data] Optional Owner contact data (See Create)
    adminContact[Data] Optional Administrative contact data. If not present, owner contact data will be used instead.
    techContact[Data] Optional Technical contact data. If not present, administrative contact data will be used instead.
    billingContact[Data] Optional Billing contact data. If not present, administrative contact data will be used instead.

    Response fields description:

    Field Description
    name Domain name
    status Domain status
    tld Domain TLD
    tsExpir Domain expiration date
    domainID Domain ID

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "domain\/updatecontacts",
        "version": "1.0.20",
        "responseData": {
            "name": "example-domain.tv",
            "status": "active",
            "tld": "tv",
            "tsExpir": "2015-05-14",
            "domainID": 60523498
        }
    }

    5.9 GlueRecord Create ( domain/gluerecordcreate/ )

    Use: Create a DNS server associated with a domain (known as Gluerecord).

    Request:

    POST /domain/gluerecordcreate/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    domain Required
    (unless the field domainID is specified)
    Domain name
    domainID Required
    (unless the field domain is specified)
    Domain ID
    name Required Name of the DNS Server associated with the domain
    ipv4 Required IPv4 address of the DNS Server
    ipv6 Optional IPv6 address of the DNS Server

    Response fields description:

    Field Description
    name Domain name
    status Domain status
    tld Domain TLD
    tsExpir Domain expiration date
    domainID Domain ID
    gluerecords/name NS/Gluerecord server name
    gluerecords/ipv4 IPv4 address of the NS/Gluerecord server
    gluerecords/ipv6 IPv6 address of the NS/Gluerecord server

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "domain\/gluerecordcreate",
        "version": "1.0.20",
        "messages": [
            "Operation done correctly."
        ],
        "responseData": {
            "name": "test-expample-domain.com",
            "status": "active",
            "tld": "com",
            "tsExpir": "2016-02-14",
            "domainID": 1223423,
            "gluerecords": [
                {
                    "name": "ns1.test-expample-domain.com",
                    "ipv4": "212.20.40.200",
                    "ipv6": "2e02:2670:3:0:21a:4aff:fe24:c49f"
                },
                {
                    "name": "ns2.test-expample-domain.com",
                    "ipv4": "213.20.40.201",
                }
            ]
    
        }
    }

    5.10 GlueRecord Update ( domain/gluerecordupdate/ )

    Use: Update a DNS Server (Gluerecord) associated with a domain.

    Request:

    POST /domain/gluerecordupdate/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    domain Required
    (unless the field domainID is specified)
    Domain name
    domainID Required
    (unless the field domain is specified)
    Domain ID
    name Required Name of the DNS Server associated with the domain
    ipv4 Required IPv4 address of the DNS Server
    ipv6 Optional IPv6 address of the DNS Server

    Response fields description:

    Field Description
    name Domain name
    status Domain status
    tld Domain TLD
    tsExpir Domain expiration date
    domainID Domain ID
    gluerecords/name NS/Gluerecord server name
    gluerecords/ipv4 IPv4 address of the NS/Gluerecord server
    gluerecords/ipv6 IPv6 address of the NS/Gluerecord server

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "domain\/gluerecordupdate",
        "version": "1.0.20",
        "messages": [
            "Operation done correctly."
        ],
        "responseData": {
            "name": "test-expample-domain.com",
            "status": "active",
            "tld": "com",
            "tsExpir": "2016-02-14",
            "domainID": 1223423,
            "gluerecords": [
                {
                    "name": "ns1.test-expample-domain.com",
                    "ipv4": "212.20.40.203",
                    "ipv6": "2e02:2670:3:0:21a:4aff:fe24:c49f"
                },
                {
                    "name": "ns2.test-expample-domain.com",
                    "ipv4": "213.20.40.201",
                }
            ]
    
        }
    }

    5.11 GlueRecord Delete ( domain/gluerecorddelete/ )

    Use: Delete a DNS (Gluerecord) associated with a domain.

    Request:

    POST /domain/gluerecorddelete/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    domain Required
    (unless the field domainID is specified)
    Domain name
    domainID Required
    (unless the field domain is specified)
    Domain ID
    name Required Name of the DNS Server associated with the domain

    Response fields description:

    Field Description
    name Domain name
    status Domain status
    tld Domain TLD
    tsExpir Domain expiration date
    domainID Domain ID
    gluerecords/name NS/Gluerecord server name
    gluerecords/ipv4 IPv4 address of the NS/Gluerecord server
    gluerecords/ipv6 IPv6 address of the NS/Gluerecord server

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "domain\/gluerecorddelete",
        "version": "1.0.20",
        "messages": [
            "Operation done correctly."
        ],
        "responseData": {
            "name": "test-expample-domain.com",
            "status": "active",
            "tld": "com",
            "tsExpir": "2016-02-14",
            "domainID": 1223423,
            "gluerecords": [
                {
                    "name": "ns2.test-expample-domain.com",
                    "ipv4": "213.20.40.201",
                }
            ]
    
        }
    }

    5.12 List ( domain/list/ )

    Use: Lists and searchs domains in the MrDomain account.

    Request:

    POST /domain/list/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    pageLength Optional 1000 Maximum number of results
    page Optional 1 Results page number
    domain Optional Finds an exact domain name
    word Optional Finds all domain names containing this string
    tld Optional Limits search to a single TLD
    renewable Optional (Bool) If true, only renewable domains will be displayed
    infoType Optional If specified, adds information to the list. Check domain/getinfo to see all the fields for the response
    satus: General information about the domain.
    contact: Domain contact data (whois data)
    nameservers: DNS servers for the domain
    service: Service/hosting information
    gluerecords: Get the gluerecords associated with the domain
    owner Optional Owner contact identifier
    tag Optional Filter by domain tag
    status Optional Filter by domain status
    ownerverification Optional Filter by owner contact verification status

    Response fields description:

    Field Description
    queryInfo Information about the query made
    queryInfo/page Results page number
    queryInfo/pageLength Maximum number of results per page
    queryInfo/results Number of results obtained
    queryInfo/total Total number of results
    domains Array containing all domains found
    domains/name Domain name
    domains/status Domain status
    domains/tld Domain TLD
    domains/tsExpir Domain expiration date
    domains/domainID Domain ID

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "domain\/list",
        "version": "1.0.20",
        "responseData": {
            "queryInfo": {
                "page": 1,
                "pageLength": 10,
                "results": 10,
                "total": 27
            },
            "domains": [
                {
                    "name": "exampledomain1.com",
                    "status": "active",
                    "tld": "com",
                    "tsExpir": "2016-02-14",
                    "domainID": 1223421
                },
                {
                    "name": "exampledomain2.es",
                    "status": "active",
                    "tld": "es",
                    "tsExpir": "2016-02-28",
                    "domainID": 1123239
                }
                /*
                ,{ ....  }
                */
            ]
        }
    }

    5.13 Get Info ( domain/getinfo/ )

    Use: Retrieves information from a domain.

    Request:

    POST /domain/getinfo/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    domain Required
    (unless the field domainID is specified)
    Domain name
    domainID Required
    (unless the field domain is specified)
    Domain ID
    infoType Optional status Information type to retrieve
    status: General information about the domain
    contact: Contact data (whois)
    nameservers: DNS Servers
    authcode: Authcode (EPP Code)
    service: Information about related services/hosting
    gluerecords: Related gluerecords
    dnssec: Retrieves information about DNSSEC

    Response fields description:

    Field Description
    name Domain name
    status Domain status
    tld Domain TLD
    tsExpir Domain expiration date
    domainID Domain ID
    infoType = status
    tsCreate Creation date
    renewable (bool) Indicates whether the domain is in renewal period
    renewalMode Renewal type ( Check table )
    modifyBlock (bool) Indicates whether the domain has modifications blocked
    transferBlock (bool) Indicates whether the domain has transfers blocked
    (only for domains that allow it)
    whoisPrivacy (bool) Indicates whether the domain has the whois privacy service enabled
    (only for domains that allow it)
    viewWhois (bool) Indicates whether the Whois information visibility is enabled
    (only for domains that allow this)
    authcodeCheck (bool) Indicates whether the authcode can be retrieved with domain/getinfo/ [infoType=authcode]
    serviceAssociated (bool) Indicates whether the domain has a service or hosting associated
    tag Domain tag
    ownerverification Domain owner contact verification status (View related table)
    transferStatus Detailed information about the transfer status (View related table)
    infoType = contact
    contactOwner See Contact Response
    contactAdmin See Contact Response
    contactTech See Contact Response
    contactBilling See Contact Response
    infoType = nameservers
    defaultNS (bool) Indicates whether the domain has the default nameservers currently configured or not
    nameservers Array containing nameservers, see Nameservers Response
    infoType = authcode
    authcode Domain's authcode
    infoType = service
    service/name Name of the service/hosting
    service/type Type of service/hosting
    service/productkey Type of product key ( Check table )
    service/status Service/hosting status
    service/tsExpir Expiration date of service/hosting
    infoType = gluerecords
    gluerecords/name Name of the NS/Gluerecord server
    gluerecords/ipv4 IPv4 address of the NS/Gluerecord server
    gluerecords/ipv6 IPv6 addres of the NS/Gluerecord server
    infoType = dnssec
    dnssec/active Indicates whether the DNSSEC is currently enabled
    dnssec/entries Array containing all the DNSSEC entries
    dnssec/entries/keytag KeyTag for the DNSSEC entry
    dnssec/entries/algorithm Algorythm used for the DNSSEC entry
    dnssec/entries/digesttype Digest type used for the DNSSEC entry
    dnssec/entires/digest Digest for the DNSSEC entry

    Example with infoType = status

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "domain\/getinfo",
        "version": "1.0.20",
        "responseData": {
            "name": "example-domain.tv",
            "status": "active",
            "tld": "tv",
            "tsExpir": "2015-05-14",
            "domainID": 340598,
            "tsCreate": "2005-05-14",
            "renewable": true,
            "renewalMode": "autorenew",
            "modifyBlock": false,
            "transferBlock": true,
            "whoisPrivacy": true,
            "authcodeCheck": true,
            "serviceAssociated": false
            "ownerverification": "verified"
        }
    }

    Example with infoType = contact

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "domain\/getinfo",
        "version": "1.0.20",
        "responseData": {
            "name": "example-domain.tv",
            "status": "active",
            "tld": "tv",
            "tsExpir": "2015-05-14",
            "domainID": 340598,
            "contactOwner": {
                "contactID": "JXD-2355464",
                "contactType": "organization",
                "firstName": "John",
                "lastName": "Ballack",
                "orgName": "Gotham S.L",
                "orgType": 612,
                "identNumber": "B336789224",
                "email": "john@test.com",
                "phone": "+34.90234232",
                "fax": "",
                "address": "Calle García, 25",
                "postalCode": "87500",
                "city": "Gotham City",
                "state": "Madrid",
                "country": "ES",
                "verificationstatus": "verified",
                "daaccepted": true
            },
            "contactAdmin": {
                    /* ... */
            },
            "contactTech": {
                    /* ... */
            },
            "contactBilling": {
                    /* ... */
            }
        }
    }

    Example with infoType = nameservers

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "domain\/getinfo",
        "version": "1.0.20",
        "responseData": {
            "name": "example-domain.tv",
            "status": "active",
            "tld": "tv",
            "tsExpir": "2015-05-14",
            "domainID": 340598,
            "defaultNS": false,
            "nameservers": [
                {
                    "order": 1,
                    "name": "ns1.example.com",
                    "ipv4": "13.19.246.4"
                },
                {
                    "order": 2,
                    "name": "ns2.example.com",
                    "ipv4": "13.19.246.5"
                }
            ]
        }
    }

    Example with infoType = authcode

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "domain\/getinfo",
        "version": "1.0.20",
        "responseData": {
            "name": "example-domain.tv",
            "status": "active",
            "tld": "tv",
            "tsExpir": "2015-05-14",
            "domainID": 60523498,
            "authcode": "9523as&'asd1wAd"
        }
    }

    Example with infoType = service

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "domain\/getinfo",
        "version": "1.0.20",
        "responseData": {
            "name": "test-expample-domain.com",
            "status": "active",
            "tld": "com",
            "tsExpir": "2016-02-14",
            "domainID": 1223423,
            "service": {
                "name": "text-example-domain.com",
                "type": "Basic Hosting Service",
                "productkey": "basic",
                "status": "Active",
                "tsExpir": "2015-12-10"
            }
        }
    }

    Example with infoType = gluerecords

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "domain\/getinfo",
        "version": "1.0.20",
        "responseData": {
            "name": "test-expample-domain.com",
            "status": "active",
            "tld": "com",
            "tsExpir": "2016-02-14",
            "domainID": 1223423,
            "gluerecords": [
                {
                    "name": "ns1.test-expample-domain.com",
                    "ipv4": "212.20.40.200",
                    "ipv6": "2e02:2670:3:0:21a:4aff:fe24:c49f"
                },
                {
                    "name": "ns2.test-expample-domain.com",
                    "ipv4": "213.20.40.201",
                }
            ]
    
        }
    }

    Example with infoType = dnssec

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "domain\/getinfo",
        "version": "1.0.20",
        "responseData": {
            "name": "test-expample-domain.com",
            "status": "active",
            "tld": "com",
            "tsExpir": "2016-02-14",
            "domainID": 1223423,
            "dnssec": {
                  "active": true,
                  "entries": [
                        {
                            "keytag": 257,
                            "algorithm": 13,
                            "digesttype": 3,
                            "digest": "mdsswUyr3DPW132mOi8V9xESWE8jTo0dxCjjnopKl+GqJxpVXckHAeF+KkxLbxILfDLUT0rAK9iUzy1L53eKGQ=="
                        }
                  ]
              }
    
        }
    }

    5.14 Get AuthCode ( /domain/getauthcode/ )

    Uso: Retrieve a domain's authcode (EPP code) ( wrapper for /domain/getinfo [infoType=authcode])

    Request:

    POST /domain/getauthcode/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    domain Required
    (unless the field domainID is specified)
    Domain name
    domainID Required
    (unless the field domain is specified)
    Domain ID

    Response fields description:

    Field Description
    name Domain name
    status Domain status
    tld Domain TLD
    tsExpir Domain expiration date
    domainID Domain ID
    authcode Domain's Authcode (EPP Code)

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "domain\/getinfo",
        "version": "1.0.20",
        "responseData": {
            "name": "example-domain.tv",
            "status": "active",
            "tld": "tv",
            "tsExpir": "2015-05-14",
            "domainID": 60523498,
            "authcode": "9523as&'asd1wAd"
        }
    }

    5.15 Get NameServers ( /domain/getnameservers/ )

    Use: Retrieve a domain's DNS Servers (wrapper for /domain/getinfo [infoType=nameservers])

    Request:

    POST /domain/getnameservers/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    domain Required
    (unless the field domainID is specified)
    Domain name
    domainID Required
    (unless the field domain is specified)
    Domain ID

    Response fields description:

    Field Description
    name Domain name
    status Domain status
    tld Domain TLD
    tsExpir Domain expiration date
    domainID Domain ID
    defaultNS (bool) Indicates whether the DNS servers are the default ones for the service
    nameservers Array containing nameservers information, see Nameservers Response

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "domain\/getnameservers",
        "version": "1.0.20",
        "responseData": {
            "name": "example-domain.tv",
            "status": "active",
            "tld": "tv",
            "tsExpir": "2015-05-14",
            "domainID": 60523498,
            "defaultNS": false,
            "nameservers": [
                {
                    "order": 1,
                    "name": "ns1.example.com",
                    "ipv4": "13.19.246.4"
                },
                {
                    "order": 2,
                    "name": "ns2.example.com",
                    "ipv4": "13.19.246.5"
                }
            ]
        }
    }

    5.16 Get GlueRecords ( /domain/getgluerecords/ )

    Use: Retrieve NS/Gluerecord servers associated with a domain (wrapper for /domain/getinfo [infoType=gluerecords])

    POST /domain/getgluerecords/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    domain Required
    (unless the field domainID is specified)
    Domain name
    domainID Required
    (unless the field domain is specified)
    Domain ID

    Response fields description:

    Field Description
    name Domain name
    status Domain status
    tld Domain TLD
    tsExpir Domain expiration date
    domainID Domain ID
    gluerecords/name NS/Gluerecord server name
    gluerecords/ipv4 IPv4 address of the NS/Gluerecord server
    gluerecords/ipv6 IPv4 address of the NS/Gluerecord server

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "domain\/getgluerecords",
        "version": "1.0.20",
        "responseData": {
            "name": "test-expample-domain.com",
            "status": "active",
            "tld": "com",
            "tsExpir": "2016-02-14",
            "domainID": 1223423,
            "gluerecords": [
                {
                    "name": "ns1.test-expample-domain.com",
                    "ipv4": "212.20.40.200",
                    "ipv6": "2e02:2670:3:0:21a:4aff:fe24:c49f"
                },
                {
                    "name": "ns2.test-expample-domain.com",
                    "ipv4": "213.20.40.201",
                }
            ]
    
        }
    }

    5.17 Get DNSSEC ( /domain/getdnssec / )

    Use: Retrieve the DNSSEC entries associated with a domain (wrapper for /domain/getinfo [infoType=dnssec])

    POST /domain/getdnssec/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    domain Required
    (unless the field domainID is specified)
    Domain name
    domainID Required
    (unless the field domain is specified)
    Domain identifier

    Response fields description:

    Field Description
    name Domain name
    status Domain status
    tld Domain TLD
    tsExpir Domain expiration date
    domainID Domain identifier
    dnssec/active Indicates whether the DNSSEC is active
    dnssec/entries Array containing the DNSSEC entries
    dnssec/entries/keytag Keytag for the DNSSEC entry
    dnssec/entries/algorithm Algorithm for the DNSSEC entry
    dnssec/entries/digesttype Digest type for the DNSSEC entry
    dnssec/entries/digest Digest for the DNSSEC entry
    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "domain\/getdnssec",
        "version": "1.0.20",
        "responseData": {
            "name": "test-expample-domain.com",
            "status": "active",
            "tld": "com",
            "tsExpir": "2016-02-14",
            "domainID": 1223423,
            "dnssec": {
                  "active": true,
                  "entries": [
                        {
                            "keytag": 257,
                            "algorithm": 13,
                            "digesttype": 3,
                            "digest": "mdsswUyr3DPW132mOi8V9xESWE8jTo0dxCjjnopKl+GqJxpVXckHAeF+KkxLbxILfDLUT0rAK9iUzy1L53eKGQ=="
                        }
                  ]
              }
    
        }
    }

    5.18 DNSSEC Create ( domain/dnsseccreate/ )

    Use: Create a DNSSEC entry associated with a domain

    Request:

    POST /domain/dnsseccreate/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    domain Required
    (unless the field domainID is specified)
    Domain name
    domainID Required
    (unless the field domain is specified)
    Domain identifier
    keytag Required Keytag for the DNSSEC entry
    algorithm Required Algorythm for the DNSSEC entry
    digesttype Required Digest type for the DNSSEC entry
    digest Required Digest for the DNSSEC entry

    Response fields description:

    Field Description
    name Domain name
    status Domain status
    tld Domain TLD
    tsExpir Domain expiration date
    domainID Domain identifier
    dnssec/active Indicates whether the DNSSEC is active
    dnssec/entries Array containing the DNSSEC entries
    dnssec/entries/keytag Keytag for the DNSSEC entry
    dnssec/entries/algorithm Algorithm for the DNSSEC entry
    dnssec/entries/digesttype Digest type for the DNSSEC entry
    dnssec/entries/digest Digest for the DNSSEC entry

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "domain\/dnsseccreate",
        "version": "1.0.20",
        "messages": [
            "Operation done correctly."
        ],
        "responseData": {
            "name": "test-expample-domain.com",
            "status": "active",
            "tld": "com",
            "tsExpir": "2016-02-14",
            "domainID": 1223423,
            "dnssec": {
                  "active": true,
                  "entries": [
                        {
                            "keytag": 257,
                            "algorithm": 13,
                            "digesttype": 3,
                            "digest": "mdsswUyr3DPW132mOi8V9xESWE8jTo0dxCjjnopKl+GqJxpVXckHAeF+KkxLbxILfDLUT0rAK9iUzy1L53eKGQ=="
                        }
                  ]
        }
    }

    5.19 DNSSEC Delete ( domain/dnssecdelete/ )

    Use: Remove a DNSSEC entry associated with a domain.

    Request:

    POST /domain/dnssecdelete/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    domain Required
    (unless the field domainID is specified)
    Domain name
    domainID Required
    (unless the field domain is specified)
    Domain identifier
    keytag Required Keytag for the DNSSEC entry
    algorithm Required Algorithm for the DNSSEC entry
    digesttype Required Digest type for the DNSSEC entry
    digest Required Digest for the DNSSEC entry

    Response fields description:

    Field Description
    status Domain status
    tld Domain TLD
    tsExpir Domain expiration date
    domainID Domain identifier
    dnssec/active Indicates whether the DNSSEC is active
    dnssec/entries Array containing the DNSSEC entries
    dnssec/entries/keytag Keytag for the DNSSEC entry
    dnssec/entries/algorithm Algorithm for the DNSSEC entry
    dnssec/entries/digesttype Digest type for the DNSSEC entry
    dnssec/entires/digest Digest for the DNSSEC entry

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "domain\/dnssecdelete",
        "version": "1.0.20",
        "messages": [
            "Operation done correctly."
        ],
        "responseData": {
            "name": "test-expample-domain.com",
            "status": "active",
            "tld": "com",
            "tsExpir": "2016-02-14",
            "domainID": 1223423,
            "dnssec": {
                  "active": true,
                  "entries": [
                        {
                            "keytag": 257,
                            "algorithm": 13,
                            "digesttype": 3,
                            "digest": "mdsswUyr3DPW132mOi8V9xESWE8jTo0dxCjjnopKl+GqJxpVXckHAeF+KkxLbxILfDLUT0rAK9iUzy1L53eKGQ=="
                        }
                  ]
        }
    }

    5.20 Renew ( domain/renew/ )

    Use: Renew a domain.

    Request:

    POST /domain/renew/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    domain Required
    (unless the field domainID is specified)
    Domain name
    domainID Required
    (unless the field domain is specified)
    Domain ID
    curExpDate Required Current expiration date in YYYYMMDD or YYYY-MM-DD format
    period Optional Min years (usually 1 year) Number of years to renew the domain for (defaults to the minimum years the domain can be renewed)

    Response fields description:

    Field Description
    billing/total Total cost of the operation
    billing/currency Currency used for the cost
    domains/name Domain name
    domains/status Domain status
    domains/tld Domain TLD
    domains/domainID Domain ID
    domains/tsExpir Domain expiration date
    domains/renewPeriod Renewal period
    domains/inPromo (bool) Indicates whethere the TLD has a promo
    Just when is true

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "domain\/renew",
        "version": "1.0.20",
        "responseData": {
            "billing": {
                "total": 53.25,
                "currency": "EUR"
            },
            "domains": [
                {
                    "name": "example-domain.tel",
                    "status": "renewed",
                    "tld": "tel",
                    "domainID": 153508,
                    "tsExpir": "2015-05-17",
                    "renewPeriod": "4"
                }
            ]
        }
    }
    

    5.21 Whois ( domain/whois/ )

    Use: Retrieves public Whois information for a domain.

    Limitations:
    By default, it's only possible to retrieve public Whois information from domains in your own MrDomain account.

    Request:

    POST /domain/whois/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    domain Required Domain name in Punycode format

    Response fields description:

    Field Description
    domain Domain name
    whoisData Public Whois information in plain text

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "domain\/whois",
        "version": "1.0.20",
        "responseData": {
            "domain": "example1.com",
            "whoisData": "Domain Name: EXAMPLE1.COM\nRegistry Domain ID... whois data..."
        }
    }

    5.22 Resend Verification Mail ( domain/resendverificationmail )

    Use: Resend the verification email for the owner contact of the domain

    Request:

    POST /domain/resendverificationmail/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    domain Required
    (unless the field domainID is specified)
    Domain name
    domainID Required
    (unless the field domain is specified)
    Domain identifier

    Response fields description:

    Field Description
    name Domain name
    status Domain status
    tld Domain TLD
    tsExpir Domain expiration date
    domainID Domain identifier
    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "domain\/resendverificationmail",
        "version": "1.0.20",
        "messages": [
            "Operation done correctly."
        ],
        "responseData": {
            "name": "example-domain.tv",
            "status": "active",
            "tld": "tv",
            "tsExpir": "2015-05-14",
            "domainID": 60523498
        }
    }

    5.23 Resend FOA Mail ( domain/resendfoamail )

    Use: Resend the FOA authorization email to the owner contact

    Request:

    POST /domain/resendfoamail/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    domain Required
    (unless the field domainID is specified)
    Domain name
    domainID Required
    (unless the field domain is specified)
    Domain Identifier

    Response fields description:

    Field Description
    name Domain name
    status Domain status
    tld Domain TLD
    tsExpir Domain expiration date
    domainID Domain identifier
    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "domain\/resendfoamail",
        "version": "1.0.20",
        "messages": [
            "Operation done correctly."
        ],
        "responseData": {
            "name": "example-domain.tv",
            "status": "active",
            "tld": "tv",
            "tsExpir": "2015-05-14",
            "domainID": 60523498
        }
    }

    5.24 Reset FOA ( domain/resetfoa )

    Use: Restart the domain authorization process (only for domains with transfer in process)

    Request:

    POST /domain/resetfoa/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    domain Required
    (unless the field domainID is specified)
    Domain name
    domainID Required
    (unless the field domain is specified)
    Domain identifier

    Response fields description:

    Field Description
    name Domain name
    status Domain status
    tld Domain TLD
    tsExpir Domain expiration date
    domainID Domain identifier
    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "domain\/resetfoa",
        "version": "1.0.20",
        "messages": [
            "Operation done correctly."
        ],
        "responseData": {
            "name": "example-domain.tv",
            "status": "transfer-init",
            "tld": "tv",
            "tsExpir": "2015-05-14",
            "domainID": 60523498
        }
    }

    5.25 Get History ( domain/gethistory/ )

    Use: Domain history.

    Request:

    POST /domain/gethistory/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    pageLength Optional 1000 Maximum number of results
    page Optional 1 Results page number
    domain Required
    (unless the field domainID is specified)
    Domain name
    domainID Required
    (unless the field domain is specified)
    Domain ID

    Response fields description:

    Field Description
    queryInfo Information about the query made
    queryInfo/page Results page number
    queryInfo/pageLength Maximum number of results per page
    queryInfo/results Number of results obtained
    queryInfo/total Total number of results
    name Domain name
    status Domain status
    tld Domain TLD
    tsExpir Domain expiration date
    domainID Domain ID
    history/ts History TimeStamp
    history/ip IP Address
    history/title Title
    history/message Message

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "domain\/gethistory",
        "version": "1.0.20",
        "responseData": {
            "name": "example-domain.tv",
            "status": "active",
            "tld": "tv",
            "tsExpir": "2015-05-14",
            "queryInfo": {
                "page": 1,
                "pageLength": 1,
                "results": 1,
                "total": 82
            },
            "history": [
                {
                    "ts": "2018-05-29 12:34:07",
                    "ip": "1.1.1.1",
                    "user": "malcomX",
                    "title": "Whois Privacy status",
                    "message": "The Whois privacy service has been activated."
                }
            ]
    
        }
    }

    5.26 List Deleted ( domain/listdeleted/ )

    Uso: Deleted domains list

    Request:

    POST /domain/listdeleted/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    pageLength Optional 1000 Maximum number of results
    page Optional 1 Results page number

    Response fields description:

    Field Description
    queryInfo Information about the query made
    queryInfo/page Results page number
    queryInfo/pageLength Maximum number of results per page
    queryInfo/results Number of results obtained
    queryInfo/total Total number of results
    domains Array containing all domains found
    domains/name Domain name
    domains/tld Domain TLD
    domains/tsDeleted Domain deleted date
    domains/info Domain deleted info
    
    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "domain\/listdeleted",
        "version": "1.0.20",
        "responseData": {
            "queryInfo": {
                "page": 1,
                "pageLength": 2,
                "results": 2,
                "total": 5
            },
            "domains": [
                {
                    "name": "domaindeleted.sexy",
                    "tld": "sexy",
                    "tsDeleted": "2018-11-25",
                    "info": "Domain expired"
                },
                {
                    "name": "dondominio.test",
                    "tld": "si",
                    "tsDeleted": "2015-11-26",
                    "info": "Domain expired"
                }
            ]
        }
    }

    5.27 Contact Response

    Response fields description:

    Field Description
    contactID Contact ID
    contactType Contact type:
    individual: Individual
    organization: Organization/Company
    firstName First name
    lastName Last name
    orgName Organization/Company name
    orgType If Country = ES, organization type code (See table)
    identNumber VAT number, passport, individual or organization ID number
    email Email
    phone Phone number in +DD.DDDDDDDD format
    fax Fax number in +DD.DDDDDDDD format
    address Address
    postalCode Postal code
    city City
    state State/Province
    country Country code (See table)
    verificationstatus Verification status for contact data (see table)
    daaccepted Verification status for Designated Agent (DA)
    esNicHandle NIC Handle for .ES domains

    Response example:

    {
        /* ... */
         "contact": {
                "contactID": "XXX-12323428",
                "contactType": "individual",
                "firstName": "James",
                "lastName": "Smith",
                "orgName": "",
                "orgType": "",
                "identNumber": "556465463E",
                "email": "james.smith@example.es",
                "phone": "+34.626891524",
                "fax": "",
                "address": "Vía grande, 25",
                "postalCode": "17509",
                "city": "Mycity",
                "state": "My Province",
                "country": "ES",
                "verificationstatus": "verified",
                "daaccepted": true,
                "esNicHandle": "XX8892-ESNIC-F4"
          }
    }

    5.28 Nameserver Response

    Response fields description:

    Field Description
    order Order number (priority) of the Nameserver
    name Name of the Nameserver
    ipv4 IPv4 address of the nameserver

    Response example:

    {
        /* ... */
          "nameservers": [
                {
                     "name": "ns3.dondominio.com",
                     "order": 1,
                     "ipv4": "37.152.88.12"
                },
                {
                     "name": "ns2.dondominio.com",
                     "order": 2,
                     "ipv4": "178.33.146.32"
                }
          ]
    }

    5.29 Domain Related tables

    5.29.1 Domain Status

    Status Definition
    register-init Registration not started
    register-pending Registration in process
    register-cancel Registration cancelled
    transfer-init Transfer not started
    transfer-pending Transfer pending
    transfer-cancel Transfer cancelled
    inactive Inactive
    active Active
    renewed Renewal in process
    expired-renewgrace Expired (Under grace period)
    expired-redemption Expired (Redemption period)
    expired-pendingdelete Expired (Pending deletion)

    5.29.2 Transfer Status

    Status Definition
    init Transfer not initiated
    queued Pending aprovation by registry
    set-auth Authcode transmitted
    pending-auth Authcode pending
    pending-foa FOA pending
    pending-tag Tag pending (.UK)
    pending-registry Pending more data by the registry
    cancelled Cancelled
    completed Completed

    5.29.3 Renovation types

    Keyword Definition
    autorenew Automatic renewal
    manual Manual renewal
    letexpire Leave it to expire

    5.29.4 Domain Owner Contact Verification Status

    Status Definition
    verified Verified
    notapplicable Not allowed or not needed
    inprocess Verification in process
    failed Verification failed or expired

    5.29.5 Contact Verification Status

    Status Definition
    verified Verified
    notapplicable Not allowed or not needed
    inprocess Verification in process
    failed Verification failed or expired

    6 Module: Contact

    The contact module allows access to different options available for domain contacts (list, search, retrieve details, etc).

    Available actions:

    Action Authentication Description
    /contact/create/ Required Creates a contact in the account
    /contact/list/ Required Search/Filter/List domain contacts in the account
    /contact/getinfo/ Required Retrieve detailed information from an account
    /contact/resendverificationmail/ Required Resend the verification email for contact data

    6.1 Create ( contact/create/ )

    Use: Create a contact in the account.

    Request:

    POST /contact/create/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    Type Required Contact type: individual or organization
    FirstName Required First name
    LastName Required Last name
    OrgName Required
    if ownerContactType = organization
    Organization or company name
    OrgType Required
    if ownerContactType = organization
    and ownerCountry = ES
    Spanish organization type (See table)
    IdentNumber Required Tax identification number, VAT Number, ID Card number...
    Email Required Email
    Phone Required Phone number in +DD.DDDDDDDD format
    Fax Optional Fax number in +DD.DDDDDDDDD format
    Address Required Address
    PostalCode Required Postal code
    City Required City
    State Required State/Province
    Country Required (String 2 characters) Country code (See table)

    Response fields description:

    Field Description
    contactID Contact ID
    contactType Contact type:
    individual: Individual
    organization: Organization/Company
    firstName First name
    lastName Last name
    orgName Organization/Company name
    orgType If Country = ES, organization type code (See table)
    identNumber VAT number, passport, individual or organization ID number
    email Email
    phone Phone number in +DD.DDDDDDDD format
    fax Fax number in +DD.DDDDDDDD format
    address Address
    postalCode Postal code
    city City
    state State/Province
    country Country code (See table)
    verificationstatus Verification status for contact data (See contact verification status table)
    daaccepted Verification status for Designated Agent (DA)

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "contact\/create",
        "version": "1.0.20",
        "messages": [
            "Operation done correctly."
        ],
        "responseData": {
            "contactID": "WF-420197",
            "contactType": "individual",
            "firstName": "Will",
            "lastName": "Ford",
            "orgName": "",
            "orgType": "",
            "identNumber": "AAAAAA",
            "email": "testtest@test.com",
            "phone": "+1.123456789",
            "fax": "",
            "address": "Street 1",
            "postalCode": "12345",
            "city": "Gotham City",
            "state": "Gotham",
            "country": "US",
            "verificationstatus": "notapplicable",
            "daaccepted": false
        }
    }

    6.2 List ( contact/list/ )

    Use: Searches and lists domain contacts in the MrDomain account.

    Request:

    POST /contact/list/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    pageLength Optional 1000 Maximum number of results
    page Optional 1 Results page number
    name Optional String to search by name/organization
    email Optional Filter by Email
    country Optional Filter by country code
    identNumber Optional Filter by identification number
    verificationstatus Optional Filter by verification status
    daaccepted Optional (Bool) Filter by contacts that have the Designated Agent (DA) accepted or not accepted

    Response fields description:

    Field Description
    queryInfo Information about the query made
    queryInfo/page Results page number
    queryInfo/pageLength Maximum number of results per page
    queryInfo/results Number of results obtained
    queryInfo/total Total number of results
    contacts/contactID Contact ID
    contacts/contactType Contact type:
    individual: Individual
    organization: Organization/Company
    contacts/contactName Contact's name ( Organization Name or Individual Name)
    contacts/email Email
    contacts/country Country code (See table)
    contacts/verificationstatus Status of contact data verification (View related table)
    contacts/daaccepted Whether the contact has the Designated Agent (DA) accepted or not
    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "contact\/list",
        "version": "1.0.20",
        "responseData": {
            "queryInfo": {
                "page": 1,
                "pageLength": 1000,
                "results": 14,
                "total": 14
            },
            "contacts": [
                {
                    "contactID": "JS-199180",
                    "contactType": "individual",
                    "contactName": "John Smith",
                    "identNumber": "4-8-15-16-23-42",
                    "email": "johnsmith@example.xv",
                    "country": "US",
                    "verificationstatus": "verified",
                    "daaccepted": true
                },
                {
                    "contactID": "WF-420197",
                    "contactType": "individual",
                    "contactName": "Will Ford",
                    "identNumber": "AAAAAA",
                    "email": "testtest@test.com",
                    "country": "US",
                    "verificationstatus": "notapplicable",
                    "daaccepted": false
                }
                /*
                ,{ ....  }
                */
            ]
        }
    }

    6.3 Get Info ( contact/getinfo/ )

    Use: Retrieves information from a contact.

    Request:

    POST /contact/getinfo/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    contactID Required Contact ID
    infoType Optional data Type of information to retrieve
    data: Contact data

    Response fields description:

    Field Description
    infoType = data
    contactXXX See Contact Response section

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "contact\/getinfo",
        "version": "1.0.20",
        "responseData": {
                "contactID": "JXD-2355464",
                "contactType": "organization",
                "firstName": "John",
                "lastName": "Ballack",
                "orgName": "Gotham S.L",
                "orgType": 612,
                "identNumber": "B336789224",
                "email": "john@test.com",
                "phone": "+34.90234232",
                "fax": "",
                "address": "Calle García, 25",
                "postalCode": "87500",
                "city": "Gotham City",
                "state": "Madrid",
                "country": "ES",
                "verificationstatus": "verified",
                "daaccepted": true
        }
    }

    6.4 Resend Verification Mail ( contact/resendverificationmail )

    Uso: Resend the verification email for contact data

    Request:

    POST /contact/resendverificationmail/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    contactID Required Contact identifier

    Response fields description:

    Field Description
    contactID Contact identifier
    contactType Contact type:
    individual: Individual
    organization: Organization / Company
    contactName Main name for the contact ( Organization Name or Individual Name)
    email Email
    country Country code (View table)
    verificationstatus Contact data verification status (View related table)
    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "contact\/resendverificationmail",
        "version": "1.0.20",
        "messages": [
            "Operation done correctly."
        ],
        "responseData": {
                 "contactID": "CTS-378084",
                 "contactType": "organization",
                 "contactName": "Clark Tech S.L",
                 "identNumber": "XSS2342342-3",
                 "email": "tech-email@example.com",
                 "country": "ES",
                 "verificationstatus": "verified"
        }
    }

    7 Module: Service

    The service module allows to access various options about shared hostings and email services.

    Available actions:

    Action Authentication Description
    /service/list/ Required Search/Filter/List associated services
    /service/getinfo/ Required Retrieve information about a service/hosting
    /service/create/ Required Create/associate to a new service/hosting
    /service/renew/ Required Renew a service/hosting
    /service/upgrade/ Required Upgrade to a higher service/hosting plan
    /service/update/ Required Change global settings of a service/hosting
    /service/parkinggetinfo/ Required Retrieve information about the parking service
    /service/parkingupdate/ Required Update the parking service status
    /service/webconstructorlogin/ Required Retrieve the URL to log in the Webconstructor service
    /service/ftplist/ Required Search/Filter/List FTP accounts associated with a service/hosting
    /service/ftpgetinfo/ Required Retrieve information about an FTP account
    /service/ftpcreate/ Required Create an FTP account
    /service/ftpupdate/ Required Modify an FTP account
    /service/ftpdelete/ Required Delete an FTP account
    /service/ddbblist/ Required Search/Filter/List database accounts associated with a service/hosting
    /service/ddbbgetinfo/ Required Retrieve information about a database
    /service/ddbbcreate/ Required Create a database
    /service/ddbbupdate/ Required Modify a database
    /service/ddbbdelete/ Required Delete a database
    /service/subdomainlist/ Required Search/Filter/List the subdomains associated with a service/hosting
    /service/subdomaingetinfo/ Required Retrieve information about a subdomain
    /service/subdomaincreate/ Required Create a subdomain
    /service/subdomainupdate/ Required Modify a subdomain
    /service/subdomaindelete/ Required Delete a subdomain
    /service/redirectlist/ Required Search/Filter/List the redirections associated with a service/hosting
    /service/redirectgetinfo/ Required Retrieve information about a redirection
    /service/redirectcreate/ Required Create a redirection
    /service/redirectupdate/ Required Modify a redirection
    /service/redirectdelete/ Required Delete a redirection
    /service/maillist/ Required Search/Filter/List email accounts associated with a service/hosting
    /service/mailgetinfo/ Required Retrieve information about an email account
    /service/mailcreate/ Required Create an email account
    /service/mailupdate/ Required Modify an email account
    /service/maildelete/ Required Delete an email account
    /service/mailaliaslist/ Required Search/Filter/List email alias associated with a service/hosting
    /service/mailaliasgetinfo/ Required Retrieve information about a mail alias
    /service/mailaliascreate/ Required Create a mail alias
    /service/mailaliasupdate/ Required Modify a mail alias
    /service/mailaliasdelete/ Required Delete a mail alias
    /service/dnslist/ Required Search/Filter/List DNS zones associated with a service/hosting
    /service/dnsgetinfo/ Required Retrieve information about a DNS zone
    /service/dnscreate/ Required Create a DNS zone
    /service/dnsupdate/ Required Modify a DNS zone
    /service/dnsdelete/ Required Delete a DNS zone
    /service/dnsrestore/ Required Restore all DNS zones to the default values
    /service/dnssetzone/ Required Sets all the DNS zones
    /service/dnsdeleteall/ Required Delete all DNS zones

    7.1 List ( service/list/ )

    Use: Perform a listing/search of the services and hostings in your account

    Request:

    POST /service/list/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    pageLength Optional 1000 Maximum number of results
    page Optional 1 Results page number
    name Optional Exact name of the service/hosting to find
    word Optional Substring to filter the service/hosting list
    tld Optional String to filter the service/hosting list by TLD
    renewable Optional (Bool) Filter by renewable status of the service/hosting
    status Optional Filter by service/hosting status

    Response fields description:

    Field Description
    queryInfo Information about the query made
    queryInfo/page Results page number
    queryInfo/pageLength Maximum number of results per page
    queryInfo/results Number of results obtained
    queryInfo/total Total number of results
    services List of services/hostings retrieved by the query
    services/name Name of the service/hosting
    services/status Service status ( view table )
    services/type Type of service/hosting
    services/productkey Service/hosting type key
    services/tsExpir Expiration date of the hosting

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "service\/list",
        "version": "1.0.20",
        "responseData": {
            "queryInfo": {
                "page": 1,
                "pageLength": 5,
                "results": 5,
                "total": 1
            },
            "services": [
                {
                    "name": "example-test.net",
                    "type": "Basic Hosting Service",
                    "status": "active",
                    "tsExpir": "2025-06-19"
                },
                {
                    "name": "example-123test.cat",
                    "type": "Mini Hosting Service",
                    "status": "active",
                    "tsExpir": "2018-10-09"
                }
                /*
                ,{ ....  }
                */
            ]
        }
    }

    7.2  Get Info ( service/getinfo/ )

    Use: Retrieve information from a service or hosting

    Request:

    POST /service/getinfo/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    serviceName Required Service name
    infoType Optional status Type of information to retrieve
    status: General information about the service/hosting
    resources: Information about the resources available in the hosting
    serverinfo: Information about the servers and paths associated to a service
    php: Information about PHP version
    logerror Lines of the log error file from the hosting

    Response fields description:

    Field Description
    name Service/Hosting name
    status Service status ( Check table )
    type Type of service/hosting
    tsExpir Date of expiration of the hosting
    infoType = status
    tsCreate Date of creation of the service
    renewable (bool) Indicates whether the service is in its renew period or not
    renewalMode Renewal type ( Check table )
    infoType = resources
    resources/ftpusage/value FTP usage value
    resources/ftpusage/max Maximum FTP usage value
    resources/ftpusage/unit Unit for the FTP usage (bytes)
    resources/ftpfiles/value Number of existing files
    resources/ftpfiles/max Maximum number of files allowed
    resources/ftpfiles/unit Existing files unit (files)
    resources/webtraffic/value Current month traffic consumption value
    resources/webtraffic/max Maximum monthly traffic consumption value
    resources/webtraffic/unit Monthly traffic unit (bytes)
    resources/ftp/value Number of FTP accounts
    resources/ftp/max Maximum number of FTP accounts
    resources/ftp/unit -
    resources/ddbb/value Number of databases
    resources/ddbb/max Maximum number of databases
    resources/ddbb/unit -
    resources/ddbbusage/value Space used by databases
    resources/ddbbusage/max Maximum possible space used by databases
    resources/ddbbusage/unit Unit for spaced used by databases (bytes)
    resources/subdomain/value Number of subdomains
    resources/subdomain/max Maximum possible number of subdomains
    resources/subdomain/unit -
    resources/email/value Number of email accounts
    resources/email/max Maximum possible number of email accounts
    resources/email/unit -
    resources/emailalias/value Number of email alias accounts
    resources/emailalias/max Maximum possible number of email alias accounts
    resources/emailalias/unit -
    infoType = php
    php/enabled (bool) Indicates whether PHP is active at the service
    php/version Actual PHP version
    php/name Text with the actual PHP version
    php/available List of available PHP versions
    infoType = serverinfo
    serverinfo/ftpServer Name of the FTP server
    serverinfo/ftpAbsolutePath Absolute path of the FTP server
    serverinfo/ftpWebServer FTP web server
    serverinfo/smtpServer SMTP server ( outgoing email )
    serverinfo/pop3Server POP3 server
    serverinfo/imapServer IMAP server
    serverinfo/webmail Webmail service
    serverinfo/ddbbServer Database server
    serverinfo/PHPMyAdmin Local PHPMyAdmin application to manage databases
    infoType = logerror
    logError Lines of the log error file from the hosting

    Example for infotype = status

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "service\/getinfo",
        "version": "1.0.20",
        "responseData": {
            "name": "example-test01.com",
            "type": "Basic Hosting Service",
            "status": "active",
            "tsExpir": "2015-12-10",
            "tsCreate": "2014-12-10"
            "renewable": false,
        }
    }

    Example for infotype = resources

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "service\/getinfo",
        "version": "1.0.20",
        "responseData": {
            "name": "example-test01.com",
            "type": "Basic Hosting Service",
            "status": "active",
            "tsExpir": "2015-12-10",
            "resources": {
                "ftpusage": {
                    "value": 11534336,
                    "max": 1038336000,
                    "unit": "bytes"
                },
                "ftpfiles": {
                    "value": 4574,
                    "max": 100101,
                    "unit": "files"
                },
                "webtraffic": {
                    "value": 0,
                    "max": 12759072768,
                    "unit": "bytes"
                },
                "ftp": {
                    "value": 1,
                    "max": 100,
                    "unit": ""
                },
                "ddbb": {
                    "value": 1,
                    "max": 10,
                    "unit": ""
                },
                "ddbbusage": {
                    "value": 0,
                    "max": 104857600,
                    "unit": "bytes"
                },
                "subdomain": {
                    "value": 2,
                    "max": 100,
                    "unit": ""
                },
                "email": {
                    "value": 1,
                    "max": 100,
                    "unit": ""
                },
                "emailalias": {
                    "value": 0,
                    "max": 100,
                    "unit": ""
                }
            }
        }
    }

    Ejemplo de infoType = php

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "service\/getinfo",
        "version": "1.0.20",
        "responseData": {
            "name": "example.com",
            "type": "Advanced Hosting Service",
            "productkey": "advanced",
            "status": "renewed",
            "tsExpir": "2022-12-10",
            "php": {
                "enabled": true,
                "version": "default",
                "name": "Default version (PHP 7.4)",
                "available": [
                    "default",
                    "8.0",
                    "7.4",
                    "7.3",
                    "7.2",
                    "7.1",
                    "7.0"
                ]
            }
        }
    }

    Example for infoType = serverinfo

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "service\/getinfo",
        "version": "1.0.20",
        "responseData": {
            "name": "example-test01.com",
            "type": "Basic Hosting Service",
            "status": "active",
            "tsExpir": "2015-12-10",
            "serverinfo": {
                "ftpServer": "ftp.example-test01.com",
                "ftpAbsolutePath": "\/var\/www\/example-test01.com\/",
                "ftpWebServer": "https:\/\/webftp.dondominio.com\/\/?ftpserver=example-test01.com",
                "smtpServer": "smtp.example-test01.com",
                "pop3Server": "pop3.example-test01.com",
                "imapServer": "imap.example-test01.com",
                "webmail": "http:\/\/webmail.example-test01.com\/",
                "ddbbServer": "bbdd.example-test01.com",
                "PHPMyAdmin": "https:\/\/adminbbdd.dondominio.com\/?server=2341"
            }
        }
    }

    Example for infoType = logerror

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "service\/getinfo",
        "version": "1.0.20",
        "responseData": {
            "name": "example.com",
            "type": "Advanced Hosting Service",
            "productkey": "advanced",
            "status": "renewed",
            "tsExpir": "2022-12-10",
            "logError": "[Tue Jun 29 15:50:00.160542 2021] [autoindex:error] [pid 25304] [client 66.249.75.99:35422] AH01276: Cannot serve directory \/var\/www\/example.com\/public\/: No matching DirectoryIndex (index.html,index.cgi,index.pl,index.php,index.xhtml,index.htm) found, and server-generated directory index forbidden by Options directive\n[Tue Jun 29 15:29:47.009317 2021] [autoindex:error] [pid 25239] [client 167.71.170.4:60098] AH01276: Cannot serve directory \/var\/www\/example.com\/public\/: No matching DirectoryIndex (index.html,index.cgi,index.pl,index.php,index.xhtml,index.htm) found, and server-generated directory index forbidden by Options directive\n [Tue Jun 29 14:13:27.001780 2021] [-:error] [pid 25239] [client 3.141.12.245:33556] [client 3.141.12.245] ModSecurity: Access denied with code 403 (phase 2). Pattern match \"python-requests\/\" at REQUEST_HEADERS:User-Agent. [file \"\/etc\/modsecurity\/atomicorp-rules\/20_asl_useragents.conf\"] [line \"218\"] [id \"332039\"] [rev \"4\"] [msg \"Atomicorp.com WAF Rules: Suspicious Unusual User Agent (python-requests).  Disable this rule if you use python-requests\/. \"] [severity \"CRITICAL\"] [hostname \"example.com\"] [uri \"\/\"] [unique_id \"YNsOZrGlwUcMzwtNS8vwywAAAOQ\"]\n[Tue Jun 29 14:13:26.507079 2021] [-:error] [pid 25239] [client 3.141.12.245:43320] [client 3.141.12.245] ModSecurity: Access denied with code 403 (phase 2). Pattern match \"python-requests\/\" at REQUEST_HEADERS:User-Agent. [file \"\/etc\/modsecurity\/atomicorp-rules\/20_asl_useragents.conf\"] [line \"218\"] [id \"332039\"] [rev \"4\"] [msg \"Atomicorp.com WAF Rules: Suspicious Unusual User Agent (python-requests).  Disable this rule if you use python-requests\/. \"] [severity \"CRITICAL\"] [hostname \"www.example.com\"] [uri \"\/\"] [unique_id \"YNsOZrGlwUcMzwtNS8vwygAAAOY\"]\n[Tue Jun 29 12:50:44.666937 2021] [autoindex:error] [pid 25167] [client 52.13.105.193:35674] AH01276: Cannot serve directory \/var\/www\/example.com\/public\/: No matching DirectoryIndex (index.html,index.cgi,index.pl,index.php,index.xhtml,index.htm) found, and server-generated directory index forbidden by Options directive\n[Tue Jun 29 11:49:00.301716 2021] [autoindex:error] [pid 25304] [client 54.202.141.28:4167] AH01276: Cannot serve directory \/var\/www\/example.com\/public\/: No matching DirectoryIndex (index.html,index.cgi,index.pl,index.php,index.xhtml,index.htm) found, and server-generated directory index forbidden by Options directive\n[Tue Jun 29 11:47:53.370047 2021] [autoindex:error] [pid 25284] [client 34.214.184.5:63343] AH01276: Cannot serve directory \/var\/www\/example.com\/public\/: No matching DirectoryIndex (index.html,index.cgi,index.pl,index.php,index.xhtml,index.htm) found, and server-generated directory index forbidden by Options directive\n[Tue Jun 29 08:46:07.219298 2021] [proxy_fcgi:error] [pid 25239] [client 118.70.52.135:48470] AH01071: Got error 'PHP message: PHP Warning:  get_comment(): Argument #1 ($comment) must be passed by reference, value given in \/hosting\/www\/example.com\/blog\/wp-includes\/class-wp-comment-query.php on line 484'\n[Tue Jun 29 07:54:01.638034 2021] [-:error] [pid 25239] [client 5.188.210.4:63137] [client 5.188.210.4] ModSecurity: Access denied with code 403 (phase 2). Pattern match \"(?:getfoldersandfiles|fileupload)\" at ARGS:Command. [file \"\/etc\/modsecurity\/atomicorp-rules\/99_asl_jitp.conf\"] [line \"1015\"] [id \"388000\"] [rev \"1\"] [msg \"Atomicorp.com WAF Rules - Virtual Just In Time Patch: Possible Attempt to Access vulnerable FCKeditor file upload connector (Disable if you have configured this connector to require authentication)\"] [data \"\/editor\/filemanager\/connectors\/php\/connector.php\"] [severity \"CRITICAL\"] [hostname \"www.example.com\"] [uri \"\/admin\/editor\/editor\/filemanager\/connectors\/php\/connector.php\"] [unique_id \"YNq1ebGlwUcMzwtNS8vu@QAAAOI\"]\n [Tue Jun 29 01:37:46.075771 2021] [-:error] [pid 25284] [client 52.14.240.234:59064] [client 52.14.240.234] ModSecurity: Access denied with code 403 (phase 2). Pattern match \"python-requests\/\" at REQUEST_HEADERS:User-Agent. [file \"\/etc\/modsecurity\/atomicorp-rules\/20_asl_useragents.conf\"] [line \"218\"] [id \"332039\"] [rev \"4\"] [msg \"Atomicorp.com WAF Rules: Suspicious Unusual User Agent (python-requests).  Disable this rule if you use python-requests\/. \"] [severity \"CRITICAL\"] [hostname \"example.com\"] [uri \"\/\"] [unique_id \"YNpdSkLrDsBNjnn2uRmQmwAAAAo\"]\n"
        }
    }

    7.3 Create ( service/create/ )

    Use: Create or associate a new hosting service

    Tip: Some operations may use credit. You can check your available credit with a query to account/info/.

    Request:

    POST /service/create/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    serviceName Required Name of the service
    productkey Required Product key code ( Check table)
    period Optional 1 Duration of the service, in years

    Response fields description:

    Field Description
    billing/total Total cost of the operation
    billing/currency Currency used
    services/name Name of the service/hosting
    services/status Service status ( Check table )
    services/type Type of service/hosting
    services/productkey Key code of the type of service/hosting
    services/tsExpir Expiration date of the hosting

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "service\/create",
        "version": "1.0.20",
        "messages": [
            "Operation done correctly."
        ],
        "responseData": {
            "billing": {
                "total": 12.04,
                "currency": "EUR"
            },
            "services": [
                {
                    "name": "example-test.net",
                    "type": "Basic Hosting Service",
                         "productkey": "basic",
                    "status": "active",
                    "tsExpir": "2025-06-19"
                }
              ]
        }
    }

    7.4 Renew ( service/renew/ )

    Use: Renew a hosting service

    Tip: Some operations may use credit. You can check your available credit with a query to account/info/.

    Request:

    POST /service/renew/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    serviceName Required Service name
    period Optional 1 Years to renew

    Response fields description:

    Field Description
    billing/total Total cost of the operation
    billing/currency Currency used
    services/name Name of the service/hosting
    services/status Service status ( Check table )
    services/type Type of service/hosting
    services/productkey Key of the type of service/hosting
    services/tsExpir Expiration date of the hosting

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "service\/renew",
        "version": "1.0.20",
        "messages": [
            "Operation done correctly."
        ],
        "responseData": {
            "billing": {
                "total": 12.04,
                "currency": "EUR"
            },
            "services": [
                {
                    "name": "example-test.net",
                    "type": "Basic Hosting Service",
                         "productkey": "basic",
                    "status": "renewed",
                    "tsExpir": "2025-06-19"
                }
              ]
        }
    }

    7.5 Upgrade ( service/upgrade/ )

    Use: Upgrade a service/hosting plan to a higher one

    Tip: Some operations may use credit. You can check your available credit with a query to account/info/.

    Request:

    POST /service/upgrade/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    serviceName Required Name of the service
    productkey Required Product key code ( Check table )

    Response fields description:

    Field Description
    billing/total Total cost of the operation
    billing/currency Currency used
    services/name Name of the service/hosting
    services/status Service status ( Check table )
    services/type Type of service/hosting
    services/productkey Product key code of the service/hosting
    services/tsExpir Expiration date of the hosting

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "service\/upgrade",
        "version": "1.0.20",
        "messages": [
            "Operation done correctly."
        ],
        "responseData": {
            "billing": {
                "total": 12.04,
                "currency": "EUR"
            },
            "services": [
                {
                    "name": "example-test.net",
                    "type": "Basic Hosting Service",
                         "productkey": "basic",
                    "status": "active",
                    "tsExpir": "2025-06-19"
                }
              ]
        }
    }

    7.6 Update ( service/update/ )

    Use: Modify global parameters from a hosting service

    Request:

    POST /service/update/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    serviceName Required Service name
    updateType Required Type of information to update
    renewalMode: Changes the renewal type
    phpversion: Changes PHP version
    updateType = renewalMode
    renewalMode Required Renewal type ( Check table )
    updateType = phpversion
    phpversion Required PHP Version to apply

    Response fields description:

    Field Description
    name Name of the service/hosting
    status Service status ( Check table )
    type Type of service/hosting
    productkey Key of the service/hosting type ( Check table )
    tsExpir Expiration date of the hosting
    updateType = phpversion
    php/enabled (bool) Indicates whether PHP is active at the service
    php/version Actual PHP version
    php/name Text with the actual PHP version
    php/available List of available PHP versions

    Example for updateType='renewalMode'

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "service\/update",
        "version": "1.0.20",
        "messages": [
            "Operation done correctly."
        ],
        "responseData": {
            "name": "example-test01.com",
            "type": "Basic Hosting Service",
            "productkey": "basic",
            "status": "active",
            "tsExpir": "2015-12-10"
        }
    }

    Example for updateType='phpversion'

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "service\/update",
        "version": "1.0.20",
        "messages": [
            "Operation done correctly."
        ],
        "responseData": {
            "name": "example.com",
            "type": "Advanced Hosting Service",
            "productkey": "advanced",
            "status": "renewed",
            "tsExpir": "2022-12-10",
            "php": {
                "enabled": true,
                "version": "7.2",
                "name": "PHP 7.2",
                "available": [
                    "default",
                    "8.0",
                    "7.4",
                    "7.3",
                    "7.2",
                    "7.1",
                    "7.0"
                ]
            }
        }
    }

    7.7 Parking Get Info ( service/parkinggetinfo/ )

    Use: Retrieves information about the parking service

    Request:

    POST /service/parkinggetinfo/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    serviceName Required Name of the service/hosting

    Response fields description:

    Field Description
    parking/enabled Whether the parking service is enabled or not

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "service\/parkinggetinfo",
        "version": "1.0.20",
        "responseData": {
            "parking": {
                "enabled": false
            }
        }
    }

    7.8 Parking Update ( service/parkingupdate/ )

    Use: Modify the parking service

    Request:

    POST /service/parkingupdate/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    serviceName Required Name of the service/hosting
    enabled Required (bool) Enable or disable the parking service

    Response fields description:

    Field Description
    parking/enabled Whether the parking service is enabled or not

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "service\/parkingupdate",
        "version": "1.0.20",
        "messages": [
            "Operation done correctly."
        ],
        "responseData": {
            "parking": {
                "enabled": false
            }
        }
    }

    7.9 WebConstructor Login ( service/webconstructorlogin/ )

    Use: Retrieve the URL to login on the WebConstructor platform

    Request:

    POST /service/webconstructorlogin/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    serviceName Required Name of the service/hosting
    subdomain Required Name of the subdomain where the site will be published
    loginlang Optioonal en Default language for the builder; can later be changed

    Response fields description:

    Field Description
    webcostructor/loginURL Login URL for the WebConstructor platform

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "service\/webconstructorlogin",
        "version": "1.0.20",
        "messages": [
            "Operation done correctly."
        ],
        "responseData": {
            "webconstructor": {
                "loginURL": "http:\/\/editor.webconstructor.site\/en\/?login_hash=XXXXXXXXXXX"
            }
        }
    }

    7.10 FTP List ( service/ftplist/ )

    Use: Perform a listing/search of FTP accounts in an specific service

    Request:

    POST /service/ftplist/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    pageLength Optional 1000 Maximum number of results
    page Optional 1 Results page number
    serviceName Required Name of the service/hosting
    filter Optional Filter

    Response fields description:

    Field Description
    queryInfo Information about the query made
    queryInfo/page Results page number
    queryInfo/pageLength Maximum number of results per page
    queryInfo/results Number of results obtained
    queryInfo/total Total number of results
    ftp/entityID Identifier
    ftp/name FTP user name
    ftp/ftpPath FTP path
    ftp/password FTP account password
    ftp/quota FTP account quota, in bytes

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "service\/ftplist",
        "version": "1.0.20",
        "responseData": {
            "queryInfo": {
                "page": 1,
                "pageLength": 1000,
                "results": 2,
                "total": 2
            },
            "ftp": [
                {
                    "entityID": "SRV0000214277-000396072",
                    "name": "ftp.example-2525.com",
                    "ftpPath": "\/",
                    "password": "caWh678JtG3Bf",
                    "quota": 48576000
                }
                /*
                ,{ ....  }
                */
            ]
        }
    }

    7.11 FTP Get Info ( service/ftpgetinfo/ )

    Use: Retrieve information about an FTP account

    Request:

    POST /service/ftpgetinfo/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    serviceName Required Name of the service/hosting
    entityID Required Identifier

    Response fields description:

    Field Description
    ftp/entityID Identifier
    ftp/name Username of the FTP account
    ftp/ftpPath Path of the FTP account
    ftp/password Password of the FTP account
    ftp/quota Quota of the FTP account, in bytes

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "service\/ftpgetinfo",
        "version": "1.0.20",
        "responseData": {
            "ftp": [
                {
                    "entityID": "SRV0000214277-000396072",
                    "name": "ftp.example-2525.com",
                    "ftpPath": "\/",
                    "password": "caWh678JtG3Bf",
                    "quota": 48576000
                }
            ]
        }
    }

    7.12 FTP Create ( service/ftpcreate/ )

    Use: Create a new FTP account

    Request:

    POST /service/ftpcreate/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    serviceName Required Name of the service/hosting
    name Required Username for the FTP account
    ftpPath Required Path of the FTP account
    password Required Password for the FTP account
    quota Required Quota for the FTP account, in bytes ( Min: 1048576 bytes / 1 MByte )

    Response fields description:

    Field Description
    ftp/entityID Identifier
    ftp/name Username for the FTP account
    ftp/ftpPath Path of the FTP account
    ftp/password Password for the FTP account
    ftp/quota Quota for the FTP account, in bytes

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "service\/ftpcreate",
        "version": "1.0.20",
        "messages": [
            "Operation done correctly."
        ],
        "responseData": {
            "ftp": [
                {
                    "entityID": "SRV0000214277-000396072",
                    "name": "ftp.example-2525.com",
                    "ftpPath": "\/",
                    "password": "caWh678JtG3Bf",
                    "quota": 48576000
                }
            ]
        }
    }

    7.13 FTP Update ( service/ftpupdate/ )

    Use: Modify an FTP account

    Request:

    POST /service/ftpupdate/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    serviceName Required Name of the service/hosting
    entityID Required Identifier
    ftpPath Required Path of the FTP account
    password Required Password of the FTP account
    quota Required Quota of the FTP account, in bytes ( Min: 1048576 bytes / 1 MByte )

    Response fields description:

    Field Description
    ftp/entityID Identifier
    ftp/name Username of the FTP account
    ftp/ftpPath Path of the FTP account
    ftp/password Password of the FTP account
    ftp/quota Quota of the FTP account, in bytes

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "service\/ftpupdate",
        "version": "1.0.20",
        "messages": [
            "Operation done correctly."
        ],
        "responseData": {
            "ftp": [
                {
                    "entityID": "SRV0000214277-000396072",
                    "name": "ftp.example-2525.com",
                    "ftpPath": "\/",
                    "password": "caWh678JtG3Bf",
                    "quota": 48576000
                }
            ]
        }
    }

    7.14 FTP Delete ( service/ftpdelete/ )

    Use: Delete an FTP account

    Request:

    POST /service/ftpdelete/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    serviceName Required Name of the service/hosting
    entityID Required Identifier

    Response fields description:

    Field Description

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "service\/ftpdelete",
        "version": "1.0.20",
        "messages": [
            "Operation done correctly."
        ],
        "responseData": {
        }
    }

    7.15 DataBase List ( service/ddbblist/ )

    Use: Perform a listing/search of the data bases in an specific service

    Request:

    POST /service/bbddlist/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    pageLength Optional 1000 Maximum number of results
    page Optional 1 Results page number
    serviceName Required Name of the service/hosting
    filter Optional Filter

    Response fields description:

    Field Description
    queryInfo Information about the query made
    queryInfo/page Results page number
    queryInfo/pageLength Maximum number of results per page
    queryInfo/results Number of results obtained
    queryInfo/total Total number of results
    ddbb/entityID Identifier
    ddbb/name Name of the database
    ddbb/user Username to access the database
    ddbb/password Database password

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "service\/ddbblist",
        "version": "1.0.20",
        "responseData": {
            "queryInfo": {
                "page": 1,
                "pageLength": 1000,
                "results": 1,
                "total": 1
            },
            "ddbb": [
                {
                    "entityID": "SRV0000214277-000396074",
                    "name": "ddb244864",
                    "user": "ddb244864",
                    "password": "NMXXXXYYkDV53"
                }
                /*
                ,{ ....  }
                */
            ]
        }
    }

    7.16 DataBase Get Info ( service/ddbbgetinfo/ )

    Use: Retrieve information about the database

    Request:

    POST /service/ddbbgetinfo/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    serviceName Required Name of the service/hosting
    entityID Required Identifier

    Response fields description:

    Field Description
    ddbb/entityID Identifier
    ddbb/name Name of the database
    ddbb/user Username to access the database
    ddbb/password Password for the database
    ddbb/externalAccess Whether the database is accessible externally or not

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "service\/ddbbgetinfo",
        "version": "1.0.20",
        "responseData": {
            "ddbb": [
                {
                    "entityID": "SRV0000214277-000396074",
                    "name": "ddb244864",
                    "user": "ddb244864",
                    "password": "NMXXXXYYkDV53",
                    "externalAccess": false
                }
            ]
        }
    }

    7.17 DataBase Create ( service/ddbbcreate/ )

    Use: Create a new database

    Request:

    POST /service/ddbbcreate/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    serviceName Required Name of the service/hosting
    password Required Password of the database
    externalAccess Optional false Whether the database will be accessible externally or not

    Response fields description:

    Field Description
    ddbb/entityID Identifier
    ddbb/name Name of the database
    ddbb/user Username to access the database
    ddbb/password Password for the database
    ddbb/externalAccess Whether the database is accessible externally or not

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "service\/ddbbcreate",
        "version": "1.0.20",
        "messages": [
            "Operation done correctly."
        ],
        "responseData": {
            "ddbb": [
                {
                    "entityID": "SRV0000214277-000396074",
                    "name": "ddb244864",
                    "user": "ddb244864",
                    "password": "NMXXXXYYkDV53",
                    "externalAccess": false
                }
            ]
        }
    }

    7.18 DataBase Update ( service/ddbbupdate/ )

    Uso: Modificar una base de datos

    Request:

    POST /service/ddbbupdate/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    serviceName Required Name of the service/hosting
    entityID Required Identifier
    password Required Password for the database
    externalAccess Optional false Whether the database is accessible externally or not

    Response fields description:

    Field Description
    ddbb/entityID Identifier
    ddbb/name Name of the database
    ddbb/user Username to access the database
    ddbb/password Password for the database
    ddbb/externalAccess Whether the database is accessible externally or not

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "service\/ddbbupdate",
        "version": "1.0.20",
        "messages": [
            "Operation done correctly."
        ],
        "responseData": {
            "ddbb": [
                {
                    "entityID": "SRV0000214277-000396074",
                    "name": "ddb244864",
                    "user": "ddb244864",
                    "password": "NMXXXXYYkDV53",
                    "externalAccess": false
                }
            ]
        }
    }

    7.19 DataBase Delete ( service/ddbbdelete/ )

    Use: Modify a database

    Request:

    POST /service/ddbbdelete/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    serviceName Required Name of the service/hosting
    entityID Required Identifier

    Response fields description:

    Field Description

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "service\/ddbbdelete",
        "version": "1.0.20",
        "messages": [
            "Operation done correctly."
        ],
        "responseData": {
        }
    }

    7.20 Subdomain List ( service/subdomainlist/ )

    Use: Perform a listing/search of subdomains in an specific service

    Request:

    POST /service/subdomainlist/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    pageLength Optional 1000 Maximum number of results
    page Optional 1 Results page number
    serviceName Required Name of the service/hosting
    filter Optional Filter by subdomain

    Response fields description:

    Field Description
    queryInfo Information about the query made
    queryInfo/page Results page number
    queryInfo/pageLength Maximum number of results per page
    queryInfo/results Number of results obtained
    queryInfo/total Total number of results
    subdomain/entityID Identifier
    subdomain/name Name of the subdomain
    subdomain/ftpPath FTP path
    subdomain/ssl Certificate SSL information. (Only when there's a Certificate SSL installed)
    subdomain/ssl/sslPath Secure FTP path
    subdomain/ssl/sslCert CRT Certificate file
    subdomain/ssl/sslKey KEY Certificate file
    subdomain/ssl/sslCertChain CA-CRT Certificate file

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "service/subdomainlist",
        "version": "1.0.20",
        "responseData": {
            "queryInfo": {
                "page": 1,
                "pageLength": 1000,
                "results": 2,
                "total": 2
            },
            "subdomain": [
                {
                    "entityID": "SRV0000381923-0000677075",
                    "name": "example.com",
                    "ftpPath": "public/",
                    "ssl": {
                        "ftpPath": "public/",
                        "sslCert": "-----BEGIN CERTIFICATE-----
                                    ....
                                    -----END CERTIFICATE-----",
                        "sslKey": "-----BEGIN PRIVATE KEY-----
                                   ....
                                   -----END PRIVATE KEY-----",
                        "sslCertChain": "-----BEGIN CERTIFICATE-----
                                        ....
                                        -----END CERTIFICATE-----"
                    }
                }, {
                    "entityID": "SRV0000381923-0000421111",
                    "name": "www.example.com",
                    "ftpPath": "public/",
                    "ssl": {
                        "ftpPath": "public/",
                        "sslCert": "-----BEGIN CERTIFICATE-----
                                    ....
                                    -----END CERTIFICATE-----",
                        "sslKey": "-----BEGIN PRIVATE KEY-----
                                   ....
                                   -----END PRIVATE KEY-----",
                        "sslCertChain": "-----BEGIN CERTIFICATE-----
                                        ....
                                        -----END CERTIFICATE-----"
                    }
                }
                /*
                ,{ .... }
                */
            ]
        }
    }

    7.21 Subdomain Get Info ( service/subdomaingetinfo/ )

    Use: Retrieve information about a subdomain

    Request:

    POST /service/subdomaingetinfo/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    serviceName Required Name of the service/hosting
    entityID Required Identifier

    Response fields description:

    Field Description
    subdomain/entityID Identifier
    subdomain/name Name of the subdomain
    subdomain/ftpPath FTP path

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "service\/subdomaingetinfo",
        "version": "1.0.20",
        "responseData": {
            "subdomain": [
                {
                    "entityID": "SRV0000214277-000396072",
                    "name": "test.example-test01.com",
                    "ftpPath": "public-test\/"
                }
            ]
        }
    }

    7.22 Subdomain Create ( service/subdomaincreate/ )

    Use: Create a new subdomain

    Request:

    POST /service/subdomaincreate/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    serviceName Required Name of the service/hosting
    name Required Name of the subdomain
    ftpPath Required FTP path
    sslCert Optional CRT Certificate file
    sslKey Required if sslCert send KEY Certificate file
    sslCertChain Required if sslCert send CA-CRT Certificate file
    sslPath Required if sslCert send Secure FTP path

    Response fields description:

    Field Description
    subdomain/entityID Identifier
    subdomain/name Name of the subdomain
    subdomain/ftpPath FTP path
    subdomain/ssl Certificate SSL information. (Only when there's a Certificate SSL installed)
    subdomain/ssl/sslPath Secure FTP path
    subdomain/ssl/sslCert CRT Certificate file
    subdomain/ssl/sslKey KEY Certificate file
    subdomain/ssl/sslCertChain CA-CRT Certificate file

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "service/subdomaincreate",
        "version": "1.0.20",
        "messages": [
            "Operation done correctly."
        ],
        "responseData": {
            "subdomain": [
                {
                    "entityID": "SRV0000382923-0000741936",
                    "name": "test.example.com",
                    "ftpPath": "public/",
                    "ssl": {
                        "ftpPath": "public/",
                        "sslCert": "-----BEGIN CERTIFICATE-----
                                    ....
                                    -----END CERTIFICATE-----",
                        "sslKey": "-----BEGIN PRIVATE KEY-----
                                   ....
                                   -----END PRIVATE KEY-----",
                        "sslCertChain": "-----BEGIN CERTIFICATE-----
                                        ....
                                        -----END CERTIFICATE-----"
                    }
                }
            ]
        }
    }

    7.23 Subdomain Update ( service/subdomainupdate/ )

    Use: Modify a subdomain

    Request:

    POST /service/subdomainupdate/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    serviceName Required Name of the service/hosting
    entityID Required Identifier
    ftpPath Required FTP path
    sslCert Optional CRT Certificate file
    sslKey Required if sslCert send KEY Certificate file
    sslCertChain Required if sslCert send CA-CRT Certificate file
    sslPath Required if sslCert send Secure FTP path

    Response fields description:

    Field Description
    subdomain/entityID Identifier
    subdomain/name Name of the subdomain
    subdomain/ftpPath FTP path
    subdomain/ssl Certificate SSL information. (Only when there's a Certificate SSL installed)
    subdomain/ssl/sslPath Secure FTP path
    subdomain/ssl/sslCert CRT Certificate file
    subdomain/ssl/sslKey KEY Certificate file
    subdomain/ssl/sslCertChain CA-CRT Certificate file

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "service/subdomainupdate",
        "version": "1.0.20",
        "messages": [
            "Operation done correctly."
        ],
        "responseData": {
            "subdomain": [
                {
                    "entityID": "SRV0000382923-0000423457",
                    "name": "www.example.com",
                    "ftpPath": "public/",
                    "ssl": {
                        "ftpPath": "public/",
                        "sslCert": "-----BEGIN CERTIFICATE-----
                                    ....
                                    -----END CERTIFICATE-----",
                        "sslKey": "-----BEGIN PRIVATE KEY-----
                                   ....
                                   -----END PRIVATE KEY-----",
                        "sslCertChain": "-----BEGIN CERTIFICATE-----
                                        ....
                                        -----END CERTIFICATE-----"
                    }
                }
            ]
        }
    }

    7.24 Subdomain Delete ( service/subdomaindelete/ )

    Use: Delete a subdomain

    Request:

    POST /service/subdomaindelete/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    serviceName Required Name of the service/hosting
    entityID Required Identifier

    Response fields description:

    Field Description

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "service\/subdomaindelete",
        "version": "1.0.20",
        "messages": [
            "Operation done correctly."
        ],
        "responseData": {
        }
    }

    7.25 Redirect List ( service/redirectlist/ )

    Use: Perform a listing/search of the redirections in an specific service

    Request:

    POST /service/redirectlist/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    pageLength Optional 1000 Maximum number of results
    page Optional 1 Results page number
    serviceName Required Name of the service/hosting
    filter Optional Filter by subdomain

    Response fields description:

    Field Description
    queryInfo Information about the query made
    queryInfo/page Results page number
    queryInfo/pageLength Maximum number of results per page
    queryInfo/results Number of results obtained
    queryInfo/total Total number of results
    redirects/entityID Identifier
    redirects/origin Resource to perform the redirection
    redirects/destination Redirection destination
    redirects/type Type of redirection (View table)

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "service\/redirectlist",
        "version": "1.0.20",
        "responseData": {
            "queryInfo": {
                "page": 1,
                "pageLength": 1000,
                "results": 1,
                "total": 1
            },
            "redirect": [
                {
                    "origin": "http:\/\/www.example-test02.net\/test1\/",
                    "destination": "http:\/\/example.com",
                    "type": "301"
                }
                /*
                ,{ ....  }
                */
            ]
        }
    }

    7.26 Redirect Get Info ( service/redirectgetinfo/ )

    Use: Retrieve information about an HTTP redirection

    Request:

    POST /service/redirectgetinfo/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    serviceName Required Name of the service/hosting
    entityID Required Identifier

    Response fields description:

    Field Description
    redirect/entityID Identifier
    redirect/origin Resource being redirected (from)
    redirect/destination Redirection destination (to)
    redirect/type Type of redirection ( Check table )

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "service\/redirectgetinfo",
        "version": "1.0.20",
        "responseData": {
            "redirect": [
                {
                    "entityID": "SRV0000214277-000396072",
                    "origin": "http:\/\/www.example-test02.net\/test1\/",
                    "destination": "http:\/\/example.com",
                    "type": "301"
                }
            ]
        }
    }

    7.27 Redirect Create ( service/redirectcreate/ )

    Use: Create a new HTTP redirection

    Request:

    POST /service/redirectcreate/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    serviceName Required Name of the service/hosting
    origin Required Resource being redirected (from)
    destination Required Redirection destination (to)
    type Required Type of redirection ( Check table )

    Response fields description:

    Field Description
    redirect/entityID Identifier
    redirect/origin Resource being redirected (from)
    redirect/destination Redirection destination (to)
    redirect/type Type of redirection ( Check table )

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "service\/redirectcreate",
        "version": "1.0.20",
        "messages": [
            "Operation done correctly."
        ],
        "responseData": {
            "redirect": [
                {
                    "entityID": "SRV0000214277-000396072",
                    "origin": "http:\/\/www.example-test02.net\/test1\/",
                    "destination": "http:\/\/example.com",
                    "type": "301"
                }
            ]
        }
    }

    7.28 Redirect Update ( service/redirectupdate/ )

    Use: Modify an HTTP redirection

    Request:

    POST /service/redirectupdate/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    serviceName Required Name of the service/hosting
    entityID Required Identifier
    destination Required Redirection destination (to)
    type Required Type of redirection ( Check table )

    Response fields description:

    Field Description
    redirect/entityID Identifier
    redirect/origin Resource being redirected (from)
    redirect/destination Redirection destination (to)
    redirect/type Type of redirection ( Check table )

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "service\/redirectupdate",
        "version": "1.0.20",
        "messages": [
            "Operation done correctly."
        ],
        "responseData": {
            "redirect": [
                {
                    "entityID": "SRV0000214277-000396072",
                    "origin": "http:\/\/www.example-test02.net\/test1\/",
                    "destination": "http:\/\/example.com",
                    "type": "301"
                }
            ]
        }
    }

    7.29 Redirect Delete ( service/redirectdelete/ )

    Use: Delete a redirection

    Request:

    POST /service/redirectdelete/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    serviceName Required Name of the service/hosting
    entityID Required Identifier

    Response fields description:

    Field Description

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "service\/redirectdelete",
        "version": "1.0.20",
        "messages": [
            "Operation done correctly."
        ],
        "responseData": {
        }
    }

    7.30 Mail List ( service/maillist/ )

    Use: Perform a listing/search of the email accounts in an specific service

    Request:

    POST /service/maillist/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    pageLength Optional 1000 Maximum number of results
    page Optional 1 Results page number
    serviceName Required Name of the service/hosting
    filter Optional Filter

    Response fields description:

    Field Description
    queryInfo Information about the query made
    queryInfo/page Results page number
    queryInfo/pageLength Maximum number of results per page
    queryInfo/results Number of results obtained
    queryInfo/total Total number of results
    mail/entityID Identifier
    mail/name Name of the email account
    mail/password Password
    mail/usage Mailbox usage (In Bytes)
    mail/quotaMax Mailbox capacity (In Bytes)

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "service\/maillist",
        "version": "1.0.20",
        "responseData": {
            "queryInfo": {
                "page": 1,
                "pageLength": 1000,
                "results": 2,
                "total": 2
            },
            "mail": [
                {
                    "entityID": "SRV0000255277-0000330053",
                    "name": "test66@example.com",
                    "password": "############",
                    "usage": 1123234,
                    "quotaMax": 16106127360
                },
                {
                    "entityID": "SRV0000255277-0000330053",
                    "name": "test66@example.com",
                    "password": "############",
                    "usage": 1123234,
                    "quotaMax": 16106127360
                }
    
                /*
                ,{ ....  }
                */
            ]
        }
    }

    7.31 Mail Get Info ( service/mailgetinfo/ )

    Use: Retrieve information about an email account

    Request:

    POST /service/mailgetinfo/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    serviceName Required Name of the service/hosting
    entityID Required Identifier

    Response fields description:

    Field Description
    mail/entityID Identifier
    mail/name Username for the email account
    mail/password Password for the email account
    mail/usage Mailbox usage (In Bytes)
    mail/quotaMax Mailbox capacity (In Bytes)

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "service\/mailgetinfo",
        "version": "1.0.20",
        "responseData": {
            "mail": [
                {
                    "entityID": "SRV0000214277-000396072",
                    "name": "hola@example123.com",
                    "password": "############",
                    "usage": 1123234,
                    "quotaMax": 16106127360
                }
            ]
        }
    }

    7.32 Mail Create ( service/mailcreate/ )

    Use: Create a new email account

    Request:

    POST /service/mailcreate/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    serviceName Required Name of the service/hosting
    name Required Username for the email account
    password Required Password for the account

    Response fields description:

    Field Description
    mail/entityID Identifier
    mail/name Username for the email account
    mail/password Password for the email account
    mail/usage Mailbox usage (In Bytes)
    mail/quotaMax Mailbox capacity (In Bytes)

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "service\/mailcreate",
        "version": "1.0.20",
        "messages": [
            "Operation done correctly."
        ],
        "responseData": {
            "mail": [
                {
                    "entityID": "SRV0000214277-000396072",
                    "name": "hola@example123.com",
                    "password": "############",
                    "usage": 0,
                    "quotaMax": 16106127360
                }
            ]
        }
    }

    7.33 Mail Update ( service/mailupdate/ )

    Use: Modify an email account

    Request:

    POST /service/mailupdate/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    serviceName Required Name of the service/hosting
    entityID Required Identifier
    password Required Password for the email account

    Response fields description:

    Field Description
    mail/entityID Identifier
    mail/name Username for the email account
    mail/password Password for the email account
    mail/usage Mailbox usage (In Bytes)
    mail/quotaMax Mailbox capacity (In Bytes)

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "service\/mailupdate",
        "version": "1.0.20",
        "messages": [
            "Operation done correctly."
        ],
        "responseData": {
            "mail": [
                {
                    "entityID": "SRV0000214277-000396072",
                    "name": "hola@example123.com",
                    "password": "############",
                    "usage": 1123234,
                    "quotaMax": 16106127360
                }
            ]
        }
    }

    7.34 Mail Delete ( service/maildelete/ )

    Use: Delete an email account

    Request:

    POST /service/maildelete/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    serviceName Required Name of the service/hosting
    entityID Required Identifier

    Response fields description:

    Field Description

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "service\/maildelete",
        "version": "1.0.20",
        "messages": [
            "Operation done correctly."
        ],
        "responseData": {
        }
    }

    7.35 Mail Alias List ( service/mailaliaslist/ )

    Use: Perform a listing/search of the email alias in an specific service

    Request:

    POST /service/mailaliaslist/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    pageLength Optional 1000 Maximum number of results
    page Optional 1 Results page number
    serviceName Required Name of the service/hosting
    filter Optional Filter

    Response fields description:

    Field Description
    queryInfo Information about the query made
    queryInfo/page Results page number
    queryInfo/pageLength Maximum number of results per page
    queryInfo/results Number of results obtained
    queryInfo/total Total number of results
    mailalias/entityID Identifier
    mailalias/name Name of the email alias
    mailalias/targets Redirect accounts of the email alias

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "service\/mailaliaslist",
        "version": "1.0.20",
        "responseData": {
            "queryInfo": {
                "page": 1,
                "pageLength": 1000,
                "results": 2,
                "total": 2
            },
            "mailalias": [
                {
                    "entityID": "SRV0000214277-000396072",
                    "name": "test2@example123.com",
                    "target": [
                        "info@g123mail.com",
                        "asdf@foo.com"
                    ]
                },
                {
                    "entityID": "SRV0000214277-000396073",
                    "name": "test4@example1234.com",
                    "target": [
                        "info@foo-foo.com",
                        "info2@foo-foo.com"
                        "var1232@barfoo.com"
                    ]
                }
                /*
                ,{ ....  }
                */
            ]
        }
    }

    7.36 Mail Alias Get Info ( service/mailaliasgetinfo/ )

    Use: Retrieve information about an email alias

    Request:

    POST /service/mailaliasgetinfo/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    serviceName Required Name of the service/hosting
    entityID Required Identifier

    Response fields description:

    Field Description
    mailalias/entityID Identifier
    mailalias/name Name of the email alias
    mailalias/target Destination email accounts

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "service\/mailaliasgetinfo",
        "version": "1.0.20",
        "responseData": {
            "mailalias": [
                {
                    "entityID": "SRV0000214277-000396072",
                    "name": "test2@example123.com",
                    "target": [
                        "info@g123mail.com",
                        "asdf@foo.com"
                    ]
                }
            ]
        }
    }

    7.37 Mail Alias Create ( service/mailaliascreate/ )

    Use: Crear un nuevo alias de correo

    Request:

    POST /service/mailaliascreate/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    serviceName Required Name of the service/hosting
    name Required Name for the email alias
    target Required List of destination email accounts ( separated with , )

    Response fields description:

    Field Description
    mailalias/entityID Identifier
    mailalias/name Name for the email alias
    mailalias/target Destination email accounts

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "service\/mailaliascreate",
        "version": "1.0.20",
        "messages": [
            "Operation done correctly."
        ],
        "responseData": {
            "mailalias": [
                {
                    "entityID": "SRV0000214277-000396072",
                    "name": "test2@example123.com",
                    "target": [
                        "info@g123mail.com",
                        "asdf@foo.com"
                    ]
                }
            ]
        }
    }

    7.38 Mail Alias Update ( service/mailaliasupdate/ )

    Use: Modify an email alias

    Request:

    POST /service/mailaliasupdate/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    serviceName Required Name of the service/hosting
    entityID Required Identifier
    target Required List of destination email accounts ( separated by ,)

    Response fields description:

    Field Description
    mailalias/entityID Identifier
    mailalias/name Name of the email alias
    mailalias/target Destination email accounts

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "service\/mailaliasupdate",
        "version": "1.0.20",
        "messages": [
            "Operation done correctly."
        ],
        "responseData": {
            "mailalias": [
                {
                    "entityID": "SRV0000214277-000396072",
                    "name": "test2@example123.com",
                    "target": [
                        "info@g123mail.com",
                        "test@g123mail.com",
                        "asdf@foo.com"
                    ]
                }
            ]
        }
    }

    7.39 Mail Alias Delete ( service/mailaliasdelete/ )

    Use: Delete an email alias

    Request:

    POST /service/mailaliasdelete/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    serviceName Required Name of the service/hosting
    entityID Required Identifier

    Response fields description:

    Field Description

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "service\/mailaliasdelete",
        "version": "1.0.20",
        "messages": [
            "Operation done correctly."
        ],
        "responseData": {
        }
    }

    7.40 DNS Zone List ( service/dnslist/ )

    Use: Perform a listing/search of the DNS zones in an specific service

    Request:

    POST /service/dnslist/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    pageLength Optional 1000 Maximum number of results
    page Optional 1 Results page number
    serviceName Required Name of the service/hosting
    filter Optional Filter
    filterType Optional Filter by type
    filterValue Optional Filter by value

    Response fields description:

    Field Description
    queryInfo Information about the query made
    queryInfo/page Results page number
    queryInfo/pageLength Maximum number of results per page
    queryInfo/results Number of results obtained
    queryInfo/total Total number of results
    dns/entityID Identifier
    dns/name DNS zone name
    dns/type Type of DNS zone ( Check table )
    dns/ttl Time to Live ("-" = Default)
    dns/priority Zone priority ("-" = Default)
    dns/value Zone value depending on type

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "service\/dnslist",
        "version": "1.0.20",
        "responseData": {
            "queryInfo": {
                "page": 1,
                "pageLength": 1000,
                "results": 3,
                "total": 20
            },
            "dns": [
                {
                    "entityID": "SRV0000214277-000396072",
                    "name": "example000003.com",
                    "type": "A",
                    "ttl": "-",
                    "priority": "-",
                    "value": "127.0.0.1"
                },
                {
                    "entityID": "SRV0000214277-000396073",
                    "name": "*.example000003.com",
                    "type": "CNAME",
                    "ttl": "-",
                    "priority": "-",
                    "value": "srv21.example25.com"
                },
                {
                    "entityID": "SRV0000214277-000396074",
                    "name": "www.example000003.com",
                    "type": "CNAME",
                    "ttl": "-",
                    "priority": "-",
                    "value": "srv21.example25.com"
                }
                /*
                ,{ ....  }
                */
            ]
        }
    }

    7.41 DNS Zone Get Info ( service/dnsgetinfo/ )

    Use: Retrieve information about a DNS zone

    Request:

    POST /service/dnsgetinfo/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    serviceName Required Name of the service/hosting
    entityID Required Identifier

    Response fields description:

    Field Description
    dns/entityID Identifier
    dns/name Name of the DNS zone
    dns/type Type of the DNS zone ( Check table )
    dns/ttl Time to Live ("-" = Default value)
    dns/priority Priority of the zone ("-" = Default value)
    dns/value Value of the zone depending on its type

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "service\/dnsgetinfo",
        "version": "1.0.20",
        "responseData": {
            "dns": [
                {
                    "entityID": "SRV0000214277-000396072",
                    "name": "_aaa._tls.domainmanagement.sexy",
                    "type": "SRV",
                    "ttl": "-",
                    "priority": "10",
                    "value": "10 8080 srv.example.es"
                }
            ]
        }
    }

    7.42 DNS Zone Create ( service/dnscreate/ )

    Use: Create a new DNS zone

    Request:

    POST /service/dnscreate/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    serviceName Required Name of the service/hosting
    name Required Name for the DNS zone
    type Required Type of the DNS zone ( Check table)
    value Required Value of the DNS zone depending on its type ( Check table )
    ttl Optional Time To Live
    priority Optional 10 for MX and SRV types Priority of the zone

    Response fields description:

    Field Description
    dns/entityID Identifier
    dns/name Name of the DNS zone
    dns/type Type of the DNS zone ( Check table )
    dns/ttl Time to Live ("-" = Default value)
    dns/priority Priority of the zone ("-" = Default value)
    dns/value Value of the zone depending on its type

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "service\/dnscreate",
        "version": "1.0.20",
        "messages": [
            "Operation done correctly."
        ],
        "responseData": {
            "dns": [
                {
                    "entityID": "SRV0000214277-000396072",
                    "name": "_aaa._tls.domainmanagement.sexy",
                    "type": "SRV",
                    "ttl": "-",
                    "priority": "10",
                    "value": "10 8080 srv.example.es"
                }
            ]
        }
    }

    7.43 DNS Zone Update ( service/dnsupdate/ )

    Use: Modify a DNS zone

    Request:

    POST /service/dnsupdate/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    serviceName Required Name of the service/hosting
    entityID Required Identifier
    value Required Value of the zone depending on its type ( Check table )
    ttl Optional Time To Live
    priority Optional 10 for MX and SRV types Priority of the zone

    Response fields description:

    Field Description
    dns/entityID Identifier
    dns/name Name of the DNS zone
    dns/type Type of the DNS zone ( Check table )
    dns/ttl Time to Live ("-" = Default value)
    dns/priority Priority of the zone ("-" = Default value)
    dns/value Value of the zone depending on its type

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "service\/dnsupdate",
        "version": "1.0.20",
        "messages": [
            "Operation done correctly."
        ],
        "responseData": {
            "dns": [
                {
                    "entityID": "SRV0000214277-000396072",
                    "name": "_aaa._tls.domainmanagement.sexy",
                    "type": "SRV",
                    "ttl": "-",
                    "priority": "10",
                    "value": "10 8080 srv.example.es"
                }
            ]
        }
    }

    7.44 DNS Zone Delete ( service/dnsdelete/ )

    Use: Delete a DNS zone

    Request:

    POST /service/dnsdelete/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    serviceName Required Name of the service/hosting
    entityID Required Identifier

    Response fields description:

    Field Description

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "service\/dnsdelete",
        "version": "1.0.20",
        "messages": [
            "Operation done correctly."
        ],
        "responseData": {
        }
    }

    7.45 DNS Zone Restore ( service/dnsrestore/ )

    Use: Restore the default values on all DNS zones

    Request:

    POST /service/dnsrestore/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    serviceName Required Name of the service/hosting

    Response fields description:

    Field Description

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "service\/dnsrestore",
        "version": "1.0.20",
        "messages": [
            "Operation done correctly."
        ],
        "responseData": {
        }
    }

    7.46 DNS Zone Set ( service/dnssetzone/ )

    Use: Modify with a single command the entire DNS zone; the existing zone will be deleted

    Request:

    POST /service/dnssetzone/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    serviceName Required Name of the service/hosting
    dnsZoneData Required DNS Zone in JSON format and encoded in base64 ( Check example )

    Response fields description:

    Field Description

    DNS zone in JSON format example:

    [{"name":"example001.com","type":"A","ttl":"-","priority":"-","value":"8.1.1.18"},{"name":"*.example001.com","type":"CNAME","ttl":"-","priority":"-","value":"srv1.example1111.com"} /*...*/ ] 
    
    /* This JSON must be encoded in Base64 afterwards and sent in the dnsZoneData field */

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "service\/dnsrestore",
        "version": "1.0.20",
        "messages": [
            "Operation done correctly."
        ],
        "responseData": {
        }
    }

    7.47 DNS Zone Delete All ( service/dnsdeleteall/ )

    Use: Delete all DNS zones

    Request:

    POST /service/dnsdeleteall/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    serviceName Required Name of the service/hosting

    Response fields description:

    Field Description

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "service\/dnsdeleteall",
        "version": "1.0.20",
        "messages": [
            "Operation done correctly."
        ],
        "responseData": {
        }
    }

    7.48 Services Related tables

    7.48.1 Service Types

    Product Key Product/Service type
    redir Redirect And Parking
    mini Mini Hosting
    mail Mail Hosting
    mailplus Mail Plus Hosting
    mailpro Mail Pro Hosting
    basic Basic Hosting
    professional Professional Hosting
    advanced Advanced Hosting
    corporate Corporate Hosting

    7.48.2 Service Status

    Status Description
    init Service set up in progress
    active Service active
    inactive Service inactive
    renewed Renewal in process
    renewable Service active and renewable

    7.48.3 Renewal types

    Keyword Description
    autorenew Automatic renewal
    manual Manual renewal

    7.48.4 Redirection Types

    Type Description
    301 Permanent (HTTP 301)
    302 Temporary (HTTP 302)
    frame Frame

    7.48.5 DNS Types

    Type Description Value format
    A Address IPv4
    AAAA Address IPv6 IPv6
    CNAME Canonical Name Hostname
    MX Mail Exchange Mail Server Hostname
    SRV Service Format weight port destiny-host
    TXT Text Text
    NS NameServe DNS Server HostName
    CAA Certification Authority Format flag tag "value"

    8 Module: SSL

    The ssl module allows access to different options available for SSL Certificates

    Available actions:

    Action Authentication Description
    /ssl/csrdecode/ Required Decode a CSR
    /ssl/csrcreate/ Required Creates a CSR
    /ssl/productlist/ Required Product List
    /ssl/productgetinfo/ Required Get information from a Product
    /ssl/list/ Required Purchased Certificate List
    /ssl/getinfo/ Required Get information from a purchased Certificate
    /ssl/create/ Required Send a SSL create order with a CSR
    /ssl/renew/ Required Renews a SSL Certificate
    /ssl/reissue/ Required Reissue a SSL Certificate
    /ssl/multidomainaddsan Required Add a SAN Domain (Alternative Name) to the Certificate
    /ssl/getvalidationemails/ Required List all the validation email for a Certificate and his alternative methods.
    /ssl/changevalidationmethod/ Required Changes validation method for a CommonName that's in status process or reissue
    /ssl/resendvalidationmail/ Required Resends a CommonName validation email from a Certificate.

    8.1 CSR Decode ( ssl/csrdecode/ )

    Use: Decode parameters from a CSR.

    Request:

    POST /ssl/csrdecode/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    csrData Required CSR code data (including ---BEGIN--- and ---END--

    Response fields description:

    Field Description
    csrData CSR Data provided
    commonName Common name
    organizationName Organization name
    organizationalUnitName Organization unit name
    countryName Country code
    stateOrProvinceName State or province
    localityName Locality
    emailAddress Email address

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "ssl\/csrdecode",
        "version": "1.0.20",
        "responseData": {
            "csrData": "-----BEGIN CERTIFICATE REQUEST-----\nMIIC7zCCAdcCAQAwgakxGzAZBgNVBAMMEmV4YW1wbGUuZG9tYWluLmNvbTEbMBkG\nA1UECgwSVGVjaCBTb2x1dGlvbnMgSW5jMRowGAYDVQQLDBFHb3RoYW0gRGVwYXJ0\nbWVudDELMAkGA1UEBhMCVVMxEDAOBgNVBAgMB0FyaXpvbmExETAPBgNVBAcMCEJh\ncGNodWxlMR8wHQYJKoZIhvcNAQkBFhBpbmZvQGV4YW1wbGUuY29tMIIBIjANBgkq\nhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA6HWtKvCB\/v\/bE5mD9ZpQuuI1Hbx9FsvJ\nO4mFUj+1kzH4bJTIWEKt3qiwpy+HirqonHvgriXyZyq52uhJANrXh13c2qJrd5zQ\ndL2Cvi301+C7QH5grA2RfMxNAfLRDEOYI+uw5xxMM8YNZexJeQlAmq6bFPZUUqEO\nw4JzT4kw1HK6umxV8ycOyOh50gYckzdzlrOHDrdCJ3+H31CFCRjEe3KVTcvpG6Nf\nI5czXLIUYWmHw7i9e0uQIbBMiDkMRVQ9RvS5rjPK+kHPLHblapAJPs2xm5Ow+FSg\n805uDqmjZ1sz7u1aw9cPkNGDmHXTyStJu440byRnZtto7dIFF8pKcQIDAQABoAAw\nDQYJKoZIhvcNAQEFBQADggEBAHVPoIXS0vtwt8QoQ7iAoa9T+Ypn7hEErbw1amLT\nrYy5GtzIN6fesTZcCv\/1OuOXTQFXQYGMtVVjUCsF50qLdaHRV8jTl7f0b9raP+Fv\nb7d0VLtQx3o3LeSR4IS\/C7VpxXqm6lSOSs2R6W5eZ0ot+4K+8wxJZmaY4trCe2dY\nOVrEcQbLIWc1lTl71wrbIIzyfiGz9xAK+\/Sqf8uv8wtylcTvL1pgBUVJ7XcFzSsl\nBBGXsjseGF9+\/uIZH0mEgO8GN0UC+deNc71KZTwhpuFwo\/hXF7sJtGVt5szX8HBD\nJ724\/s79fnNYwqowoKBXm1bIMZS2D0IEX\/M7nX2\/u1EQE0k=\n-----END CERTIFICATE REQUEST-----",
            "commonName": "example.domain.com",
            "organizationName": "Tech Solutions Inc",
            "organizationalUnitName": "Gotham Department",
            "countryName": "US",
            "stateOrProvinceName": "Arizona",
            "localityName": "Bapchule",
            "emailAddress": "info@example.com"
        }
    
    }

    8.2 CSR Create ( ssl/csrcreate/ )

    Use: Creates a CSR.

    Request:

    POST /ssl/csrcreate/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    commonName Required Common name
    organizationName Required Organization name
    organizationalUnitName Required Organization unit name
    countryName Required Country code
    stateOrProvinceName Required State or province
    localityName Required Locality
    emailAddress Required Email address

    Response fields description:

    Field Description
    csrData CSR Data provided
    csrKey KEY Data generated with CSR Request
    commonName Common name
    organizationName Organization name
    organizationalUnitName Organization unit name
    countryName Country code
    stateOrProvinceName State or province
    localityName Locality
    emailAddress Email address

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "ssl\/csrcreate",
        "version": "1.0.20",
        "responseData": {
            "csrData": "-----BEGIN CERTIFICATE REQUEST-----\nMIIC7zCCAdcCAQAwgakxGzAZBgNVBAMMEmV4YW1wbGUuZG9tYWluLmNvbTEbMBkG\nA1UECgwSVGVjaCBTb2x1dGlvbnMgSW5jMRowGAYDVQQLDBFHb3RoYW0gRGVwYXJ0\nbWVudDELMAkGA1UEBhMCVVMxEDAOBgNVBAgMB0FyaXpvbmExETAPBgNVBAcMCEJh\ncGNodWxlMR8wHQYJKoZIhvcNAQkBFhBpbmZvQGV4YW1wbGUuY29tMIIBIjANBgkq\nhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA8PWaH\/\/AL1HMpjcPEaBdXqAvQND0UAUC\nV66QYwE3Eqc\/OogYA\/Uc\/kR2ecNbBxD0nSghGiTbt0LIXTaDXtmGCs28pYOF\/zr9\n9NAfHypqIuCay8hmMTXabbXFnhm5dMly9h5jeOCSh2hXKX1u72u9fUugAL\/cpodi\nipJENgvreliT5bib4O2fBgsuWiNgkhRAmc1JAboKE46vREouX66cWsUSWhiVJMXS\nI+B0uTNk3\/I4DeglJkqldR\/JMeXJf88JPZup5rxdvXDp4Y5TgL0ObAkTyJ8JFhsE\ngYBe0Zur7rFdGHkNnCDnbkWF2Gr1nnusuIpi4c3cV+THsT\/nxcDwwwIDAQABoAAw\nDQYJKoZIhvcNAQEFBQADggEBAET2miFah2elumEJbLNDc1AhukXyZ9eVZ96FusSV\nxQL2F2CS0EWHZha3qf1yeIw5\/m\/KD8OqiCtQjOJF5UGxHPhXAUbPFVVcJDHVPZ\/h\niC3VpYrkk4OsqnlyYbjCWm+5k7Lp8zP+B3L4cPgH7ESL8HSwEDwH0NSanOPmX2bo\ndYYYFFzZCWTTNWUWjW0D+jDWSnGdi7wqjI2D7sOGiwgGKSG6G1m7Ij44sw7T8cL9\nycvrAZ+Tp29IajVUwBcg8E02J96KO6HH3slI6ux7\/KD0K0lHDzTO9aWgP6kGbERg\n7iY1+OYQ6ZTBX1aJG7IYyB7hm2OctaTKtF242j2+ZjH3nVI=\n-----END CERTIFICATE REQUEST-----",
            "csrKey": "-----BEGIN PRIVATE KEY-----\nMIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDw9Zof\/8AvUcym\nNw8RoF1eoC9A0PRQBQJXrpBjATcSpz86iBgD9Rz+RHZ5w1sHEPSdKCEaJNu3Qshd\nNoNe2YYKzbylg4X\/Ov300B8fKmoi4JrLyGYxNdpttcWeGbl0yXL2HmN44JKHaFcp\nfW7va719S6AAv9ymh2KKkkQ2C+t6WJPluJvg7Z8GCy5aI2CSFECZzUkBugoTjq9E\nSi5frpxaxRJaGJUkxdIj4HS5M2Tf8jgN6CUmSqV1H8kx5cl\/zwk9m6nmvF29cOnh\njlOAvQ5sCRPInwkWGwSBgF7Rm6vusV0YeQ2cIOduRYXYavWee6y4imLhzdxX5Mex\nP+fFwPDDAgMBAAECggEBAKeVaRgQO42tinOfn29W5RlGtxaRPRnaIgLxeaIh2jey\n8hq3RFycQQnme6+72rdTZ41Vt5ADSnxuigOqQjvZdYxWAnnqu2sDkFSP2tVGHoMb\nSw2n1ssq9TuQTFzk70L2SGo8QFp1dfOO8e\/9OQZzHFrkGefriH6ZckOF7sLYD3IK\nh3O0kdLJOCECFjW0HTtCfToIDUksu1gPlLQF0K6YMefvlEM37Qr\/wyMzyRsutcIs\nxjPP5AVs8+eIwfNq\/i0mgQXgrfi9opLSNFGRV502n13EG2wymE5+h8UqgOLlEnAs\nW5xSusF7hyuxj3x8vAT31aG3IpJ12Avkm4\/1lzR8faECgYEA+v4cmGRikI7M8JH4\nrTYYlcvrIaLZHWDmqRmXac080prqIGlto\/yaJT6ONaJbE9buEf8T8jDbsBdMHS9e\nd6D2KqPoCemCpnU96KRGmjDNtlnJVNpM7TyqhdxJaqiJ7K1rSS8bfcNrnZv3Ec0U\nwq6HWvHnzIALIT5Sn3T1GjXQFTUCgYEA9cQ\/cfSVmWILlbzJNEXPipAHAHmf0LNn\nXNfDHoBJezUkUWHlMeMyCzD+J4z44w8oXJog918bpaeIt45xBktJY7WSiIyVSotH\nQGR\/GI2\/sL4Mpsc9tPLx4thsos2fKbyeak\/dWoiU44QH5Ghd\/ehzmN9A51chxTjo\nRbrtMR6xBRcCgYASXxk+ulJQnHM5xKV8IDKKfGOYka\/sq5QWmo3vq5shGz+54Z2p\n3Cp4QWztVhXujNPeM1qFZrgd2oayuC3k+b4q\/tZUK2hpwLkoVyXn0VytVUMcV+I7\nly4wICCrkuyNi2AH+k+709sDrU\/XWLiFS3sS2BQMbu7hnwszKr9qDLhPZQKBgQCw\n0nGTW5YGtTQAl8NriI658sYW4WrKjUlg0xvfZg14R9PJedWc\/wmSY714V0T6mH1B\nouL1F8icdt02s5U+Igy7YHf9JqiC6ZJqEeQfllzEnPgdRlxvRBwkSfJfb\/GD5eFU\nPAHWkU4OI4BKJYz6kbQZ2Qapa1cwvrDe+o6NOLfEIQKBgQCjFFRORtW16XS7tGab\nN\/bdTY51iR0OCssyuzrBO8PbhSPkspRU2gSQQi1aPsDlQo0GdNOAvpfoGbfy4mTV\n+84pJRb455T3gV\/crLR3bBMSkuaH+k0MoM0k9hHlUN\/\/FRiXx9v69iLdgXM7qrpx\nNjW7iwzuXUoiDPvfS80Kp6ZBZg==\n-----END PRIVATE KEY-----",
            "commonName": "example.domain.com",
            "organizationName": "Tech Solutions Inc",
            "organizationalUnitName": "Gotham Department",
            "countryName": "US",
            "stateOrProvinceName": "Arizona",
            "localityName": "Bapchule",
            "emailAddress": "info@example.com"
        }
    }

    8.3 Product List ( ssl/productlist/ )

    Use: Shows a list of available SSL Certificates

    Request:

    POST /ssl/productlist/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    pageLength Optional 1000 Maximum number of results
    page Optional 1 Results page number
    wildcard Optional (Bool) Will filter by types that allow Wildcard
    multidomain Optional (Bool) Will filter by types that allow Multi-domain
    trial Optional (Bool) Will filter by Trial Certificates
    validationType Optional It will filter by the type of validation (See table)

    Response fields description:

    Field Description
    queryInfo Information about the query made
    queryInfo/page Results page number
    queryInfo/pageLength Maximum number of results per page
    queryInfo/results Number of results obtained
    queryInfo/total Total number of results
    products List of SSL Certificates that comply with the indicated filters
    products/productID Product identifier
    products/productName Product name
    products/brandName Product brand
    products/validationType Certificate validation type (See table)
    products/isMultiDomain If the Certificate is Multi-domain
    products/isWildcard If the Certificate is Wildcard
    products/isTrial If the Certificate is a Trial
    products/numDomains Number of domains allowed by the SSL Certificate
    products/keyLength Length in bits of the Certificate's RSA Key
    products/encryption Certificate's encryption type
    products/create SSL Certificate creation information
    products/create/create SSL Certificate creation cost
    products/create/years SSL Certificate years
    products/create/isPromo Whether the Certificate creation is in Promo
    Just when true
    products/renew SSL Certificate renewal information
    products/renew/create SSL Certificate renewal cost
    products/renew/years SSL Certificate years
    products/renew/isPromo Whether the Certificate renewal is in Promo
    Just when true
    products/trialPeriod Number of days of validity of the SSL Certificate (Only for SSL Certificates Trial)
    products/sanMaxDomains Maximum alternative domains allowed by the SSL Certificate (Only for Multi-domain SSL Certificates)
    products/sanPrice Cost of an alternative domain in the SSL Certificate (Only for Multi-domain SSL Certificates)

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "ssl/productlist",
        "version": "1.0.20",
        "responseData": {
            "queryInfo": {
                "page": 1,
                "pageLength": 1000,
                "results": 46,
                "total": 46
            },
            "products": [
                {
                    "productID": 1,
                    "productName": "Comodo Domain Premium",
                    "brandName": "Comodo",
                    "validationType": "dv",
                    "isMultiDomain": false,
                    "isWildcard": false,
                    "isTrial": false,
                    "numDomains": 1,
                    "keyLength": 2048,
                    "encryption": 256,
                    "create": {
                        "create": 4.95,
                        "years": 1,
                        "isPromo": true
                    },
                    "renew": {
                        "create": 39.95,
                        "years": 1
                    }
                }
                    /*
                    ,{ .... }
                    */
            ]
        }
    }

    Example for Trial Certificates

    {
        "productID": 58,
        "productName": "DonDominio Trial SSL",
        "brandName": "DonDominio",
        "validationType": "dv",
        "isMultiDomain": false,
        "isWildcard": false,
        "isTrial": true,
        "numDomains": 1,
        "keyLength": 2048,
        "encryption": 256,
        "trialPeriod": "90 days"
    }

    Example for Multi-domain Certificates

    {
        "productID": 17,
        "productName": "Comodo Multi-Domain EV SSL",
        "brandName": "Comodo",
        "validationType": "ev",
        "isMultiDomain": true,
        "isWildcard": false,
        "isTrial": false,
        "numDomains": 3,
        "keyLength": 2048,
        "encryption": 256,
        "create": {
            "create": 383.95,
            "years": 1
        },
        "renew": {
            "create": 383.95,
            "years": 1
        },
        "sanMaxDomains": 210,
        "sanPrice": 106
    }

    8.4 Product Get Info ( ssl/productgetinfo/ )

    Use: Get information about a concrete product

    Request:

    POST /ssl/productgetinfo/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    productID Required Product identifier

    Response fields description:

    Field Description
    productID Product identifier
    productName Product name
    brandName Product brand
    validationType Certificate validation type (See table)
    isMultiDomain If the Certificate is multi-domain
    isWildcard If the Certificate is wildcard
    isTrial If the Certificate is a test
    numDomains Number of domains allowed by the SSL Certificate
    keyLength Length in bits of the Certificate's RSA Key
    encryption Certificate's encryption type
    create SSL Certificate creation information
    create/create SSL Certificate creation cost
    create/years SSL Certificate years
    create/isPromo Whether the Certificate creation is in Promo
    Just when true
    renew SSL Certificate renewal information
    renew/create SSL Certificate renewal cost
    renew/years SSL Certificate years
    renew/isPromo Whether the Certificate renewal is in Promo
    Just when true
    trialPeriod Number of days of validity of the SSL Certificate (Only for SSL Certificates Trial)
    sanMaxDomains Maximum alternative domains allowed by the SSL Certificate (Only for Multi-domain SSL Certificates)
    sanPrice Cost of an alternative domain in the SSL Certificate (Only for Multi-domain SSL Certificates)

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "ssl\/productgetinfo",
        "version": "1.0.20",
        "responseData": {
            "productID": 55,
            "productName": "DonDominio Domain SSL",
            "brandName": "DonDominio",
            "validationType": "dv",
            "isMultiDomain": false,
            "isWildcard": false,
            "isTrial": false,
            "numDomains": 1,
            "keyLength": 2048,
            "encryption": 256,
            "create": {
                "create": 4.95,
                "years": 1,
                "isPromo": true
            },
            "renew": {
                "create": 4.95,
                "years": 1
            }
     }
    }

    8.5 List ( ssl/list/ )

    Use: Listing purchased Certificates using filters.

    Request:

    POST /ssl/list/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    pageLength Optional 1000 Maximum number of results
    page Optional 1 Results page number
    productID Optional Filters using a Product identifier (See /ssl/productlist/
    status Optional Filters using an status (See table 8.5.2)
    renewable Optional (Bool) Filters if the certificate is renewable or not
    commonName Optional Filters by the Certificate CommonName

    Response fields description:

    Field Description
    queryInfo Information about the query made
    queryInfo/page Results page number
    queryInfo/pageLength Maximum number of results per page
    queryInfo/results Number of results obtained
    queryInfo/total Total number of results
    ssl List of SSL Certificates that comply with the indicated filters
    ssl/certificateID Certificate identifier
    ssl/commonName Common name
    ssl/status Certificate status
    ssl/renewable If Certificate can be renewed
    ssl/productID Product identifier
    ssl/sanMaxDomains Maximum number of domains.
    Only on multi-domain Certificates
    ssl/tsCreate Date of Certificate creation
    ssl/tsExpir Date of Certificate expiration
    ssl/alternativeNames Certificate alternative domains

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "ssl/list",
        "version": "1.0.20",
        "responseData": {
            "queryInfo": {
                "page": 1,
                "pageLength": 2,
                "results": 2,
                "total": 20
            },
            "ssl": [
                {
                    "certificateID": 132442,
                    "commonName": "www.example.org",
                    "status": "valid",
                    "renewable": false,
                    "productID": 6,
                    "sanMaxDomains": 200,
                    "tsCreate": "2021-05-19",
                    "tsExpir": "2022-05-19",
                    "alternativeNames": [
                        "example.org",
                        "www.example.org"
                    ]
                },
                {
                    "certificateID": 130839,
                    "commonName": "*.example.com",
                    "status": "valid",
                    "renewable": false,
                    "productID": 56,
                    "sanMaxDomains": 200,
                    "tsCreate": "2021-05-06",
                    "tsExpir": "2022-06-07",
                    "alternativeNames": [
                        "*.example.com",
                        "example.com"
                    ]
                }
            ]
        }
    }

    8.6 Get Info ( ssl/getinfo/ )

    Use: Get information about a concrete Certificate

    Request:

    POST /ssl/getinfo/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    certificateID Required Certificate identifier
    infoType Optional status Certificate information (Check next table)
    pfxpass Optional Allows to send the pass whene infoType=pfx

    InfoType options

    Request parameters:

    Name Required Default Description
    status String No General Certificate information
    ssldata String No Certificate data, CRT, KEY and CA-CRT files
    validationStatus String No Certificate validation information. Can be used only when the Certificate Status is process or reissue
    pfx String No Certificate data in pfx format
    der String No Certificate data in der format
    p7b String No Certificate data in p7b format
    zip String No Certificate data in zip format
    pem String No Certificate data in pem format

    Response fields description:

    Field Description
    certificateID Certificate identifier
    commonName Common name
    status Certificate status
    renewable If Certificate can be renewed
    productID Product identifier
    numDomains Maximum number of domains. This includes alternative names.
    Only on multi-domain Certificates
    tsCreate Date of Certificate creation
    tsExpir Date of Certificate expiration
    alternativeNames Certificate alternative domains
    sslCert Certificate CRT file
    sslKey Certificate KEY file
    sslCertChain Certificate CA-CRT file
    fingerprint Certificate fingerptint.
    Only on infoType=ssldata
    content Certificate data in some format. (Check infoType options)
    content/type Certificate file Mimetype
    content/name Certificate file name
    content/base64encoded (bool) Wherever or not the file data is base64 encoded
    content/data Certificate file content
    validationData Validation related information
    validationData/dcv Domain control validation
    validationData/organizationValidationStatus Status of the Organization validation. Just in OV and EV Validation Types
    validationData/brandValidationStatus Status of the Organization Brand validation. Just in OV and EV Validation Types
    validationData/message Short description of the validation status
    validationData/externalValidation Wherever or not the Certificate needs an external validation

    Response example:

    Example infoType = status

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "ssl\/getinfo",
        "version": "1.0.20",
        "responseData": {
            "certificateID": 130839,
            "commonName": "*.example.com",
            "status": "valid",
            "renewable": false,
            "productID": 56,
            "numDomains": 200,
            "tsCreate": "2021-05-06",
            "tsExpir": "2022-06-07",
            "alternativeNames": [
                "*.example.com",
                "example.com"
            ]
        }
    }

    Example infoType = ssldata

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "ssl\/getinfo",
        "version": "1.0.20",
        "responseData": {
            "certificateID": 130839,
            "commonName": "*.example.com",
            "status": "valid",
            "renewable": false,
            "productID": 56,
            "numDomains": 200,
            "tsCreate": "2021-05-06",
            "tsExpir": "2022-06-07",
            "alternativeNames": [
                "*.example.com",
                "example.com"
            ],
            "sslCert": "-----BEGIN CERTIFICATE----- ... -----END CERTIFICATE-----",
            "sslKey": "-----BEGIN PRIVATE KEY----- ... -----END PRIVATE KEY-----",
            "sslCertChain": [
                "-----BEGIN CERTIFICATE----- ... -----END CERTIFICATE-----"
            ],
            "fingerprint": {
                "SHA1": "A7:65:F0:57:24:45:40:B1:F0:80:D2:89:A4:FF:81:53:7A:9A:6C:35",
                "SHA256": "01:98:0E:C8:4F:DA:14:0B:2C:03:FA:E7:E5:4E:79:BD:D6:15:22:70:AA:F0:BC:21:C2:BC:16:76:81:8C:8F:5A",
                "MD5": "C7:6B:A7:2E:45:ED:55:26:38:D9:7D:0B:AF:47:09:BD"
            }
        }
    }

    Example infoType = validationStatus

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "ssl\/getinfo",
        "version": "1.0.20",
        "responseData": {
            "certificateID": 135820,
            "commonName": "www.example.com",
            "status": "process",
            "renewable": false,
            "productID": 55,
            "tsCreate": "",
            "tsExpir": "",
            "alternativeNames": [],
            "validationData": {
                "dcv": {
                    "www.example.com": {
                        "validated": false,
                        "domainName": "www.example.com",
                        "method": "dns",
                        "checkvalue": "_6e14527a114d52f9901f0d46.www.example.com CNAME 96a5500ed20516ba7a1efa94bf90a.a1ec45f78dbd349c33a05c6e8e8d0a50.ssl135820.comodoca.com"
                    }
                },
                "organizationValidationStatus": "",
                "brandValidationStatus": "",
                "message": "The petition is pending validation.",
                "externalValidation": true
            }
        }
    }

    Example infoType = pfx, infoType = der, infoType = p7b, infoType = zip, infoType = pem

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "ssl\/getinfo",
        "version": "1.0.20",
        "responseData": {
            "certificateID": 130839,
            "commonName": "*.example.com",
            "status": "valid",
            "renewable": false,
            "productID": 56,
            "numDomains": 200,
            "tsCreate": "2021-05-06",
            "tsExpir": "2022-06-07",
            "alternativeNames": [
                "*.example.com",
                "example.com"
            ],
            "sslCert": "-----BEGIN CERTIFICATE----- ... -----END CERTIFICATE-----",
            "sslKey": "-----BEGIN PRIVATE KEY----- ... -----END PRIVATE KEY-----",
            "sslCertChain": [
                "-----BEGIN CERTIFICATE----- ... -----END CERTIFICATE-----"
            ],
            // infoType=pfx
            "content": {
                    "type": "application\/x-pkcs12",
                    "name": "certificate.pfx",
                    "base64encoded": true,
                    "data": "MIIMvQIBAz23HCBAhOeNzRgCTm7Q=="
            },
            // infoType=der
            "content": {
                "type": "application\/x-x509-ca-cert",
                    "name": "certificate.der",
                    "base64encoded": true,
                    "data": "MIIGgzCCBWugAwIBAgIRAKalTxP\/"
            },
            // infoType=p7b
            "content": {
                "type": "text\/plain",
                    "name": "certificate.p7b",
                    "base64encoded": false,
                    "data": "-----BEGIN PKCS7-----\nMIIWigXpNpaYbqEAMQA=\n-----END PKCS7-----\n"
            },
            // infoType=zip
            "content": {
                "type": "application\/zip",
                    "name": "certificate.zip",
                    "base64encoded": true,
                    "data": "UEsDBBQAAACYGgAAAAA="
            },
            // infoType=pem
            "content": {
                "type": "text\/plain",
                "name": "certificate.pem",
                "base64encoded": false,
                "data": "-----BEGIN CERTIFICATE-----\nMIIGgzCCBWu==\n-----END CERTIFICATE-----"
            }
        }
    }

    8.7 Create ( ssl/create/ )

    Use: Send a SSL Certificate creation order with a CSR.

    Request:

    POST /ssl/create/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    csrData Required CSR Data (including -----BEGIN----- and -----END-----).
    productID Required Product identifier.
    period Optional Product minYears (Integer) Years of expedition (Check Product information for minYears and maxYears).
    keyData Optional Key Data (including -----BEGIN----- and -----END-----).
    adminContact[Data] Required Administrative contact data (Check Providing contact data section).
    techContact[Data] Optional Technical contact data. If not present, administrative contact data will be used instead.
    orgContact[Data] Required
    if validationType = 'OV' or validationType = 'EV'
    Organization contact data.
    Certificates info
    Validation types.
    validationMethod Optional dns Certificate validation method for the domain at CommonName
    alt_name_[Number] Optional Just for multi-domain certificates: Alternative Name of the certificate. Each Alternative Name must be indicated with an ordered number and his alt_validation_ field. The number of Alternative Names can't be higher than the sanMaxDomains of the Product. (Check Alternative Names validation section).
    alt_validation_[Number] Optional dns Just for multi-domain certificates: Validation method of the Alternative Name. Each Alternative Name must have his alt_validation_ field. Validation types.

    8.7.1 Providing contact data

    The contact data for adminContact[Data], techContact[Data] and/or orgContact[Data] may be provided in two different ways:

    1. Providing a Contact ID: (example for admin)

    Request parameters:

    Name Required Default Description
    adminContactID Required Contact ID in MrDomain. Example: XXX-12312
    1. Providing all required information: (example for admin)

      In this case, an adminContactID may not be specified, or all these fields will be ignored.

    Request parameters:

    Name Required Default Description
    adminContactType Required Contact type: individual or organization
    adminContactFirstName Required First name
    adminContactLastName Required Last name
    adminContactOrgName Required
    if adminContactType = organization
    Organization or company name
    adminContactOrgType Required
    if adminContactType = organization
    and adminContactCountry = ES
    Spanish organization type (See table)
    adminContactIdentNumber Required Tax identification number, VAT Number, ID Card number...
    adminContactEmail Required Email
    adminContactPhone Required Phone number in +DD.DDDDDDDD format
    adminContactFax Optional Fax number in +DD.DDDDDDDDD format
    adminContactAddress Required Address
    adminContactPostalCode Required Postal code
    adminContactCity Required City
    adminContactState Required State/Province
    adminContactCountry Required (String 2 characters) Country code (See table)

    Other contacts may be provided switching the prefix admin accordingly to tech or org.

    8.7.2 Alternative Names validation

    In a multi-domain Certificate, the Alternative Names must be provided within the create request with his related validation method. As this type of Certificates can have more than one Alternative Name, they need to be enumerated:

    Example with 2 Alternative Names

    Request parameters:

    Name Required Default Description
    alt_name_1 Required First Alternative Name
    alt_validation_1 Required dns Validation method of the first Alternative Name
    alt_name_2 Required Second Alternative Name
    alt_validation_2 Required dns Validation method of the second Alternative Name

    8.7.3 Response

    Response fields description:

    Field Description
    billing Billing information about the create request.
    billing/total Total amount of the request.
    billing/currency Currency that represents the total.
    ssl List of SSL Certificates that comply with the indicated filters.
    ssl/certificateID Certificate identifier.
    ssl/commonName Common name.
    ssl/status Certificate status.
    ssl/renewable If Certificate can be renewed.
    ssl/productID Product identifier.
    ssl/tsCreate Date of Certificate creation.
    ssl/tsExpir Date of Certificate expiration.
    ssl/alternativeNames Certificate alternative domains.

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "ssl/create",
        "version": "1.0.20",
        "responseData": {
            "billing": {
                "total": 48.34,
                "currency": "EUR"
            },
            "ssl": {
                "certificateID": 135520,
                "commonName": "www.example.com",
                "status": "process",
                "renewable": false,
                "productID": 1,
                "tsCreate": "",
                "tsExpir": "",
                "alternativeNames": []
            }
        }
    }

    8.8 Renew ( ssl/renew/ )

    Use: Renew an SSL Certificate

    Request:

    POST /ssl/renew/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    csrData Required CSR Data (including -----BEGIN----- and -----END-----).
    certificateID Required Certificate identifier
    period Optional Product minYears (Integer) Years of expedition (Check Product information for minYears and maxYears).
    keyData Optional Key Data (including -----BEGIN----- and -----END-----).
    adminContact[Data] Required Administrative contact data (Check Providing contact data section).
    techContact[Data] Optional Technical contact data. If not present, administrative contact data will be used instead.
    orgContact[Data] Required
    if validationType = 'OV' or validationType = 'EV'
    Organization contact data.
    Certificates info
    Validation types.
    validationMethod Optional dns Certificate validation method for the domain at CommonName
    alt_name_[Number] Optional Just for multi-domain certificates: Alternative Name of the certificate. Each Alternative Name must be indicated with an ordered number and his alt_validation_ field. The number of Alternative Names can't be higher than the sanMaxDomains of the Product. (Check Alternative Names validation section).
    alt_validation_[Number] Optional dns Just for multi-domain certificates: Validation method of the Alternative Name. Each Alternative Name must have his alt_validation_ field. Validation types.

    8.8.1 Providing contact data

    The contact data for adminContact[Data], techContact[Data] and/or orgContact[Data] may be provided in two different ways:

    1. Providing a Contact ID: (example for admin)

    Request parameters:

    Name Required Default Description
    adminContactID Required Contact ID in MrDomain. Example: XXX-12312
    1. Providing all required information: (example for admin)

      In this case, an adminContactID may not be specified, or all these fields will be ignored.

    Request parameters:

    Name Required Default Description
    adminContactType Required Contact type: individual or organization
    adminContactFirstName Required First name
    adminContactLastName Required Last name
    adminContactOrgName Required
    if adminContactType = organization
    Organization or company name
    adminContactOrgType Required
    if adminContactType = organization
    and adminContactCountry = ES
    Spanish organization type (See table)
    adminContactIdentNumber Required Tax identification number, VAT Number, ID Card number...
    adminContactEmail Required Email
    adminContactPhone Required Phone number in +DD.DDDDDDDD format
    adminContactFax Optional Fax number in +DD.DDDDDDDDD format
    adminContactAddress Required Address
    adminContactPostalCode Required Postal code
    adminContactCity Required City
    adminContactState Required State/Province
    adminContactCountry Required (String 2 characters) Country code (See table)

    Other contacts may be provided switching the prefix admin accordingly to tech or org.

    8.8.2 Alternative Names validation

    In a multi-domain Certificate, the Alternative Names must be provided within the renew request with his related validation method. As this type of Certificates can have more than one Alternative Name, they need to be enumerated:

    Example with 2 Alternative Names

    Request parameters:

    Name Required Default Description
    alt_name_1 Required First Alternative Name
    alt_validation_1 Required dns Validation method of the first Alternative Name
    alt_name_2 Required Second Alternative Name
    alt_validation_2 Required dns Validation method of the second Alternative Name

    8.8.3 Response

    Response fields description:

    Field Description
    billing Billing information about the renew request.
    billing/total Total amount of the request.
    billing/currency Currency that represents the total.
    ssl List of SSL Certificates that comply with the indicated filters.
    ssl/certificateID Certificate identifier.
    ssl/commonName Common name.
    ssl/status Certificate status.
    ssl/renewable If Certificate can be renewed.
    ssl/productID Product identifier.
    ssl/tsCreate Date of Certificate creation.
    ssl/tsExpir Date of Certificate expiration.
    ssl/alternativeNames Certificate alternative domains.
    ssl/sanMaxDomains Maximum alternative domains allowed by the SSL Certificate (Only for Multi-domain SSL Certificates)

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "ssl\/renew",
        "version": "1.0.20",
        "responseData": {
            "billing": {
                "total": 95.35,
                "currency": "EUR"
            },
            "ssl": {
                "certificateID": 135838,
                "commonName": "example.com",
                "status": "process",
                "renewable": false,
                "productID": 4,
                "tsCreate": "",
                "tsExpir": "",
                "alternativeNames": [],
                "sanMaxDomains": 6
            }
        }
    }

    8.9 Reissue ( ssl/reissue/ )

    Use Reissue a SSL Certificate.

    Request:

    POST /ssl/reissue/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    csrData Required CSR Data (including -----BEGIN----- and -----END-----).
    certificateID Required Certificate identifier
    keyData Optional Key Data (including -----BEGIN----- and -----END-----).
    validationMethod Optional dns Certificate validation method for the domain at CommonName
    alt_name_[Number] Optional Just for multi-domain certificates: Alternative Name of the certificate. Each Alternative Name must be indicated with an ordered number and his alt_validation_ field. The number of Alternative Names can't be higher than the sanMaxDomains of the Product. (Check Alternative Names validation section).
    alt_validation_[Number] Optional dns Just for multi-domain certificates: Validation method of the Alternative Name. Each Alternative Name must have his alt_validation_ field. Validation types.

    8.9.1 Alternative Names validation

    In a multi-domain Certificate, the Alternative Names must be provided within the reissue request with his related validation method. As this type of Certificates can have more than one Alternative Name, they need to be enumerated:

    Example with 2 Alternative Names

    Request parameters:

    Name Required Default Description
    alt_name_1 Required First Alternative Name
    alt_validation_1 Required dns Validation method of the first Alternative Name
    alt_name_2 Required Second Alternative Name
    alt_validation_2 Required dns Validation method of the second Alternative Name

    8.9.2 Response

    Response fields description:

    Field Description
    certificateID Certificate identifier.
    commonName Common name.
    status Certificate status.
    renewable If Certificate can be renewed.
    productID Product identifier.
    tsCreate Date of Certificate creation.
    tsExpir Date of Certificate expiration.
    alternativeNames Certificate alternative domains.
    sanMaxDomains Maximum alternative domains allowed by the SSL Certificate (Only for Multi-domain SSL Certificates)

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "ssl\/reissue",
        "version": "1.0.20",
        "messages": [
            "Operation done correctly."
        ],
        "responseData": {
            "certificateID": 135815,
            "commonName": "www.ejemplo.com",
            "status": "reissue",
            "renewable": false,
            "productID": 57,
            "tsCreate": "2021-06-18",
            "tsExpir": "2022-07-19",
            "alternativeNames": [
                "www.ejemplo.com",
                "www.ejemplo.eu",
                "mail.ejemplo.com"
            ],
            "sanMaxDomains": 3
        }
    }

    8.10 Multidomain Add San ( ssl/multidomainaddsan/ )

    Use: Add a SAN Domain (Alternative Name) to the Certificate.

    Request:

    POST /ssl/multidomainaddsan/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    certificateID Required Certificate identifier
    extraSAN Required Alternative Name that will be added to the ssl Certificate

    8.10.1 Response

    Response fields description:

    Field Description
    billing Billing information about the renew request.
    billing/total Total amount of the request.
    billing/currency Currency that represents the total.
    ssl List of SSL Certificates that comply with the indicated filters.
    ssl/certificateID Certificate identifier.
    ssl/commonName Common name.
    ssl/status Certificate status.
    ssl/renewable If Certificate can be renewed.
    ssl/productID Product identifier.
    ssl/tsCreate Date of Certificate creation.
    ssl/tsExpir Date of Certificate expiration.
    ssl/alternativeNames Certificate alternative domains.
    ssl/sanMaxDomains Maximum alternative domains allowed by the SSL Certificate (Only for Multi-domain SSL Certificates)

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "ssl\/multidomainaddsan",
        "version": "1.0.20",
        "responseData": {
            "billing": {
                "total": 96.32,
                "currency": "EUR"
            },
            "ssl": {
                "certificateID": 135785,
                "commonName": "www.test.es",
                "status": "valid",
                "renewable": false,
                "productID": 57,
                "tsCreate": "2021-06-18",
                "tsExpir": "2022-07-19",
                "alternativeNames": [
                    "www.test.es",
                    "www.test2.es",
                    "www.test3.es",
                    "www.test4.com",
                    "www.scip-test01.com",
                    "www.scip-test01.es",
                    "www.scip-test02.com",
                    "www.scip-test03.com",
                    "www.scip-test04.es",
                    "www.scip-test05.es",
                    "www.scip-test06.com",
                    "www.scip-test07.com",
                    "www.scip-test08.com",
                    "www.scip-test09.com",
                    "www.scip-test10.com",
                    "www.scip-test10.es",
                    "www.scip-test11.com",
                    "www.scip-test12.com"
                ],
                "sanMaxDomains": 18
            }
        }
    }

    8.11 Get Validation Emails ( ssl/getvalidationemails/ )

    Use: List all the validation email for a Certificate and his alternative methods.

    Request:

    POST ssl/getvalidationemails/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    commonName Required CommonName of the Certificate.
    includeAlternativeMethods Optional true (bool) The response includes alternative validation methods to emails.

    Response fields description:

    Field Description
    commonName CommonName of the Certificate.
    valMethods List of validation methods for the Certificate validation.

    Response with includeAlternativeMethods = false

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "ssl\/getvalidationemails",
        "version": "1.0.20",
        "responseData": {
            "commonName": "example.com",
            "valMethods": [
                "admin@example.com",
                "administrator@example.com",
                "hostmaster@example.com",
                "webmaster@example.com",
                "postmaster@example.com"
            ]
        }
    }

    Response with includeAlternativeMethods = true

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "ssl\/getvalidationemails",
        "version": "1.0.20",
        "responseData": {
            "commonName": "example.com",
            "valMethods": [
                "dns",
                "http",
                "https",
                "admin@example.com",
                "administrator@example.com",
                "hostmaster@example.com",
                "webmaster@example.com",
                "postmaster@example.com"
            ]
        }
    }

    8.12 Change Validation Method ( ssl/changevalidationmethod/ )

    Use: Changes validation method for a CommonName that's in status process or reissue.

    Request:

    POST ssl/changevalidationmethod/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    certificateID Required Certificate identifier
    commonName Required Common name
    validationMethod Required New Validation method

    Response fields description:

    Field Description
    certificateID Certificate identifier
    commonName CommonName
    status Certificate status
    renewable If Certificate can be renewed
    productID Product identifier
    tsCreate Date of Certificate creation
    tsExpir Date of Certificate expiration
    alternativeNames Certificate alternative domains
    validationData Validation related information
    validationData/dcv Domain control validation
    validationData/organizationValidationStatus Status of the Organization validation. Just in OV and EV Validation Types
    validationData/brandValidationStatus Status of the Organization Brand validation. Just in OV and EV Validation Types
    validationData/message Short description of the validation status
    validationData/externalValidation Wherever or not the Certificate needs an external validation

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "ssl\/changevalidationmethod",
        "version": "1.0.20",
        "messages": [
            "Operation done correctly."
        ],
        "responseData": {
            "certificateID": 135820,
            "commonName": "www.example.com",
            "status": "process",
            "renewable": false,
            "productID": 55,
            "tsCreate": "",
            "tsExpir": "",
            "alternativeNames": [],
            "validationData": {
                "dcv": {
                    "www.example.com": {
                        "validated": false,
                        "domainName": "www.example.com",
                        "method": "https",
                        "checkvalue": {
                            "link": "https:\/\/www.example.com\/.well-known\/pki-validation\/6E14527A118BF6D03F4D52F9901F0D46.txt",
                            "file": "6E14527A118BF6D03F4D52F9901F0D46.txt",
                            "contents": "96a5500ed2051a7a1efa94bf90aa1ec45f78dbd349c33a05c6e8e8d0a50\ncomodoca.com\nssl135820"
                        }
                    }
                },
                "organizationValidationStatus": "",
                "brandValidationStatus": "",
                "message": "The petition is pending validation.",
                "externalValidation": true
            }
        }
    }

    8.13 Resend Validation Mail ( ssl/resendvalidationmail/ )

    Use: Resends a CommonName validation email from a Certificate.

    Request:

    POST ssl/resendvalidationmail/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    certificateID Required Certificate identifier
    commonName Required Common name

    Response fields description:

    Field Description
    certificateID Certificate identifier
    commonName CommonName
    status Certificate status
    renewable If Certificate can be renewed
    productID Product identifier
    tsCreate Date of Certificate creation
    tsExpir Date of Certificate expiration
    alternativeNames Certificate alternative domains
    validationData Validation related information
    validationData/dcv Domain control validation
    validationData/organizationValidationStatus Status of the Organization validation. Just in OV and EV Validation Types
    validationData/brandValidationStatus Status of the Organization Brand validation. Just in OV and EV Validation Types
    validationData/message Short description of the validation status
    validationData/externalValidation Wherever or not the Certificate needs an external validation

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "ssl\/resendvalidationmail",
        "version": "1.0.20",
        "messages": [
            "Operation done correctly."
        ],
        "responseData": {
            "certificateID": 135763,
            "commonName": "www.example.com",
            "status": "process",
            "renewable": false,
            "productID": 2,
            "tsCreate": "",
            "tsExpir": "",
            "alternativeNames": [],
            "validationData": {
                "dcv": {
                    "www.example.com": {
                        "validated": false,
                        "domainName": "www.example.com",
                        "method": "mail",
                        "checkvalue": "admin@example.com"
                    }
                },
                "organizationValidationStatus": "",
                "brandValidationStatus": "",
                "message": "The petition is pending validation.",
                "externalValidation": true
            }
        }
    }

    8.14 SSL Certificates related tables

    8.14.1 SSL Validation Types

    SSL Validation Type Information
    dv Domain validation
    ov Organization validation
    ev Extended validation

    8.14.2 SSL Status

    Certificate Status Information
    process In process
    valid Valid
    expired Expired
    renew Renovation in process
    reissue In the process of reissue
    cancel Canceled

    8.14.3 CommonName's Validation Types

    CommonName's Validation Type Information
    mail Validation via email
    dns Validation via dns record at the domain dns zone
    http Validation via http protocol. An specific url must show a specific file with specific content
    https Validation via https protocol. An specific url must show a specific file with specific content

    9 Module: User

    The user module allows the management of account's external users.

    Available actions:

    Action Authentication Description
    /user/create/ Required Creates an external user
    /user/list/ Required Lists all external users on the account
    /user/getinfo Required Gets information about a concret user
    /user/updatestatus/ Required Updates user's status
    /user/updatepassword/ Required Updates user's password
    /user/adddomain/ Required Adds a domain to a user
    /user/updatedomain/ Required Updates domains's permissions
    /user/deletedomain/ Required Deletes a domain from a user
    /user/delete/ Required Deletes an external user

    9.1 Create ( user/create/ )

    Use: Create an external user.

    Request:

    POST /user/create/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    username Required Username of the external user
    password Required Password of the external user

    Response fields description:

    Field Description
    username User username
    status User status
    lastlogin User lastLogin day
    numDomains Domains associated to the user

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "user\/create",
        "version": "1.0.20",
        "messages": [
            "Operation done correctly."
        ],
        "responseData": {
            "username": "test3",
            "status": "enabled",
            "lastLogin": "",
            "numDomains": 0
        }
    }

    9.2 List ( user/list/ )

    Use: Lists all external users on the account.

    Request:

    POST /user/list/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    pageLength Optional 1000 Maximum number of results
    page Optional 1 Results page number
    status Optional External user status (See table)
    username Optional Search external users by his username
    domainName Optional Search external users by his domains

    Response fields description:

    Field Description
    queryInfo Information about the query made
    queryInfo/page Results page number
    queryInfo/pageLength Maximum number of results per page
    queryInfo/results Number of results obtained
    queryInfo/total Total number of results
    users User information
    users/username User username
    users/status User status
    users/lastlogin User lastLogin day
    users/numDomains Domains associated to the user

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "user\/list",
        "version": "1.0.20",
        "responseData": {
            "queryInfo": {
                "page": 1,
                "pageLength": 1000,
                "results": 1,
                "total": 1
            },
            "users": [
                {
                    "username": "admin1",
                    "status": "enabled",
                    "lastLogin": "2020-05-14",
                    "numDomains": 4
                }
            ]
        }
    }

    9.3 Get Info ( user/getinfo/ )

    Use: Gets information about a concret user.

    Request:

    POST /user/getinfo/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    username Required User's username

    Response fields description:

    Field Description
    username User username
    status User status
    lastlogin User lastLogin day
    numDomains Domains associated to the user
    domains List of domains associated to the user and his related permission

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "user\/getinfo",
        "version": "1.0.20",
        "responseData": {
            "username": "admin1",
            "status": "enabled",
            "lastLogin": "2020-05-14",
            "numDomains": 4,
            "domains": {
                "example.tv": {
                    "domain_ownercontacts": "write",
                    "domain_contacts": "write",
                    "domain_dns": "write",
                    "domain_gluerecords": "write",
                    "domain_dnssec": "write",
                    "domain_transferblock": "disabled",
                    "domain_authcode": "read",
                    "domain_others": "write",
                    "service_ftp": "write",
                    "service_subdomains": "write",
                    "service_redirects": "write",
                    "service_parking": "write",
                    "service_dnszone": "write",
                    "service_ddbb": "write",
                    "servicemail_accounts": "write",
                    "servicemail_alias": "write"
                },
                ....
            }
        }
    }

    9.4 Update Status ( user/updatestatus/ )

    Use: Updates user's status.

    Request:

    POST /user/updatestatus/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    username Required User's username
    status Required User status to apply (See table)

    Response fields description:

    Field Description
    username User username
    status User status
    lastlogin User lastLogin day
    numDomains Domains associated to the user
    domains List of domains associated to the user and his related permission

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "user\/updatestatus",
        "version": "1.0.20",
        "messages": [
            "Operation done correctly."
        ],
        "responseData": {
            "username": "admin1",
            "status": "enabled",
            "lastLogin": "2020-05-14",
            "numDomains": 4,
            "domains": {
                "example.tv": {
                    "domain_ownercontacts": "write",
                    "domain_contacts": "write",
                    "domain_dns": "write",
                    "domain_gluerecords": "write",
                    "domain_dnssec": "write",
                    "domain_transferblock": "disabled",
                    "domain_authcode": "read",
                    "domain_others": "write",
                    "service_ftp": "write",
                    "service_subdomains": "write",
                    "service_redirects": "write",
                    "service_parking": "write",
                    "service_dnszone": "write",
                    "service_ddbb": "write",
                    "servicemail_accounts": "write",
                    "servicemail_alias": "write"
                },
                ....
    
            }
        }
    }

    9.5 Update Password ( user/updatepassword/ )

    Use: Updates user password.

    Request:

    POST /user/updatestatus/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    username Required User's username
    password Required Password to apply

    Response fields description:

    Field Description
    username User username
    status User status
    lastlogin User lastLogin day
    numDomains Domains associated to the user
    domains List of domains associated to the user and his related permission

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "user\/updatepassword",
        "version": "1.0.20",
        "messages": [
            "Operation done correctly."
        ],
        "responseData": {
            "username": "admin1",
            "status": "enabled",
            "lastLogin": "2020-05-14",
            "numDomains": 4,
            "domains": {
                "example.tv": {
                    "domain_ownercontacts": "write",
                    "domain_contacts": "write",
                    "domain_dns": "write",
                    "domain_gluerecords": "write",
                    "domain_dnssec": "write",
                    "domain_transferblock": "disabled",
                    "domain_authcode": "read",
                    "domain_others": "write",
                    "service_ftp": "write",
                    "service_subdomains": "write",
                    "service_redirects": "write",
                    "service_parking": "write",
                    "service_dnszone": "write",
                    "service_ddbb": "write",
                    "servicemail_accounts": "write",
                    "servicemail_alias": "write"
                },
                ....
    
            }
        }
    }

    9.6 Add Domain ( user/adddomain/ )

    Use: Adds a domain to a user.

    Request:

    POST /user/adddomain/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    username Required User's username
    domainName Required Domain to add
    [Permission]=[value] Optional By default the permission are created with the system default values A permission to apply (See table)

    Example of permission parametres

    Request parameters:

    Name Required Default Description
    domain_ownercontacts=read Optional The user would read information about domain owner's contact, but not modify it

    Response fields description:

    Field Description
    username string
    status string
    lastlogin string
    numDomains string
    domains string

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "user\/adddomain",
        "version": "1.0.20",
        "messages": [
            "Operation done correctly."
        ],
        "responseData": {
            "username": "admin1",
            "status": "enabled",
            "lastLogin": "2020-05-14",
            "numDomains": 3,
            "domains": {
                "example.tv": {
                    "domain_ownercontacts": "read",
                    "domain_contacts": "write",
                    "domain_dns": "write",
                    "domain_gluerecords": "write",
                    "domain_dnssec": "write",
                    "domain_transferblock": "disabled",
                    "domain_authcode": "read",
                    "domain_others": "write",
                    "service_ftp": "write",
                    "service_subdomains": "write",
                    "service_redirects": "write",
                    "service_parking": "write",
                    "service_dnszone": "write",
                    "service_ddbb": "write",
                    "servicemail_accounts": "write",
                    "servicemail_alias": "write"
                },
                ....
    
            }
        }
    }

    9.7 Update Domain ( user/updatedomain/ )

    Use: Updates domains's permissions.

    Request:

    POST /user/updatedomain/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    username Required User's username
    domainName Required Domain to update
    [Permission]=[value] Optional By default the permission are created with the system default values A permission to apply (See table)

    Example of permission parametres

    Request parameters:

    Name Required Default Description
    domain_ownercontacts=read Optional The user would read information about domain owner's contact, but not modify it

    Response fields description:

    Field Description
    username string
    status string
    lastlogin string
    numDomains string
    domains string

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "user\/updatedomain",
        "version": "1.0.20",
        "messages": [
            "Operation done correctly."
        ],
        "responseData": {
            "username": "admin1",
            "status": "enabled",
            "lastLogin": "2020-05-14",
            "numDomains": 3,
            "domains": {
                "example.tv": {
                    "domain_ownercontacts": "read",
                    "domain_contacts": "write",
                    "domain_dns": "write",
                    "domain_gluerecords": "write",
                    "domain_dnssec": "write",
                    "domain_transferblock": "disabled",
                    "domain_authcode": "read",
                    "domain_others": "write",
                    "service_ftp": "write",
                    "service_subdomains": "write",
                    "service_redirects": "write",
                    "service_parking": "write",
                    "service_dnszone": "write",
                    "service_ddbb": "write",
                    "servicemail_accounts": "write",
                    "servicemail_alias": "write"
                },
                ....
    
            }
        }
    }

    9.8 Delete Domain ( user/deletedomain/ )

    Use: Deletes a domain from a user.

    Request:

    POST /user/deletedomain/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    username Required User's username
    domainName Required Domain to be deleted

    Response fields description:

    Field Description
    username User username
    status User status
    lastlogin User lastLogin day
    numDomains Domains associated to the user
    domains List of domains associated to the user and his related permission

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "user\/deletedomain",
        "version": "1.0.20",
        "messages": [
            "Operation done correctly."
        ],
        "responseData": {
            "username": "admin1",
            "status": "enabled",
            "lastLogin": "2020-05-14",
            "numDomains": 3,
            "domains": {
                "example.tv": {
                    "domain_ownercontacts": "write",
                    "domain_contacts": "write",
                    "domain_dns": "write",
                    "domain_gluerecords": "write",
                    "domain_dnssec": "write",
                    "domain_transferblock": "disabled",
                    "domain_authcode": "read",
                    "domain_others": "write",
                    "service_ftp": "write",
                    "service_subdomains": "write",
                    "service_redirects": "write",
                    "service_parking": "write",
                    "service_dnszone": "write",
                    "service_ddbb": "write",
                    "servicemail_accounts": "write",
                    "servicemail_alias": "write"
                },
                ....
    
            }
        }
    }

    9.9 Delete ( user/delete/ )

    Use: Deletes an external user.

    Request:

    POST /user/delete/

    Request parameters:

    Name Required Default Description
    apiuser Required Username
    apipasswd Required User password
    username Required User's username

    Response fields description:

    Field Description

    Response example:

    {
        "success": true,
        "errorCode": 0,
        "errorCodeMsg": "",
        "action": "user\/delete",
        "version": "1.0.20",
        "messages": [
            "Operation done correctly."
        ],
        "responseData": []
    }

    9.10 Users related tables

    9.10.1 Domain's Permissions list

    Permission Information
    domain_ownercontacts Domain owner's contact
    domain_contacts Rest of domain contacts
    domain_dns Domain's DNS
    domain_gluerecords Domain's Glue Records
    domain_dnssec Domain's DNSSEC
    domain_transferblock Domain's transfer lock
    domain_authcode Domain's AuthCode/EPP.
    It doesn't allow write
    domain_others Other's domain options
    service_ftp FTP service
    service_subdomains Domain subdomains
    service_redirects Redirects
    service_parking Parking service management
    service_dnszone DNS zone management
    service_ddbb Database management
    servicemail_accounts Email accounts management
    servicemail_alias Mail aliases management

    9.10.2 User permissions over domains

    Value Information
    disabled Permission deactivated
    read Only read permission
    write Read and Write permission

    9.10.3 User's status

    User Status Information
    enabled User is enabled
    disabled User is disabled

    10 Addendum I

    10.1 Tables

    10.1.1 Error codes

    The following list contains the description of the error codes you might find along with responses for requests that failed. Bear in mind that some codes are operation-specific.

    Code Definition
    0 Success
    1 Undefined error
    100 Syntax error
    101 Syntax error: parameter fault
    102 Invalid object/action
    103 Not allowed object/action
    104 Not implemented object/action
    105 Syntax error: invalid parameter
    200 Login required
    201 Login invalid
    210 Session invalid
    300 Action not allowed
    1000 Account blocked
    1001 Account deleted
    1002 Account inactive
    1003 Account not exists
    1004 Account invalid pass
    1005 Account invalid pass
    1006 Account blocked
    1007 Account filtered
    1009 Account invalid pass
    1010 Account blocked
    1011 Account blocked
    1012 Account blocked
    1013 Account blocked
    1014 Account filtered
    1030 Account banned
    1100 Insufficient balance
    2001 Invalid domain name
    2002 TLD not supported
    2003 TLD in maintenance
    2004 Domain check error
    2005 Domain transfer not allowed
    2006 Domain Whois not allowed
    2007 Domain Whois error
    2008 Domain not found
    2009 Domain create error
    2010 Domain create error: taken
    2011 Domain create error: Domain premium
    2012 Domain transfer error
    2100 Domain renew error
    2101 Domain renew not allowed
    2102 Domain renew blocked
    2200 Domain update error
    2201 Domain update not allowed
    2202 Domain update blocked
    2210 Invalid operation due to the owner contact data verification status
    3001 Contact not exists
    3002 Contact data error
    3003 Invalid operation due to the contact data verification
    3500 User not exists
    3501 User create error
    3502 User update error
    4001 Service not found
    4002 Service entity not found
    4003 Maximum amount of entities error (FTP/Mails/etc.)
    4004 Failure to create the entity
    4005 Failure to update the entity
    4006 Failure to delete the entity
    4007 Failure to create the service
    4008 Failure to upgrade the service
    4009 Failure to renew the service
    4010 Failure to motify the parking system
    5000 SSL Error
    5001 SSL Not Found
    10001 WebConstructor Error

    10.1.2 Country codes

    You can check the country code table (in ISO 3166-1 alfa-2 format) in Country Codes.

    10.1.3 Organization type (spanish contacts)

    You can check the organization type table for contacts registered in ES (Spain) in Spanish Organization Types.

    10.2 Examples

    10.2.1 PHP

    Remember that you can download our complete SDK for PHP from our Github repository.

    <?php
    define( 'DD_API_USER', 'xxxxxx' );
    define( 'DD_API_PASSWD', 'yyyyyyy' );
    define( 'DD_API_URL', 'https://simple-api.dondominio.net' );
    define( 'DD_API_PORT', 443 );
    
    function DDAPI_Query( $query, $data = array() )
    {
        $formData = array_merge( array(
                    'apiuser'       => DD_API_USER,
                    'apipasswd'     => DD_API_PASSWD,
                    ), is_array( $data ) ? $data : array()  );
        $url = DD_API_URL.'/'.trim( $query, '/' ).'/';
        $ch = curl_init();
        curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
        curl_setopt( $ch, CURLOPT_URL, $url);
        curl_setopt( $ch, CURLOPT_PORT, DD_API_PORT );
        curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, 1 );
        curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, 2 );
        curl_setopt( $ch, CURLOPT_POST, true );
        curl_setopt( $ch, CURLOPT_POSTFIELDS, $formData );
        $response = curl_exec( $ch );
        curl_close( $ch );
        if( strlen( $response ) && ( $responseObject = @json_decode( $response ))) {
            return $responseObject;
        }
        return false;
    }
    
    $response = DDAPI_Query( '/tool/idnconverter/', array( 'query' => 'España' ) );
    //print_r( $response );
    
    if( $response ) {
        echo "SUCCESS: ".( $response->success ? "YES" : "NO")."\n";
        if( $response->success ) {
            echo "PunyCode: ".$response->responseData->punycode."\n";
        }
    }
    ?>
    
    

    10.2.2 Python

    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    
    import requests, json
    
    api_url = "https://simple-api.dondominio.net"
    api_user = "XXXXXXX"
    api_pass = "YYYYYYY"
    api_port = "443"
    
    def ddapi_query(query, data={}):
        data.update({"apiuser": api_user, "apipasswd": api_pass})
        try:
            url = api_url + ":" + api_port + "/" + query.strip("/") + "/"
            return requests.post(url, data, verify=True).json()
        except requests.exceptions.RequestException as e:
            print str(e)
            return None
    
    
    if __name__ == "__main__":
        response = ddapi_query("/tool/idnconverter/", {"query": "España"})
        if isinstance(response, dict):
            print "SUCCESS: " + "YES" if response["success"] else "NO"
            if response["success"]:
                print "PunyCode: " + response["responseData"]["punycode"]
    
    
    

    10.2.3 Java

    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.util.HashMap;
    
    import org.apache.http.HttpEntity;
    import org.apache.http.client.methods.CloseableHttpResponse;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.entity.mime.MultipartEntityBuilder;
    import org.apache.http.impl.client.CloseableHttpClient;
    import org.apache.http.impl.client.HttpClients;
    
    import org.json.simple.JSONObject;
    import org.json.simple.parser.JSONParser;
    
    
    public class DDClientExample {
        private static final String API_URL     = "https://simple-api.dondominio.net";
        private static final String API_USER    = "xxxxxx";
        private static final String API_PASS    = "yyyyyy";
        private static final String API_PORT    = "443";
    
        public static JSONObject ddapiQuery(
                String query,
                HashMap<String,
                String> data) throws Exception {
            JSONObject result = null;
            CloseableHttpClient httpclient = HttpClients.createDefault();
            try {       
                MultipartEntityBuilder entity = MultipartEntityBuilder.create();
                entity.addTextBody("apiuser", API_USER).
                    addTextBody("apipasswd", API_PASS);
                for (String key : data.keySet()) {
                    entity.addBinaryBody(key, data.get(key).getBytes("UTF-8"));
                }
                HttpEntity post = entity.build();
    
                HttpPost httppost = new HttpPost(API_URL + ":" + API_PORT + query);
                httppost.setEntity(post);
                CloseableHttpResponse response = httpclient.execute(httppost);
                try {
                    BufferedReader rd = new BufferedReader(
                            new InputStreamReader(response.getEntity().getContent())
                            );
                    StringBuffer buffer = new StringBuffer();
                    String line = "";
                    while ((line = rd.readLine()) != null) {
                        buffer.append(line);
                    }
                    result = (JSONObject) new JSONParser().parse(buffer.toString());
                } finally {
                    response.close();
                }
            } finally {         
                httpclient.close();
            }
    
            return result;
        }
    
        public static void main(String[] args) {
            try {
                HashMap<String, String> data = new HashMap<String, String>();
                data.put("query", "España");
                JSONObject result = ddapiQuery("/tool/idnconverter/", data);
                if (!(boolean) result.get("success")) {
                    throw new Exception("SUCCESS: NO");
                }
    
                JSONObject responseData = (JSONObject) new JSONParser().parse(
                        result.get("responseData").toString()
                        );
                System.out.println("SUCCESS: YES");
                System.out.println("PunyCode: " + responseData.get("punycode"));
            } catch (Exception e) {
                System.out.println(e.getMessage());
            }
        }
    }
    
    

    10.2.4 Perl

    #!/usr/bin/perl
    use strict;
    use warnings;
    
    use LWP;
    use JSON;
    
    my $api_url = "https://simple-api.dondominio.net";
    my $api_port = "443";
    my $api_user = "XXXXXXX";
    my $api_pass = "YYYYYYY";
    
    sub ddapi_query {
        my $query = shift;
        my $data = shift;
    
        $data->{ "apiuser" } = $api_user;
        $data->{ "apipasswd" } = $api_pass;
    
        my $browser = LWP::UserAgent->new;
        my $request = $browser->post(
            $api_url.':'.$api_port.$query,
            $data
        );
        if (!$request->is_success) {
            return 0;
        }
        print $request->content;
        return JSON->new->utf8->decode($request->content);
    }
    
    # Query Example:
    my $queryData = { query => 'España' };
    my $response = ddapi_query("/tool/idnconverter/", $queryData );
    if (!$response || !$response->{'success'}) {
        die "SUCCESS: NO\n";
    }
    
    print "SUCCESS: SI\n";
    print 'PunyCode: ' . $response->{'responseData'}->{'punycode'} . "\n";
    exit 0
    
    

    10.2.5 Bash/Wget

    #!/bin/bash
    
    URI="https://simple-api.dondominio.net"
    Credentials="&apiuser=XXXXXX&apipasswd=YYYYYY";
    
    function DDAPI_Query
    {
       query="$1";
       postdata="${Credentials}${2}";
       /usr/bin/wget -q -O - --post-data="$postdata" "${URI}${query}"
    }
    
    
    response=$(DDAPI_Query "/tool/idnconverter/" "query=españa.com");
    echo $response;
    exit 0;
    
    

    10.3 ChangeLog

    Read the complete changelog in ChangeLog.