NAV
shell

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