Download OpenAPI specification:Download
Domeneshop offers a simple, REST-based API, which currently supports the following features:
The Domeneshop API currently supports only one method of authentication, HTTP Basic Auth. More authentication methods may be added in the future.
To generate credentials, visit this page after logging in to the control panel on our website:
Domeneshop maintains multiple API libraries to simplify using the API.
The libraries may be found in our Github repository.
Domeneshop also maintains a plugin for EFF's Certbot, which automates issuance and renewal of SSL-certificates on your own servers for domains that use Domeneshop's DNS service. This plugin is found in our Github repository here.
domain | string Example: domain=.no Only return domains whose |
[- {
- "id": 1,
- "domain": "example.com",
- "expiry_date": "2019-08-24",
- "registered_date": "2019-08-24",
- "renew": true,
- "registrant": "Ola Nordmann",
- "status": "active",
- "nameservers": [
- "ns1.hyp.net",
- "ns2.hyp.net",
- "ns3.hyp.net"
], - "services": {
- "registrar": true,
- "dns": true,
- "email": true,
- "webhotel": "none"
}
}
]
domainId required | integer ID of the domain |
{- "id": 1,
- "domain": "example.com",
- "expiry_date": "2019-08-24",
- "registered_date": "2019-08-24",
- "renew": true,
- "registrant": "Ola Nordmann",
- "status": "active",
- "nameservers": [
- "ns1.hyp.net",
- "ns2.hyp.net",
- "ns3.hyp.net"
], - "services": {
- "registrar": true,
- "dns": true,
- "email": true,
- "webhotel": "none"
}
}
These endpoints allow you to list, create and delete DNS records for any domain that has active DNS service.
domainId required | integer ID of the domain |
host | string Example: host=www Only return records whose |
type | string Example: type=A Only return records whose |
[- {
- "id": 1,
- "host": "@",
- "ttl": 3600,
- "type": "A",
- "data": "192.168.0.1"
}
]
domainId required | integer ID of the domain |
host required | string The host/subdomain the DNS record applies to |
ttl | integer <int16> [ 60 .. 604800 ] Default: 3600 TTL of DNS record in seconds. Must be a multiple of 60. |
type required | string Value: "A" |
data required | string <ipv4> IPv4 address |
{- "host": "@",
- "ttl": 3600,
- "type": "A",
- "data": "192.168.0.1"
}
{- "id": 1
}
domainId required | integer ID of the domain |
recordId required | integer ID of DNS record |
host required | string The host/subdomain the DNS record applies to |
ttl | integer <int16> [ 60 .. 604800 ] Default: 3600 TTL of DNS record in seconds. Must be a multiple of 60. |
type required | string Value: "A" |
data required | string <ipv4> IPv4 address |
{- "host": "@",
- "ttl": 3600,
- "type": "A",
- "data": "192.168.0.1"
}
This group exposes endpoints that can be used by certain Dynamic DNS implementations found in consumer routers appliances.
Update DNS using the "IP update protocol".
A DNS record for the given hostname will be created if it does not exist, or updated if it does. The record
type (A
or AAAA
will automatically be detected).
If the DDNS implementation does not allow you to specify authentication, it can usually be specified inline in the URL:
https://{token}:{secret}@api.domeneshop.no/v0/dyndns/update?hostname=example.com&myip=127.0.0.1
hostname required | string <hostname> Examples:
The fully qualified domain (FQDN) to be updated, without trailing dot. Multiple hostnames may be provided, delimited by commas |
myip | string <ipv4|ipv6> Examples:
The new IPv4 or IPv6 address to set. If not provided, the IP of the client making the API request will be used. Multiple IPv4 and IPv6 addresses (up to 9) can be provided, delimited by commas. |
These endpoints allow you to list, create and delete HTTP forwards ("WWW forwarding") for any domain that has active DNS service.
While frame forwards (an <iframe>
embed) are supported through setting the frame
field, we strongly
discourage the use of these. Use DNS records instead.
Update a forwarding for the specified domain, to a given URL.
The host
field must not be changed. In that case, delete the
existing forwarding and recreate it for the new host/subdomain.
domainId required | integer ID of the domain |
host required | string Example: www Subdomain of the forward, |
host | string The subdomain this forward applies to, without the domain part. For instance, |
frame | boolean Whether to enable frame forwarding using an iframe embed. NOT recommended for a variety of reasons. |
url | string The URL to forward to. Must include scheme, e.g. |
{- "host": "@",
- "frame": false,
}
{- "host": "@",
- "frame": false,
}
List invoices for your account. Only invoices from the past 3 years are returned.
status | string Enum: "unpaid" "paid" "settled" Example: status=paid Only return invoices with this status |
[- {
- "id": 1,
- "type": "invoice",
- "amount": 120,
- "currency": "NOK",
- "due_date": "2019-08-24",
- "issued_date": "2019-08-24",
- "paid_date": "2019-08-24",
- "status": "paid",
}
]
invoiceId required | integer An invoice number |
{- "id": 1,
- "type": "invoice",
- "amount": 120,
- "currency": "NOK",
- "due_date": "2019-08-24",
- "issued_date": "2019-08-24",
- "paid_date": "2019-08-24",
- "status": "paid",
}
id required | integer ID of DNS record |
host required | string The host/subdomain the DNS record applies to |
ttl | integer <int16> [ 60 .. 604800 ] Default: 3600 TTL of DNS record in seconds. Must be a multiple of 60. |
type required | string Value: "A" |
data required | string <ipv4> IPv4 address |
{- "id": 1,
- "host": "@",
- "ttl": 3600,
- "type": "A",
- "data": "192.168.0.1"
}
id required | integer ID of DNS record |
host required | string The host/subdomain the DNS record applies to |
ttl | integer <int16> [ 60 .. 604800 ] Default: 3600 TTL of DNS record in seconds. Must be a multiple of 60. |
type required | string Value: "AAAA" |
data required | string <ipv6> IPv6 address |
{- "id": 1,
- "host": "@",
- "ttl": 3600,
- "type": "AAAA",
- "data": "2001:0db8:85a3:0000:0000:8a2e:0370:7334"
}
id required | integer ID of DNS record |
host required | string The host/subdomain the DNS record applies to |
ttl | integer <int16> [ 60 .. 604800 ] Default: 3600 TTL of DNS record in seconds. Must be a multiple of 60. |
type required | string Value: "CNAME" |
data required | string The target hostname |
{- "id": 1,
- "host": "@",
- "ttl": 3600,
- "type": "CNAME",
- "data": "www.example.com"
}
id required | integer ID of DNS record |
host required | string The host/subdomain the DNS record applies to |
ttl | integer <int16> [ 60 .. 604800 ] Default: 3600 TTL of DNS record in seconds. Must be a multiple of 60. |
type required | string Value: "MX" |
data required | string <hostname> The target MX host. |
priority required | integer <int16> MX record priority, also known as preference. Lower values are usually preferred first, but this is not guaranteed |
{- "id": 1,
- "host": "@",
- "ttl": 3600,
- "type": "MX",
- "data": "mx.example.com",
- "priority": 1
}
id required | integer ID of DNS record |
host required | string The host/subdomain the DNS record applies to |
ttl | integer <int16> [ 60 .. 604800 ] Default: 3600 TTL of DNS record in seconds. Must be a multiple of 60. |
type required | string Value: "SRV" |
data required | string <hostname> The target hostname |
priority required | integer <int16> SRV record priority, also known as preference. Lower values are usually preferred first |
weight required | integer <int16> SRV record weight. Relevant if multiple records have same preference |
port required | integer <int16> SRV record port. The port where the service is found. |
{- "id": 1,
- "host": "@",
- "ttl": 3600,
- "type": "SRV",
- "data": "www.example.com",
- "priority": 10,
- "weight": 100,
- "port": 443
}
id required | integer ID of DNS record |
host required | string The host/subdomain the DNS record applies to |
ttl | integer <int16> [ 60 .. 604800 ] Default: 3600 TTL of DNS record in seconds. Must be a multiple of 60. |
type required | string Value: "TXT" |
data required | string Freeform text field. |
{- "id": 1,
- "host": "@",
- "ttl": 3600,
- "type": "TXT",
- "data": "v=spf1 include:_spf.domeneshop.no ~all"
}