Introduction
Welcome to the unofficial IPv64 API documentation! You can use the API to access your account and domain records.
Authentication
To authorize, use this code:
# Option 1
# Token header
curl "api_endpoint_here" \
--header "Authorization: Bearer meowmeowmeow"
# Option 2
# Basic Auth
curl "api_endpoint_here" \
--user "not_relevant:meowmeowmeow"
# Option 3a
# Parameter Auth
curl "api_endpoint_here" \
--data-urlencode 'apikey=meowmeowmeow'
# Option 3b
# Parameter Auth
curl "api_endpoint_here" \
--data-urlencode 'token=meowmeowmeow'
Make sure to replace
meowmeowmeow
with your API key.
The API expects for the API key to be included in all API requests to the server in a header that looks like the following:
Authorization Bearer Token: meowmeowmeow
Endpoints
Get Account Informations
curl --silent "https://ipv64.net/api?get_account_info" \
--header "Authorization: Bearer meowmeowmeow"
The above command returns JSON structured like this:
{
"email": "api.hunter@example.com",
"reg_date": "2022-10-28 19:17:06",
"update_hash": "123456789012345678901234",
"api_key": "12345678901234567890123456789012",
"dyndns_updates": 17,
"api_updates": 3,
"account_class": {
"class_name": "Standard",
"dyndns_domain_limit": 3,
"dyndns_update_limit": 48,
"api_limit": 64
},
"info": "success",
"status": "200 OK",
"get_account_info": "get_account_info"
}
This endpoint retrieves your account information.
HTTP Request
GET https://ipv64.net/api?get_account_info
Get logs
curl --silent "https://ipv64.net/api?get_logs" \
--header "Authorization: Bearer meowmeowmeow"
The above command returns JSON structured like this:
{
"logs": [
{
"subdomain": "",
"time": "2022-11-27 16:52:29",
"header": "API: Get Account Info",
"content": "Alle Accountdaten über API abgefragt."
},
{
"subdomain": "",
"time": "2022-11-27 00:00:01",
"header": "Limit Reset",
"content": "24h Updatelimits wurde zurückgesetzt - DynDNS: 26 // API: 0."
},
{
"subdomain": "ev21.ipv64.net",
"time": "2022-11-26 22:51:23",
"header": "Update A/AAAA Record - GOOD",
"content": "Updates des A/AAAA Records auf die IP: 2001:9e8::42. (ev21.ipv64.net)"
}
],
"info": "success",
"status": "200 OK",
"get_account_info": "get_logs"
}
This endpoint retrieves your last 100 log entries.
HTTP Request
GET https://ipv64.net/api?get_logs
Get Domains
curl --silent "https://ipv64.net/api?get_domains" \
--header "Authorization: Bearer meowmeowmeow"
The above command returns JSON structured like this:
{
"subdomains": {
"ev21.ipv64.net": {
"updates": 203,
"wildcard": 1,
"records": [
{
"record_id": 3619,
"content": "2001:9e8::42",
"ttl": 60,
"type": "AAAA",
"praefix": "",
"last_update": "2022-11-26 22:51:23"
},
{
"record_id": 4125,
"content": "42.42.42.42",
"ttl": 60,
"type": "A",
"praefix": "",
"last_update": "2022-11-26 22:51:23"
}
]
},
"example.home64.de": {
"updates": 140,
"wildcard": 1,
"records": [
{
"record_id": 6954,
"content": "::affe:42",
"ttl": 60,
"type": "AAAA",
"praefix": "",
"last_update": "2022-11-27 16:32:30"
}
]
},
"example.ipv64.net": {
"updates": 0,
"wildcard": 1,
"records": [
{
"record_id": 6611,
"content": "42.42.42.42",
"ttl": 60,
"type": "A",
"praefix": "",
"last_update": "2022-11-16 15:05:16"
},
{
"record_id": 6612,
"content": "42:0:0:0:affe:42ff:fe42:42",
"ttl": 60,
"type": "AAAA",
"praefix": "",
"last_update": "2022-11-16 15:05:34"
}
]
}
},
"info": "success",
"status": "200 OK",
"add_domain": "get_domains"
}
This endpoint retrieves your domain entries.
HTTP Request
GET https://ipv64.net/api?get_domains
Create Domain
curl "https://ipv64.net/api" \
--header "Authorization: Bearer meowmeowmeow" \
--request POST \
--form 'add_domain=domainname.ipv6.net'
The above command returns JSON structured like this:
{
"info": "success",
"status": "201 Created",
"add_domain": "domainname.ipv64.net"
}
This endpoint retrieves your domain entries.
HTTP Request
POST https://ipv64.net/api
URL Parameters
Parameter | Value example |
---|---|
add_domain | domainname.ipv6.net |
Delete Domain
curl "https://ipv64.net/api" \
--header "Authorization: Bearer meowmeowmeow" \
--request DELETE \
--data-urlencode 'del_domain=domainname.ipv6.net'
The above command returns JSON structured like this:
{
"info": "success",
"status": "202 Accepted",
"del_domain": "del_domain"
}
This endpoint deletes your domain and all of its records.
HTTP Request
DELETE https://ipv64.net/api
URL Parameters
Parameter | Value example |
---|---|
del_domain | domainname.ipv6.net |
Create DNS record
curl --silent "https://ipv64.net/api" \
--header "Authorization: Bearer meowmeowmeow" \
--request POST \
--data-urlencode 'add_record=domainname.ipv64.net' \
--data-urlencode 'praefix=_acme-challenge' \
--data-urlencode 'type=TXT' \
--data-urlencode 'content=1234567890123456789012345678901234567890'
The above command returns JSON structured like this:
{
"info": "success",
"status": "201 Created",
"add_record": "domainname.ipv64.net"
}
This endpoint deletes a specific kitten.
HTTP Request
POST https://ipv64.net/api
URL Parameters
Parameters | value example | description |
---|---|---|
del_record | domainname.ipv6.net | domain or subdomain |
praefix | something | for e.g. something.domainname.ipv6.net |
type | AAAA | A, AAAA, TXT, CNAME, MX, NS, SRV |
content | ::affe:42 | content depends on the record type |
Content formats
type | content example | description |
---|---|---|
A | 10.10.10.42 | IPv4 |
AAAA | ::affe:42 | IPv6 |
CNAME | affe.ipv64.net | links to target records |
TXT | "hi there" | text |
MX | mailserver.ipv64.net | mail exchange targets |
SRV | 0 0 4242 minecraft-server.ipv64.net | Priority Weight Port Target-Host |
Delete DNS record
curl --silent 'https://ipv64.net/api' \
--header "Authorization: Bearer meowmeowmeow" \
--request DELETE \
--data-urlencode 'del_record=ev21.ipv64.net' \
--data-urlencode 'praefix=_acme-challenge' \
--data-urlencode 'type=TXT' \
--data-urlencode 'content=1234567890123456789012345678901234567890'
The above command returns JSON structured like this:
{
"info": "success",
"status": "202 Accepted",
"del_record": "del_record"
}
This endpoint deletes a specific DNS record.
HTTP Request
DELETE https://ipv64.net/api
URL Parameters
Parameters | Value example | Description |
---|---|---|
del_record | domainname.ipv6.net | domain, subdomain or record ID |
praefix | something | for e.g. something.domainname.ipv6.net |
type | AAAA | A, AAAA, TXT, CNAME, MX, NS, SRV |
content | ::affe:42 | content depends on the record type |
Errors
The IPv6 API uses the following error codes:
{
"status": "401 Unauthorized",
"info": "Unauthorized"
}
HTTP Header Code | Meaning |
---|---|
200 | OK |
201 | Created |
400 | Bad Request |
401 | Unauthorized |
403 | Forbidden |
429 | Too Many Requests |