Basics
Commonalities for all requests
DMAPI-Server URL
This is the service address which has to be used for all requests:
https://dmapi.joker.com
This is how a request looks like:
https://dmapi.joker.com/request/<name-of-request>?<name-of-parameter-1>=<value-of-parameter-1>
&<name-of-parameter-2>=<value-of-parameter-2>&auth-sid=<your-session-id>
Header fields which are returned by most requests
Tracking Id | Unique server-assigned tracking id, assigned to almost all requests |
Status-Code | 0 if no error occured, otherwise other than 0 |
Status-Text | Human readable error description |
Result | ACK or NACK (= "Acknowlegded" or "Not Acknowledged") |
Error | May be returned if (and only if) the request was rejected, in this case reason(s) will be provided. Presence of this line in headers is indicative for that processing didn't take place. |
Warning | Indicative of non-fatal processing or validation problems |
Proc-Id | Joker.com processing ID |
HTTP error codes | 200 if everything is OK (request was accepted and processed or queued for processing), otherwise the reason will be provided in Error header lines (or, if this is absent, HTTP error code should be used). |
IMPORTANT: Every request (except "login") requires the presence of the Auth-Sid variable ("Session ID"), which is returned by the "login" request (login). An active session will expire after some inactivity period (default: 1 hour).
In case you are using a browser to access this service, the session id will be set as a cookie, hence need not to be specified as Auth-Sid (unless cookies are not supported or turned off). In any case, Auth-Sid has precedence, if provided.
Requests consist of these parts:
- "Requires": Defines variables (sometimes referred to as 'fields') that MUST be present
- "Accepts": Defines variables that MAY be present (but not required)
- "Returns": Describes the request's output - header fields and extra data (if any). If "Returns" is omitted, then a standard reply should be expected (Status-Code, Status-Text, Proc-ID etc)
Whois Privacy Services
Privacy services are available for most generic top level domain names. The availablitiy of privacy services is indicated in Joker.com's price list and domain search.
For requests "domain-register" and "domain-transfer-in-reseller", there exists an additional parameter "privacy":
- privacy=basic (owner contact name and/or organisation left intact, address & emails are masked)
- privacy=pro (everything is masked)
- privacy=none (same as "no privacy parameter provided")
For "domain-renew", the additional parameter privacy works similar:
- privacy=basic (owner contact name and/or organisation left intact, address & emails are masked)
- privacy=pro (everything is masked)
- privacy=none (explicitly do a renew without privacy services, even if currently privacy is enabled)
- privacy=keep (renew with the same level of privacy service which is currently active for the domain) - this now is also default; for domains without an existing privacy service subscription, "keep" means "none", so there will be no privacy service ordered. If there is an existing privacy service subscription active, and this privacy service is not set to "off", "keep" will also renew this privacy service subscription, together with the domain.
To order privacy services for existing domains, the new request "domain-privacy-order"can be used:
domain=example.com period=12 (in months, as usual) expyear=2016 (privacy expiration year, similar to domain renewal request) privacy=basic|pro If neither period nor expyear is provided, then privacy is ordered for remaining domain lifetime, whatever it is.
Example:
https://dmapi.joker.com/request/domain-privacy-order?domain=example.com&privacy=basic&auth-sid=<your-current-session-id>
The request "domain-set-property" allows to manage privacy services for domains which already do have a valid privacy service subscription:
- privacy=basic (activate "basic" privacy service)
- privacy=pro (activate "pro" privacy service)
- privacy=off (deactivate privacy service - Whois data will be disclosed)
Samples:
Ordering domain with privacy:
https://dmapi.joker.com/request/domain-register?domain=example.com&period=12&owner-c=CCOM-1&billing-c=CCOM-1&admin-c=CCOM-1&tech-c=CCOM-1&ns-list=a.ns.joker.com:b.ns.joker.com&privacy=pro&auth-sid=<your-current-session-id>
Renew domain and order privacy:
https://dmapi.joker.com/request/domain-register?domain=example.com&period=12&privacy=basic&auth-sid=<your-current-session-id>
Request incoming transfer and enable privacy:
https://dmapi.joker.com/request/domain-transfer-in-reseller?domain=example.com&transfer-auth-id=zigzag&billing-c=CCOM-1&admin-c=CCOM-1&tech-c=CCOM-1&privacy=pro&auth-sid=<your-current-session-id>
Temporarily disable privacy (assuming that it is active):
https://dmapi.joker.com/request/domain-set-property?domain=example.com&privacy=off&auth-sid=<your-current-session-id>
Fetch real contact data from privacy protected domain:
https://dmapi.joker.com/request/query-whois?domain=example.com&internal=1&auth-sid=<your-current-session-id>
NOTE: Not retrieved replies will be kept on the server for a period of 30 days, after this time, only the status of specific request will be available (success or failure).
IMPORTANT: Please also note that the registration/renewal period is in MONTHS, NOT YEARS!