Account and Handling
login
Login with Username & Password
Requires (mandatory):
username | Joker.com username (email address) |
password | Joker.com password |
Returns:
Auth-SID | Authenticated Session ID, must be provided with any other request (parameter auth-sid) |
List of TLDs | List of domain TLDs which are available to the reseller. |
To be able to use the entire API, you must have a reseller account with Joker.com (and use this account to log in).
Example:
https://dmapi.joker.com/request/login?username=johndoe&password=mypass
Login with API Keys
Instead of using your user- and password credentials, you may also use so called 'API keys' for login. This way, you can create several DMAPI access facilities, which has several advantages:
- you do not need to expose username and password in your scripts
- API keys can be restricted to be "read only" (no modifications possible), or to allow 'modifications only' (can not produce costs)
- you may hand API keys to your staff to enable them to do specific things with Joker.com
Create your API keys in 'My Profile' in section 'Manage Joker.com API access keys'
Example usage:
https://dmapi.joker.com/request/login?api-key=Key_created_in_your_Profile_at_Joker.com
The result is the same as for "login"-request, you have to use the provided auth-sid for the subsequent actions.
logout
Returns: Nothing
Used to forcibly close (terminate) a session. The session identified by Auth-SID may not be used anymore to send requests. Normally not required as session will timeout anyway (default: 1 hour).
result-list
Accepts:
pending |
get results of requests still in progress |
showall | get all results incl. deletes using result-delete |
period |
get results for specifed period of days (default: 90) |
date | get results received on (or before) specified date. When date is specified, parameter "period" will be applied to this date (instead of today) and defaults to 1 |
offset |
start dispalying results from specified position |
limit | only get number of results specified by limit |
status |
get results having specified status (ack/nack/?) |
count-only |
when set to 1, only count number of records and return single line in format "Records: N" |
All following filters may use patterns ("*" and "?") |
|
---|---|
rtype |
get results for requests of specified type (domain-register/etc) |
objid |
get results for specified object ids (domain names, contacts, hosts) |
procid | get results for specified proc-id |
svtrid | get results for specifued SvTrId |
cltrid | get results for specified ClTrId |
Returns:
List of answers from joker.com (one per line):
TimeStamp SvTrId Proc-ID request-type status ClTrId
Where:
TimeStamp: The time when request was made, YYYYMMDDHHMMSS SvTrID: Tracking-Id associated with this request. Proc-ID: Proc-Id associated with this request. request-type: The type of the request. request-object: The object name (host, domain or contact handle) status: ack, nack or ?, where ack means that request was completed successfully. ClTrId: User specified transaction ID, or "-" if nothing was provided by the user
Example:
https://dmapi.joker.com/request/result-list
result-retrieve
Accepts:
Proc-ID | One of these must be specified. If both are specified, SvTrId has precedence. |
SvTrID |
Returns:
Answer (processing result) associated with specified Tracking/Processing ID. If detailed information (content) is not available, only status will be returned |
Please note:
Since there is no requirement of uniqueness for user-specified transaction ids, it is not possible to use them to retrieve specific results.
Example:
https://dmapi.joker.com/request/result-retrieve?proc-id=8181810&auth-sid=<your-current-session-id>
result-delete
Accepts:
Proc-ID |
One of these must be specified. If both are specified, SvTrId has precedence |
SvTrID |
Returns:
A descriptive message (confirmation) in case of success.
This request will delete the content (not the status) of a reply to an asynchronous request. Deleted results will not be listed anymore when using result-list.
query-profile
Returns:
Returns reseller profile data in format "key: value". May be used to query account balance
Example:
https://dmapi.joker.com/request/query-profile
query-account-balance
Returns:
Returns actual account balance - available, pending and total.
Example:
https://dmapi.joker.com/request/query-account-balance
You will get a response like this:
Status-Code: 1000
Status-Text: OK
Columns: available,pending,total,currency
Separator: TAB
975.00 25.00 1000.00 USD
The columns are:
available |
amount available for orders |
pending |
amount reserved for pending operations (renewals, transfers etc) |
total |
the sum of available and pending, i.e. the effective balance |
currency |
currency of your account |
query-order-list
Parameters
show-all | Show all orders including those which did not incur any charges. | ||||||||||||||||||||||||||||
after |
Show only orders after specified date (inclusive). Date must be in ISO format: YYYY-MM-DD |
||||||||||||||||||||||||||||
before |
Show only orders before specified data (inclusive).
If neither "after" or "before" is specified, the default is a list of orders within last 30 days. |
||||||||||||||||||||||||||||
type |
Show only orders of specified type. Types are:
|
||||||||||||||||||||||||||||
status |
Show only orders with specified completion status.
Possible values are: ok, error, pending |
||||||||||||||||||||||||||||
tld | Filter by TLD. By default all TLDs are included. | ||||||||||||||||||||||||||||
fqdn | Filter by FQDN (domain name). By default all domains (and other objects) are included. | ||||||||||||||||||||||||||||
fqdn-like |
Filter by FQDN with wilcards. Wildcards are "*" (any number of any characters) and "?" (exactly one any character).
Example: "*.com" will list orders involving any .com domains. |
||||||||||||||||||||||||||||
order-id |
Only show order with specified id. |
||||||||||||||||||||||||||||
order-id-after |
Show orders with ids greater or equal than specified. | ||||||||||||||||||||||||||||
order-id-before |
Show orders with ids less or equal than than specified. | ||||||||||||||||||||||||||||
proc-id | Only show order with specified processing id. | ||||||||||||||||||||||||||||
proc-id-after |
Show orders with processing ids greater or equal than specified. |
||||||||||||||||||||||||||||
proc-id-before |
Show orders with processing ids less or equal than than specified. |
||||||||||||||||||||||||||||
limit |
Limit the number of returned rows. Used only when above described id ranges are specified. Ignored when parameters
The default (and the maximum) is 1000. |
||||||||||||||||||||||||||||
asc | If true, sort ascending - recent orders come last. The default is false - recent orders come first. | ||||||||||||||||||||||||||||
separator |
Use specified separator in table output. Default is "tab". Possible values:
|
||||||||||||||||||||||||||||
num-comma |
If true, use comma (",") as decimal separator in numbers. Default is false, i.e. use dot (".")
Please note that "comma" separator cannot be used when "num-comma" is set to "true". |
||||||||||||||||||||||||||||
csv |
If true, return result as a downloadable CSV file, without DMAPI headers. |
||||||||||||||||||||||||||||
per-page |
Number of rows returned per single request when using paging. Must be at least 10. |
||||||||||||||||||||||||||||
page |
Page number when |
||||||||||||||||||||||||||||
count-only |
Only count number of rows that would be returned given specified parameters. |
Returns
A CSV-like list following the usual DMAPI header:
Status-Code: 1000
Status-Text: OK
Row-Count: 6
Columns: order_id,proc_id,created_at,status,type,amount_brutto,amount_netto,currency,identifier
85671266 917263183 2024-03-17T07:58:14Z ok renew 10.19 10.19 USD example.org
85671265 917263182 2024-03-17T07:58:12Z ok renew 10.19 10.19 USD example.com
85671256 917263173 2024-03-17T07:57:06Z ok renew 29.40 29.40 USD example.net
85671255 917263172 2024-03-17T07:57:05Z ok create 2.00 2.00 USD example.zone
85671227 917263144 2024-03-17T07:54:07Z ok service_request 0 0 example.com
85671226 917263143 2024-03-17T07:54:07Z ok create-contact 0 0 CCOM-91167381
Output columns description
order_id | Order ID |
proc_id | Processing ID |
created_at | Order creation time (UTC) |
status | Order status: ok, error, pending |
type | Order type |
amount_brutto | Amount charged including VAT. If VAT is not deducted then it has same value as amount_netto. |
amount_netto | Amount charged excluding VAT. |
currency | Currency if amount is non-zero; empty if amount is zero. |
identifier | Domain or other object name that is affected by the order |
Positive amounts are amounts paid, i.e. deducted from your balance.
Negative amounts are amounts received, i.e. added to your balance. This usually happens if you get a refund.
If status
is not ok
, then the amount is neither added or deducted - it is just a reference to the cost of the order.
If show-all=false
(the default) then only orders processed within last 3 years are visible.
If show-all=true
then only orders from last 90 days are visible.
Period covered by after
/before
parameters may not be longer than 90 days. The period is enforced silently, you will get no warning - just orders within 90 days, so if there are none you will see empty response.
Empty (no rows) output means that there are no orders matching specified parameters are visible.
If you use ranged search by order-id
or proc-id
and do not limit search period using after
and/or before
, the maximum number of rows returned is 1000 (and is the default). It could be lowered by using limit
parameter, but 1000 is the maximum anyway.
However, if you do use after
and/or before
parameters, they will be applied independently
- this means that if specified id range does not fit into specified time range, you will get no results.
Parameters fqdn
and fqdn-like
actually could be used not only for domain names but for other object identifies, like contact handles - it depends on operation.
Please note that all returned data, including amounts charged, is for informational purposes only!
The sum of amounts may not exactly match the issued invoices due to possible adjustments related to discounts, manual processing, and other corrections that cannot be properly reflected in this list.