Domain Records
Manage domain name records via API.
Create Domain Record
Type: POST
- https://cloud.syminet.com/api/v1/domains/{DOMAIN_ID}/records/create
Create new DNS record for domain
DOMAIN_ID
Required URL Parameters:
- DOMAIN_ID
Domain ID for domain.
Required JSON Properties:
- type
DNS record
typeis always required.
Record types have different JSON properties. They are described in the below examples for each currently supported type.
Note
TTL (“Time To Live”) values are an integer in seconds. If not provided, the default is 7200
(2 hours). Minimum is 30. For the sake of brevity, we only show a ttl property in the JSON
example for A records below, of 1200 (20 minutes). However, a TTL can be provided for
all record types.
A Record
A record properties:
- name
FQDN (“Fully Qualified Domain Name”), e.g.
example.com- target
IP Address the name points to.
We provide two examples here. First, the A record for the root domain example.com itself:
curl --request POST \
--url https://cloud.syminet.com/api/v1/domains/DOMAIN_ID/records/create \
--header "content-type: application/json" \
--header "authorization:bearer $API_TOKEN" \
--data '
{
"type": "A",
"name": "example.com",
"target": "192.168.2.3",
"ttl": 1200
}
'
Now that the root A record is created, we create a www subdomain for it pointing to the
same target IP address:
curl --request POST \
--url https://cloud.syminet.com/api/v1/domains/DOMAIN_ID/records/create \
--header "content-type: application/json" \
--header "authorization:bearer $API_TOKEN" \
--data '
{
"type": "A",
"name": "www.example.com",
"target": "192.168.2.3",
"ttl": 1200
}
'
Hint
Multiple A records with the same name are supported, so long as they have a unique target
(IP Address). If multiple A records exist, the nameservers will respond in “round robin”
fashion, creating a very basic form of load balancing.
Response: 202 OK
CAA Record
CAA record properties:
- name
FQDN (“Fully Qualified Domain Name”), e.g.
example.com- tag
“issue”, “issuewild” or “iodef”
- target
CA (“Certificate Authority”) allowed to issue certificates, e.g.
letsencrypt.org
Hint
Multiple CAA records are supported, in case you want to allow different CA’s to be able to provide different certificate types.
CAA record for example.com allowing certificates to be issued from letsencrypt.org:
curl --request POST \
--url https://cloud.syminet.com/api/v1/domains/DOMAIN_ID/records/create \
--header "content-type: application/json" \
--header "authorization:bearer $API_TOKEN" \
--data '
{
"type": "CAA",
"name": "example.com",
"tag": "issuewild",
"target": "letsencrypt.org"
}
'
Response: 202 OK
CNAME Record
CNAME record properties:
- name
FQDN (“Fully Qualified Domain Name”), e.g.
www.example.com- target
FQDN that points to
name, e.g.www2.example.com
CNAME record to forward www2.example.com to www.example.com:
curl --request POST \
--url https://cloud.syminet.com/api/v1/domains/DOMAIN_ID/records/create \
--header "content-type: application/json" \
--header "authorization:bearer $API_TOKEN" \
--data '
{
"type": "CNAME",
"name": "www2.example.com",
"target": "www.example.com"
}
'
Response: 202 OK
MX Record
MX record properties:
- name
FQDN for mail (part after the @ in email, e.g.
example.com)- priority
Integer priority value. If omitted, defaults to 10.
- target
FQDN that hosts email for
name, e.g.mail.example.com
Note
Make sure your target has an A record as well, so it can resolve to an
IP address.
MX record to spcify mail.example.com as the mailserver for example.com:
curl --request POST \
--url https://cloud.syminet.com/api/v1/domains/DOMAIN_ID/records/create \
--header "content-type: application/json" \
--header "authorization:bearer $API_TOKEN" \
--data '
{
"type": "MX",
"priority": 10,
"name": "example.com",
"target": "mail.example.com"
}
'
Response: 202 OK
NS Record
NS record properties:
- name
FQDN subdomain to delegate DNS to, e.g.
subdomain.example.com- target
FQDN of DNS server for
name, e.g.ns1.example.com
NS record to delegate nameservice for subdomain.example.com to ns1.example.com:
curl --request POST \
--url https://cloud.syminet.com/api/v1/domains/DOMAIN_ID/records/create \
--header "content-type: application/json" \
--header "authorization:bearer $API_TOKEN" \
--data '
{
"type": "NS",
"name": "subdomain.example.com",
"target": "ns1.example.com"
}
'
Response: 202 OK
SRV Record
SRV record properties:
- name
Service name, e.g.
www- protocol
Protocol, e.g. “tcp”, “udp”
- priority
Integer value between 0 and 65535
- weight
Integer value between 0 and 65535
- port
Integer value between 0 and 65535
- target
FQDN, e.g.
example.comor @ for root.
curl --request POST \
--url https://cloud.syminet.com/api/v1/domains/DOMAIN_ID/records/create \
--header "content-type: application/json" \
--header "authorization:bearer $API_TOKEN" \
--data '
{
"type": "SRV",
"name": "www",
"protocol": "tcp",
"priority": "10",
"weight": "5",
"port": "80",
"target": "example.com"
}
'
Response: 202 OK
SSHFP Record
SSHFP record properties:
- name
FQDN (“Fully Qualified Domain Name”), e.g.
example.com- sshfp_algorithm
Integer value between 0 and 255
- sshfp_type
Integer value between 0 and 255
- target
SSH Fingerprint
curl --request POST \
--url https://cloud.syminet.com/api/v1/domains/DOMAIN_ID/records/create \
--header "content-type: application/json" \
--header "authorization:bearer $API_TOKEN" \
--data '
{
"type": "SSHFP",
"name": "example.com",
"sshfp_algorithm": "1",
"sshfp_type": "1",
"target": "72d30d211ce8c464de2811e534de23b9be9b4dc4"
}
'
Response: 202 OK
TXT Record
TXT record properties:
- name
FQDN (“Fully Qualified Domain Name”), e.g.
example.com- target
Response text, free form string. Max length 254 characters.
Hint
TXT records are often used to create SPF and DKIM records. They are also commonly used by third party services to verify domain ownership.
curl --request POST \
--url https://cloud.syminet.com/api/v1/domains/DOMAIN_ID/records/create \
--header "content-type: application/json" \
--header "authorization:bearer $API_TOKEN" \
--data '
{
"type": "TXT",
"name": "example.com",
"target": "This is the TXT record for example.com"
}
'
Response: 202 OK
List Domain Records
Type: GET
- https://cloud.syminet.com/api/v1/domains/{DOMAIN_ID)
Return details of domain
DOMAIN_ID, including all records.
Required URL Parameters:
- DOMAIN_ID
Domain ID of domain to fetch.
curl --request GET \
--url https://cloud.syminet.com/api/v1/domains/DOMAIN_ID \
--header "authorization:bearer $API_TOKEN"
{
"data" : [
{
"comments" : [],
"name" : "example.com.",
"records" : [
{
"content" : "192.168.2.3",
"disabled" : false
}
],
"ttl" : 3600,
"type" : "A"
},
{
"comments" : [],
"name" : "www.example.com.",
"records" : [
{
"content" : "192.168.2.3",
"disabled" : false
}
],
"ttl" : 3600,
"type" : "A"
}
]
}
Delete Domain Record
Type: DELETE
- https://cloud.syminet.com/api/v1/domains/{DOMAIN_ID}/records/delete
Delete a domain record from domain
DOMAIN_ID.
Required URL Parameters:
- DOMAIN_ID
Domain ID for domain to delete record from.
Required JSON Properties:
- type
Record
typee,g,A,MX,CNAMEetc.- name
Name property, e.g. “www.example.com”
- target
Target property of the record, e.g. IP Address for
Arecords.
Important
target needs to exactly match the content property for the record, as shown in the
List Domain Records API call. For example, when deleting an MX record you might
supply a target of "10 mail.example.com"
Note
TXT and CAA records contain quotes wich must be escaped in target. For example
TXT record content is enclosed in quotes, so you can use something like the following:
"target": "\"This is the text record\""
CAA records also use quotes, but only for the CA field. So for those you might use:
"target": "0 issuewild \"letsencrypt.org\""
When in doubt, you can always get the correct content value (including escaped quotes)
by using a List Domain Records API call.
curl --request DELETE \
--url https://cloud.syminet.com/api/v1/domains/DOMAIN_ID/records/delete \
--header "content-type: application/json" \
--header "authorization:bearer $API_TOKEN" \
--data '
{
"type": "A",
"name": "example.com",
"target": "192.168.2.3"
}
'
Response: 202 OK