The BULK operation is used to view or modify many domain names matching a given filter. It is a flexible method for maintaining large numbers of existing domain names in a single request.
The bulk operation is capable of a several different functions. This page gives details of common features, however details for specific types of operations are available from the following pages:
Bulk operations can only affect domain names on the requesting tag.
Only one bulk request per e-mail is permitted. A well-formed bulk request consists of the following lines, in any order:
Malformed requests will cause a V109 Invalid bulk operation error; where possible this will include a more detailed error message and give the line number of the error in the original request, e.g.
V109 Invalid bulk operation, error at line 3: mismatched bracket.
Bulk operations can also be executed as a Dry Run, which will return details of the outcome of the operation but will commit no changes to the register.
Filter clauses choose which domain names are affected by the operation, by providing criteria which domains must match. If no filter clause is given, the bulk operation will affect all domain names on the requesting tag.
filter: key = 'example.co.uk'
will restrict the bulk operation to affect only the domain name 'example.co.uk'.
filter: expiry > '20080101'
will restrict the bulk operation to affect all domain names on the requesting tag with an expiry date later than 01 Jan 2008.
filter: key like 'exam%e.co.uk'
will restrict the bulk operation to affect all domain names on the requesting tag with names matching the search string 'exam%e.co.uk'; 'example.co.uk' will match, as will 'exame.co.uk', but 'exampl.co.uk' will not.
filter: account-name = 'Mr Example' OR account-name = 'Mrs Example'
will restrict the bulk operation to affect only domain names on the requesting tag with either account name 'Mr Example' or account name 'Mrs Example', whereas
filter: account-name = 'Ms Example' AND notes = 'Example notes'
will restrict the bulk operation to affect only domain names on the requesting tag with account name 'Ms Example' and notes field matching 'Example notes'.
filter: not key = 'example.co.uk'
will restrict the bulk operation to affect all domain names on the requesting tag except for 'example.co.uk'.
filter: key like 'exam%e.co.uk' and not (account-name = 'Mr Example' OR account-name = 'Mrs Example')
will restrict the bulk operation to affect all domain names on the requesting tag with names matching the search string 'exam%e.co.uk' which have neither account name 'Mr Example' nor account name 'Mrs Example'.
filter: nservers = ['ns0.example.co.uk', 'ns1.example.co.uk']
will restrict the bulk operation to affect all domain names on the requesting tag with 'ns0.example.co.uk' and 'ns1.example.co.uk' and no other nameservers.
filter: nservers = 'NULL'
will restrict the bulk operation to affect all domain names on the requesting tag with no nameservers.
filter: 'ns0.example.co.uk' in nservers
will restrict the bulk operation to affect all domain names on the requesting tag with nameserver 'ns0.example.co.uk' or any other (or no other) nameservers.
This is a table of the fields which can be used in filter clauses.
| Filter Field | Comparison operators | Other notes |
|---|---|---|
| key | =, LIKE | |
| created | =, >, <, >=, <= | 'rvalue' must be a valid YYYYMMDD date. |
| expiry | =, >, <, >=, <= | 'rvalue' must be a valid YYYYMMDD date. |
| account-name | =, LIKE | |
| trad-name | =, LIKE | |
| opt-out | = | |
| type | =, LIKE | |
| co-no | =, LIKE | |
| =, LIKE | Attempts to match any e-mail address on the account. | |
| account-id | = | |
| notes | =, LIKE | |
| first-bill | = | |
| recur-bill | = | |
| auto-bill | = | |
| next-bill | = | |
| nservers | = | Takes nameserver list as 'rvalue'; e.g. ['ns1.co.uk', 'ns2.co.uk']. |
| nservers | in | Takes nameserver as 'lvalue'; e.g. 'ns1.co.uk' in nservers. |
Update clauses specify the changeset to be applied to the domain names matching the filter clause. A bulk request must contain either an update or a select clause.
update: notes = 'Example notes'
will modify all domain names matching the filter clause to have a notes field of 'Examples notes'.
update: first-bill = 'th', recur-bill = 'th'
will modify all domain names matching the filter clause to have first-bill and next-bill fields with value 'th'.
This is a table of the fields which can be used in update clauses.
| Update Field | Other Notes |
|---|---|
| account-id | |
| notes | |
| first-bill | |
| recur-bill | |
| auto-bill | |
| next-bill | |
| registrar-tag | |
| nservers | Takes nameserver list as 'rvalue'; e.g. ['ns1.co.uk', 'ns2.co.uk']. |
| nserver | Takes two nameservers as 'lvalue' and 'rvalue'; e.g. 'ns1.co.uk' = 'ns2.co.uk'. Must be the only update clause. |
Select clauses specify which fields are to be returned for the domain names matching the filter clause. A bulk request must contain either an update or a select clause.
select: key, expiry, nservers
This is a list of the fields which can be used in select clauses.
| Select Field |
|---|
| account-id |
| notes |
| first-bill |
| recur-bill |
| auto-bill |
| next-bill |
| registrar-tag |
| nservers |
| key |
| created |
| expiry |
| changed |
| account-name |
| trad-name |
| opt-out |
| type |
| co-no |
| a1-id |
| a1-name |
| a1-phone |
| a1-mobile |
| a1-email |
| a2-id |
| a2-name |
| a2-phone |
| a2-mobile |
| a2-email |
| a3-id |
| a3-name |
| a3-phone |
| a3-mobile |
| a3-email |
| addr |
| locality |
| city |
| county |
| postcode |
| country |