doc/DMAPI-ext.txt
changeset 9 081ed0ce9532
parent 4 08a632c3244f
equal deleted inserted replaced
8:e108c8bfb237 9:081ed0ce9532
     6 =======
     6 =======
     7 
     7 
     8 	Requests to the DMAPI (Domain Management API) are simply HTTP POST (or GET)
     8 	Requests to the DMAPI (Domain Management API) are simply HTTP POST (or GET)
     9 	requests.
     9 	requests.
    10 	
    10 	
    11 	NOTE: Only SSL version 3 (or TLS v1) is supported, clients using
    11 	NOTE: Only TLS is supported!
    12 	      SSLv2 may (and most probably will) not work!
       
    13 
    12 
    14 	The request parameters are passed as standard www-form variables, URL
    13 	The request parameters are passed as standard www-form variables, URL
    15 	encoded, i.e. example for login request:
    14 	encoded, i.e. example for login request:
    16 
    15 
    17 		https://dmapi.joker.com/request/login?username=user@joker.com&password=pass
    16 		https://dmapi.joker.com/request/login?username=user@joker.com&password=pass
    86 	In request descriptions below, "Requires" section defines variables
    85 	In request descriptions below, "Requires" section defines variables
    87 	(sometimes referred as fields) that MUST be present, "Accepts"
    86 	(sometimes referred as fields) that MUST be present, "Accepts"
    88 	section defines variables that MAY be present (but not required),
    87 	section defines variables that MAY be present (but not required),
    89 	and "Returns" section describes request output - header fields and
    88 	and "Returns" section describes request output - header fields and
    90 	extra data (if any). If "Returns" is omitted, then standard reply
    89 	extra data (if any). If "Returns" is omitted, then standard reply
    91 	should be expected (Status-Code, Status-Text, Proc-ID etc).
    90 	should be expected (Status-Code, Status-Text, Proc-ID etc.).
    92 
    91 
    93 	All variable and request names are case-insensitive.
    92 	All variable and request names are case-insensitive.
    94 
    93 
    95 Differences to existing email-gateway
    94 Differences to existing email-gateway
    96 =====================================
    95 =====================================
   162 ===========
   161 ===========
   163 
   162 
   164 	Accepts:
   163 	Accepts:
   165 		pending			Shows results without reply (in progress)
   164 		pending			Shows results without reply (in progress)
   166 		showall			Shows results deleted using result-delete
   165 		showall			Shows results deleted using result-delete
   167 		period			Shows results for specifed period of days (default 90)
   166 		period			Shows results for specified period of days (default 90)
   168 		date			Shows results received on (or before) specified date.
   167 		date			Shows results received on (or before) specified date.
   169 					When date is specified, parameter "period" will be
   168 					When date is specified, parameter "period" will be
   170 					applied to this date (instead of today) and defaults
   169 					applied to this date (instead of today) and defaults
   171 					to 1.
   170 					to 1.
   172 		offset			Start dispalying results from specified position
   171 		offset			Start displaying results from specified position
   173 		limit			Sets limit for number of rows displayed
   172 		limit			Sets limit for number of rows displayed
   174 
   173 
   175 		status			Shows results having specified status (ack/nack/?)
   174 		status			Shows results having specified status (ack/nack/?)
   176 		count-only		When set to 1, only count number of records and return
   175 		count-only		When set to 1, only count number of records and return
   177 					single line in format "Records: N".
   176 					single line in format "Records: N".
   181 		rtype			Shows results for requests of specified type
   180 		rtype			Shows results for requests of specified type
   182 					(domain-register/etc)
   181 					(domain-register/etc)
   183 		objid			Shows results for specified object ids (domain names
   182 		objid			Shows results for specified object ids (domain names
   184 					and so on)
   183 					and so on)
   185 		procid			Shows results for specified proc-id
   184 		procid			Shows results for specified proc-id
   186 		svtrid			Shows results for specifued SvTrId
   185 		svtrid			Shows results for specified SvTrId
   187 		cltrid			Shows results for specified ClTrId
   186 		cltrid			Shows results for specified ClTrId
   188 
   187 
   189 	Returns:
   188 	Returns:
   190 		List of answers from joker.com (one per line):
   189 		List of answers from joker.com (one per line):
   191 
   190 
   232 	Returns:
   231 	Returns:
   233 	
   232 	
   234 		A descriptive message (confirmation) in case of success.
   233 		A descriptive message (confirmation) in case of success.
   235 		
   234 		
   236 	This request will delete the content (not the status) of reply to asynchronous
   235 	This request will delete the content (not the status) of reply to asynchronous
   237 	request. Deleted results will not be listed anymore when using result-list.
   236 	request. Deleted results will not be listed any more when using result-list.
   238 	Semantics of parameters is like in result-retrieve.
   237 	Semantics of parameters is like in result-retrieve.
   239 
   238 
   240 query-domain-list
   239 query-domain-list
   241 =================
   240 =================
   242 
   241 
   250 					may be 0 or 1.
   249 					may be 0 or 1.
   251 
   250 
   252 	Returns:
   251 	Returns:
   253 	
   252 	
   254 		List of registered domains and their expiration dates (one
   253 		List of registered domains and their expiration dates (one
   255 		per line, separated by whitespace). If "showstatus" is present,
   254 		per line, separated by white-space). If "showstatus" is present,
   256 		the the list will be with three columns, the last one showing
   255 		the the list will be with three columns, the last one showing
   257 		domain status (like "lock,autorenew" etc - comma separated).
   256 		domain status (like "lock,autorenew" etc - comma separated).
   258 		
   257 		
   259 query-contact-list
   258 query-contact-list
   260 ==================
   259 ==================
   284 	Accepts:
   283 	Accepts:
   285 		pattern			Pattern to match (against host name)
   284 		pattern			Pattern to match (against host name)
   286 		full			Include IPs if non-zero
   285 		full			Include IPs if non-zero
   287 
   286 
   288 	Returns:
   287 	Returns:
   289 		List of registered name servers, one perl line
   288 		List of registered name servers, one per line
   290 		If "full" is non-zero, then the list will include IP addresses,
   289 		If "full" is non-zero, then the list will include IP addresses,
   291 		IPv4 (2nd column) and IPv6 (3rd column), columns will be separated
   290 		IPv4 (2nd column) and IPv6 (3rd column), columns will be separated
   292 		by tab ("\t") character. If specific IP is not present (say, there
   291 		by tab ("\t") character. If specific IP is not present (say, there
   293 		is only IPv4 or IPv6), it will be listed as "-".
   292 		is only IPv4 or IPv6), it will be listed as "-".
   294 
   293 
   343 		
   342 		
   344 		
   343 		
   345 contact-create
   344 contact-create
   346 ==============
   345 ==============
   347 
   346 
   348 	Requires:
   347 	Parameters:
   349 		tld			Target TLD, where this contact is intended to be used.
   348 		tld			Target TLD, where this contact is intended to be used.
   350 		name			Full name (if empty, fname + lname will be used)
   349 		name			Full name (if empty, fname + lname will be used)
   351 		fname			First name
   350 		fname			First name
   352 		lname			Last name
   351 		lname			Last name
   353 		title			(opt)
   352 		title			(opt)
   358 		address-2		(opt)
   357 		address-2		(opt)
   359 		city
   358 		city
   360 		state			(opt)
   359 		state			(opt)
   361 		postal-code
   360 		postal-code
   362 		country			ISO country code (2 letters)
   361 		country			ISO country code (2 letters)
   363 		phone
   362 		phone			Phone number
   364 		fax			(opt)
   363 		fax			Fax number (opt)
   365 		lang			(only meaningful for .EU contacts)
   364 		lang			(only meaningful for .EU contacts)
   366 		app-purpose		(required for .US contacts)
   365 		app-purpose		(required for .US contacts)
   367 		nexus-category		(required for .US contacts)
   366 		nexus-category		(required for .US contacts)
   368 		nexus-category-country	(required for .US contacts)
   367 		nexus-category-country	(required for .US contacts)
   369 		account-type		(required for .UK contacts, if used as owner contact)
   368 		account-type		(required for .UK contacts, if used as owner contact)
   480 		ip			IPv4 address (must not be from IANA's reserved range)
   479 		ip			IPv4 address (must not be from IANA's reserved range)
   481 		ipv6			IPv6 address
   480 		ipv6			IPv6 address
   482 		
   481 		
   483 	Using this request you can modify the IP address of a registered
   482 	Using this request you can modify the IP address of a registered
   484 	nameserver.
   483 	nameserver.
   485 		
   484 	
       
   485 	"-" may be used to specify empty value for "ip" or "ipv6", but at least one
       
   486 	of IP addressses must be set to valid address, or the request will fail.
       
   487 	
       
   488 	
   486 ns-delete, host-delete
   489 ns-delete, host-delete
   487 ======================
   490 ======================
   488 
   491 
   489 	Requires:
   492 	Requires:
   490 		host			FQDN host name
   493 		host			FQDN host name
   506 		
   509 		
   507 	Accepts:
   510 	Accepts:
   508 		autorenew		If set to "1", domain will be autorenewed upon
   511 		autorenew		If set to "1", domain will be autorenewed upon
   509 					expiration.
   512 					expiration.
   510 		language		3 letter language code for IDN domains
   513 		language		3 letter language code for IDN domains
   511 		registrar-tag		Ragistrar tag, also known as "Membership token",
   514 		registrar-tag		Registrar tag, also known as "Membership token",
   512 					only meaningful for .XXX domains
   515 					only meaningful for .XXX domains
   513 	
   516 	
   514 		
   517 		
   515 	Using this request you can register the domain.
   518 	Using this request you can register the domain.
   516 	
   519 	
   552 
   555 
   553 	Accepts:
   556 	Accepts:
   554 		status			New domain status
   557 		status			New domain status
   555 		owner-c			New owner contact handle
   558 		owner-c			New owner contact handle
   556 		autorenew		Autorenew flag for the domain (0 or 1).
   559 		autorenew		Autorenew flag for the domain (0 or 1).
   557 					If not set explicity, defaults to 1.
   560 					If not set explicitly, defaults to 1.
   558 		ns-list			List of colon-separated nameservers.
   561 		ns-list			List of colon-separated name-servers.
   559 		owner-email		New owner email
   562 		owner-email		New owner email
   560 	
   563 	
   561 	Using this request you can initiate a transfer of the domain from
   564 	Using this request you can initiate a transfer of the domain from
   562 	another registrar to Joker.com (gaining or incoming transfer).
   565 	another registrar to Joker.com (gaining or incoming transfer).
   563 
   566 
   570 ===========================
   573 ===========================
   571 
   574 
   572 	Requires:
   575 	Requires:
   573 		domain			Domain name to get auth id for
   576 		domain			Domain name to get auth id for
   574 		
   577 		
   575 	Retrieves domain Auth-ID, which is required when transfering domains
   578 	Retrieves domain Auth-ID, which is required when transferring domains
   576 	to another registrar.
   579 	to another registrar.
   577 	
   580 	
   578 	This request is not real-time, i.e. you have to check detailed reply
   581 	This request is not real-time, i.e. you have to check detailed reply
   579 	(use "result-retrieve")	to get Auth-ID.
   582 	(use "result-retrieve")	to get Auth-ID.
   580 	
   583 	
   589 		
   592 		
   590 	Accepts:
   593 	Accepts:
   591 		billing-c		New billing contact handle
   594 		billing-c		New billing contact handle
   592 		admin-c			New administrative contact handle
   595 		admin-c			New administrative contact handle
   593 		tech-c			New technical contact handle
   596 		tech-c			New technical contact handle
   594 		ns-list			List of new nameservers (it will _replace_
   597 		ns-list			List of new name-servers (it will _replace_
   595 					existing nameservers!)
   598 					existing name-servers!)
   596 		registrar-tag		Ragistrar tag, also known as "Membership token",
   599 		registrar-tag		Registrar tag, also known as "Membership token",
   597 					which can be set/changed on .XXX domains
   600 					which can be set/changed on .XXX domains
   598 
   601 
   599 		dnssec			If specified, allows setting or removal of DNSSEC
   602 		dnssec			If specified, allows setting or removal of DNSSEC
   600 					keys for domain. If not specified, DNSSEC records
   603 					keys for domain. If not specified, DNSSEC records
   601 					will not be changed.
   604 					will not be changed.
   608 		ds-4			For de:
   611 		ds-4			For de:
   609 		ds-5				protocol:alg:flags:pubkey-base64
   612 		ds-5				protocol:alg:flags:pubkey-base64
   610 		ds-6
   613 		ds-6
   611 		
   614 		
   612 	Using this request you can modify contact handles for the domain,
   615 	Using this request you can modify contact handles for the domain,
   613 	list of nameservers or DNSSEC parameters (for DNSSEC enabled domains).
   616 	list of name-servers or DNSSEC parameters (for DNSSEC enabled domains).
   614 	
   617 	
   615 	If specific value is not present, it will not be touched. Modification
   618 	If specific value is not present, it will not be touched. Modification
   616 	of nameservers or DNSSEC parameters will replace currently defined set
   619 	of name-servers or DNSSEC parameters will replace currently defined set
   617 	of DNSSEC keys or nameservers.
   620 	of DNSSEC keys or name-servers.
   618 	
   621 	
   619 	NOTE: DNSSEC parameters (ds-N) must be specified in order (ds-1, ds-2 etc),
   622 	NOTE: DNSSEC parameters (ds-N) must be specified in order (ds-1, ds-2 etc),
   620 	and due to techinical limitations this is impossible to modify only specific
   623 	and due to technical limitations this is impossible to modify only specific
   621 	key - they must be set all at once. This means that any request to modify DNSSEC
   624 	key - they must be set all at once. This means that any request to modify DNSSEC
   622 	records will *replace* existing keys with only those which are provided!
   625 	records will *replace* existing keys with only those which are provided!
   623 	
   626 	
   624 	Example for adding one key (and enabling DNSSEC):
   627 	Example for adding one key (and enabling DNSSEC):
   625 	
   628 	
   627 	
   630 	
   628 	Example for removing DNSSEC information:
   631 	Example for removing DNSSEC information:
   629 	
   632 	
   630 	http://dmapi.joker.com/request/domain-modify?domain=example.com&dnssec=0
   633 	http://dmapi.joker.com/request/domain-modify?domain=example.com&dnssec=0
   631 	
   634 	
   632 	NOTE: You have to have your own nameservice somewhere else to support DNSSEC,
   635 	NOTE: You have to have your own name-service somewhere else to support DNSSEC,
   633 	if you use Joker.com nameservice, DNSSEC will not be provided!
   636 	if you use Joker.com name-service, DNSSEC will not be provided!
   634 
   637 
   635 domain-delete
   638 domain-delete
   636 =============
   639 =============
   637 
   640 
   638 	Requires:
   641 	Requires:
   639 		domain			Domain name to delete
   642 		domain			Domain name to delete
   640 		
   643 		
   641 	Accepts:
   644 	Accepts:
   642 		force			If present and contains 1, Y or Yes,
   645 		force			If present and contains 1, Y or Yes,
   643 					domain will be deleted even if older
   646 					domain will be deleted even if older
   644 					that 72 hours.
   647 					that 3 days.
   645 		type			type of delete request, one of:
   648 		type			type of delete request, one of:
   646 					endoflife, immediate, transit
   649 					endoflife, immediate, transit
   647 					
   650 					
   648 					
   651 	Using this request you can delete already registered domain.
   649 	Using this request you can delete the domain.
   652 	
   650 	
   653 	If you delete a domain within the first 3 days after the registration,
   651 	If you delete a domain within the first 72 hours after the
   654 	the registration fee may be refunded to your account.
   652 	registration, the registration-fee will be refunded to your account.
   655 	
   653 
   656 	To delete domain which is registered longer than 3 days, you must
   654 	IMPORTANT: .EU domain registration is irreversible, i.e. you will NOT
       
   655 	be refunded if you delete .EU domain even withing 72 hours after
       
   656 	creation.
       
   657 	
       
   658 	To delete domain which is registered longer than 72 hours, you must
       
   659 	specify "force=1", otherwise request will be rejected.
   657 	specify "force=1", otherwise request will be rejected.
       
   658 
       
   659 	IMPORTANT: Please note that this feature must not be used for "domain tasting"
       
   660 	or "front running", and if you delete more than 1 domain per 12 registered
       
   661 	per month, you will not be refunded!
       
   662 
       
   663 	Deletion of domains in zones .eu, .nl, .me, .at, .de will not be refunded
       
   664 	regardless of when it was deleted!
   660 	
   665 	
   661 domain-owner-change
   666 domain-owner-change
   662 ===================
   667 ===================
   663 
   668 
   664 	Requires:
   669 	Requires:
   789 		domain			Domain name
   794 		domain			Domain name
   790 		role			Role to revoke
   795 		role			Role to revoke
   791 		scope			Scope (from grants-list request)			
   796 		scope			Scope (from grants-list request)			
   792 		type			Type of the record to revoke - "grant" or "invitation"
   797 		type			Type of the record to revoke - "grant" or "invitation"
   793 		
   798 		
   794 	Returns status only (ok or not). Email is sent if request was succesfull. 
   799 	Returns status only (ok or not). Email is sent if request was successful. 
   795 
   800 
   796 dns-zone-list
   801 dns-zone-list
   797 =============
   802 =============
   798 
   803 
   799 	Accepts:
   804 	Accepts:
   819 		domain			Zone (domain) name to store data to.
   824 		domain			Zone (domain) name to store data to.
   820 		zone			URL encoded zone data
   825 		zone			URL encoded zone data
   821 
   826 
   822 	Replace current zone for provided domain with specified value.
   827 	Replace current zone for provided domain with specified value.
   823 
   828 
   824 	Field "zone" will be parsed as multiline text (so usual line
   829 	Field "zone" will be parsed as multi-line text (so usual line
   825 	terminators are expected).
   830 	terminators are expected).
   826 	
   831 	
   827 	WARNING: this request will OVERWRITE current zone, i.e. all current
   832 	WARNING: this request will OVERWRITE current zone, i.e. all current
   828 	records will be replaced by new records.
   833 	records will be replaced by new records.
   829 	
   834 	
   985 	if the answer is "no", then verification status is set to "invalid". If there is no answer before
   990 	if the answer is "no", then verification status is set to "invalid". If there is no answer before
   986 	verification deadline (normally 15 days), the status is also set to "invalid".
   991 	verification deadline (normally 15 days), the status is also set to "invalid".
   987 
   992 
   988 	Returns special response header "Result", which will contain "ACK" if the verification has been
   993 	Returns special response header "Result", which will contain "ACK" if the verification has been
   989 	accepted or "NACK" otherwise.
   994 	accepted or "NACK" otherwise.
       
   995 	
       
   996 wa-email-query-status
       
   997 =====================
       
   998 
       
   999 	Requires:
       
  1000 	
       
  1001 		email	Email address to query status of
       
  1002 		
       
  1003 	Returns single line with email status. Possible statuses:
       
  1004 	
       
  1005 	verified	email address is known and successfully verified (valid)
       
  1006 	unverified	email address is either not (yet) verified or is not known.
       
  1007 	pending		verification email has been sent but no response received yet
       
  1008 	invalid		email address is known to be invalid (bounced or no response)
       
  1009 
       
  1010 	Statuses "pending" and "invalid" are informational and are not guaranteed,
       
  1011 	i.e. it could happen that "unverified" is returned instead.
   990 
  1012 
   991 -----
  1013 -----