Rage4 DNS - Developers: API

Introduction

The Rage4 API allows easy integration with third party systems.

Authentication

The Rage4 API use BASIC authentication. To receive authorization, the client sends the email address and API key as password, separated by a single colon (":") character, within a base64 encoded string in the credentials.
Authorization: Basic Base64String(email address:api key)

HTTP methods

By default all methods are available via GET

Third party libraries

We provide official .NET library via NuGet package.

Unofficial libraries

PHP
https://github.com/asimzeeshan/php-rage4-dns
https://github.com/splitice/php-rage4-dns

Go
https://github.com/anuaimi/rage4

To list your library here please contact our support

API calls

Return current server time (UTC) and version

Result: Structure, ApiTime
https://rage4.com/rapi/index/

Lists all domains

Result: Array, Domain
https://rage4.com/rapi/getdomains/

Retrieve domain by ID

Result: Structure, Domain
https://rage4.com/rapi/getdomain/?id=[id]
id (Int32, required) - Domain's ID

Retrieve domain by name

Result: Structure, Domain
https://rage4.com/rapi/getdomainbyname/?name=[name]
name (String, required) - Domain's name

Create domain

Result: Structure, ApiResponse
https://rage4.com/rapi/createregulardomain/?name=[name]&email=[email]&apiaccess=[apiaccess]&ns1=[ns1]&ns2=[ns2]&soarefresh=[soarefresh]&soaexpiry=[soaexpiry]&soaretry=[soaretry]&soanx=[soanx]&nsttl=[nsttl]&axfr=[axfr]
name (String, required) - Domain's name
email (String, required) - Administrator's email address
apiaccess (Boolean, optional, default: true) - Allow API access type (String, optional, default NATIVE) - Domain type (NATIVE or MASTER), MASTER supports external secondary NS
ns1 (String, optional) - Primary NS name
ns2 (String, optional) - Secondary NS name
soarefresh (Int32, optional, default: 10800) - SOA refresh value (min 1200, max 86400)
soaexpiry (Int32, optional, default: 604800) - SOA expiry value (min 3600, max 2419200)
soaretry (Int32, optional, default: 3600) - SOA retry value (min 180, max 3600)
soanx (Int32, optional, default: 3600) - SOA nx value (min 0, max 10800)
nsttl (Int32, optional, default: 3600) - NS TTL
axfr (String, optional) - Not in use (obsolete)

[Obsolete] Create regular zone with vanity NS

Result: Structure, ApiResponse
https://rage4.com/rapi/createregulardomainext/?name=[name]&email=[email]&nsname=[nsname]&nsprefix=[nsprefix]
name (String, required) - Domain's name
email (String, required) - Administrator's email address
nsname (String, required) - NS prefix
nsprefix (String, required) - NS suffix

[Obsolete] Create reverse domain (IPv4) - use Create domain

Result: Structure, ApiResponse
https://rage4.com/rapi/createreversedomain4/?name=[name]&email=[email]&subnet=[subnet]
name (String, required) - Domain's name
email (String, required) - Administrator's email address
subnet (Int16, required) - Subnet size

[Obsolete] Create reverse domain (IPv6) - use Create domain

Result: Structure, ApiResponse
https://rage4.com/rapi/createreversedomain6/?name=[name]&email=[email]&subnet=[subnet]
name (String, required) - Domain's name
email (String, required) - Administrator's email address
subnet (Int16, required) - Subnet size

Delete domain

Result: Structure, ApiResponse
https://rage4.com/rapi/deletedomain/?id=[id]
id (Int32, required) - Domain's ID

Update domain

Result: Structure, ApiResponse
https://rage4.com/rapi/updatedomain/?id=[id]&email=[email]&apiaccess=[apiaccess]&nsname=[nsname]&nsprefix=[nsprefix]&enablevanity=[enablevanity]&ns1=[ns1]&ns2=[ns2]&soarefresh=[soarefresh]&soaexpiry=[soaexpiry]&soaretry=[soaretry]&soanx=[soanx]&nsttl=[nsttl]&axfr=[axfr]
id (Int32, required) - Domain's ID
email (String, required) - Administrator's email address
apiaccess (Boolean, optional, default: true) - Allow API access
nsname (String, optional) - NS prefix
nsprefix (String, optional) - NS suffix
enablevanity (Boolean, optional, default: false) - Enable vanity NS (obsolete)
ns1 (String, optional) - Primary NS name
ns2 (String, optional) - Secondary NS name
soarefresh (Int32, optional, default: 10800) - SOA refresh value (min 1200, max 86400)
soaexpiry (Int32, optional, default: 604800) - SOA expiry value (min 3600, max 2419200)
soaretry (Int32, optional, default: 3600) - SOA retry value (min 180, max 3600)
soanx (Int32, optional, default: 3600) - SOA nx value (min 0, max 10800)
nsttl (Int32, optional, default: 3600) - NS TTL
axfr (String, optional) - Not in use (obsolete)

Update domain

Result: Structure, Domain
https://rage4.com/rapi/updatedomain2/?id=[id]&email=[email]&apiaccess=[apiaccess]&ns1=[ns1]&ns2=[ns2]&soarefresh=[soarefresh]&soaexpiry=[soaexpiry]&soaretry=[soaretry]&soanx=[soanx]&nsttl=[nsttl]&axfr=[axfr]
id (Int32, required) - Domain's ID
email (String, required) - Administrator's email address
apiaccess (Boolean, optional, default: true) - Allow API access
type (String, optional, default NATIVE) - Domain type (NATIVE or MASTER), MASTER supports external secondary NS
ns1 (String, optional) - Primary NS name
ns2 (String, optional) - Secondary NS name
soarefresh (Int32, optional, default: 10800) - SOA refresh value (min 1200, max 86400)
soaexpiry (Int32, optional, default: 604800) - SOA expiry value (min 3600, max 2419200)
soaretry (Int32, optional, default: 3600) - SOA retry value (min 180, max 3600)
soanx (Int32, optional, default: 3600) - SOA nx value (min 0, max 10800)
nsttl (Int32, optional, default: 3600) - NS TTL
axfr (String, optional) - Not in use (obsolete)

Import domain using AXFR

Result: Structure, ApiResponse
https://rage4.com/rapi/importdomain/?name=[name]
name (String, required) - Domain's name

Import domain using AXFR and set vanity NS

Result: Structure, ApiResponse
https://rage4.com/rapi/importdomainext/?name=[name]&nsname=[nsname]&nsprefix=[nsprefix]
name (String, required) - Domain's name
nsname (String, required) - NS prefix
nsprefix (String, required) - NS suffix

Sync domain to specific Shadow Master server

Result: Structure, ApiResponse
https://rage4.com/rapi/syncdomain/?name=[name]&server=[server]&dnssec=[dnssec]
name (String, required) - Domain's name
server (String, required) - Shadow master's IPv4 address
dnssec (Boolean, optional, default: false) - Enable DNSSEC

Sync slave domain to specific Shadow Master server

Result: Structure, ApiResponse
https://rage4.com/rapi/syncslavedomain/?name=[name]&server=[server]&dnssec=[dnssec]
name (String, required) - Domain's name
server (String, required) - Shadow master's IPv4 address
dnssec (Boolean, optional, default: false) - Enable DNSSEC

Export BIND compatible zone file

Result: Structure, String
https://rage4.com/rapi/exportzonefile/?id=[id]
id (Int32, required) - Domain's ID

Get DNSSEC details

Result: Structure, SecureKey
https://rage4.com/rapi/getdnssecinfo/?id=[id]
id (Int32, required) - Domain's ID

Enable DNSSEC

Result: Structure, SecureKey
https://rage4.com/rapi/enablednssec/?id=[id]&algorithm=[algorithm]
id (Int32, required) - Domain's ID

Disable DNSSEC

Result: Structure, ApiResponse
https://rage4.com/rapi/disablednssec/?id=[id]
id (Int32, required) - Domain's ID

[Obsolete] Rectify a zone

Result: Structure, ApiResponse
https://rage4.com/rapi/rectifyzone/?id=[id]
id (Int32, required) - Domain's ID

Display TSIG keys list

Result: Array, SignKey
https://rage4.com/rapi/gettsiglist/?id=[id]
id (Int32, required) - Domain's ID

Display NOTIFY list

Result: Array, DomainMeta
https://rage4.com/rapi/getnotifylist/?id=[id]
id (Int32, required) - Domain's ID

Create NOTIFY list entry

Result: Structure, ApiResponse
https://rage4.com/rapi/createnotifylist/?id=[id]&ipaddress=[ipaddress]
id (Int32, required) - Domain's ID
ipaddress (String, required) - IP address

Delete NOTIFY list entry

Result: Structure, ApiResponse
https://rage4.com/rapi/deletenotifylist/?id=[id]&metaid=[metaid]
id (Int32, required) - Domain's ID
metaid (Int32, required) - List ID

Display AXFR white list

Result: Array, DomainMeta
https://rage4.com/rapi/getaxfrlist/?id=[id]
id (Int32, required) - Domain's ID

Create AXFR white list entry

Result: Structure, ApiResponse
https://rage4.com/rapi/createaxfrlist/?id=[id]&ipaddress=[ipaddress]
id (Int32, required) - Domain's ID
ipaddress (String, required) - IP address

Delete AXFR white list entry

Result: Structure, ApiResponse
https://rage4.com/rapi/deleteaxfrlist/?id=[id]&metaid=[metaid]
id (Int32, required) - Domain's ID
metaid (Int32, required) - List ID

List records

Result: Array, Record
https://rage4.com/rapi/getrecords/?id=[id]&name=[name]
id (Int32, required) - Domain's ID
name (String, optional) - Record's name

Get record by id

Result: Structure, Record
https://rage4.com/rapi/getrecord/?id=[id]
id (Int32, required) - Record's ID

Create record

Result: Structure, ApiResponse
https://rage4.com/rapi/createrecord/?id=[id]&name=[name]&content=[content]&type=[type]&priority=[priority]&active=[active]&failover=[failover]&failovercontent=[failovercontent]&failoverwithdraw=[failoverwithdraw]&ttl=[ttl]&geozone=[geozone]&geolock=[geolock]&geolat=[geolat]&geolong=[geolong]&udplimit=[udplimit]&description=[description]
id (Int32, required) - Domain's ID
name (String, required) - Record's name
content (String, required) - Record's value
type (String, required) - Record's type, see ListRecordTypes for supported record types
priority (Int32, required, default: 1) - Record's priority
active (Boolean, optional, default: true) - Record's state
failover (Boolean, optional, default: false) - Failover enabled
failovercontent (String, optional) - Failover content
failoverwithdraw (Boolean, optional, default: false) - Withdraw on failover
ttl (Int32, optional, default: 3600) - Record's TTL
geozone (Int64, optional, default: 0) - GeoDNS zone/mode, see ListGeoRegions for supported values
geolock (Boolean, optional, default: false) - GeoDNS lock (obsolete)
geolat (Double, optional, default: 0) - GeoDNS latitude
geolong (Double, optional, default: 0) - GeoDNS longitude
udplimit (Boolean, optional, default: false) - UDP limit
description (String, optional) - Record's description

Create record

Result: Structure, Record
https://rage4.com/rapi/createrecord2/?id=[id]&name=[name]&content=[content]&type=[type]&priority=[priority]&active=[active]&failover=[failover]&failovercontent=[failovercontent]&failoverwithdraw=[failoverwithdraw]&ttl=[ttl]&geozone=[geozone]&geolock=[geolock]&geolat=[geolat]&geolong=[geolong]&udplimit=[udplimit]&description=[description]
id (Int32, required) - Domain's ID
name (String, required) - Record's name
content (String, required) - Record's value
type (String, required) - Record's type, see ListRecordTypes for supported record types
priority (Int32, required, default: 1) - Record's priority
active (Boolean, optional, default: true) - Record's state
failover (Boolean, optional, default: false) - Failover enabled
failovercontent (String, optional) - Failover content
failoverwithdraw (Boolean, optional, default: false) - Withdraw on failover
ttl (Int32, optional, default: 3600) - Record's TTL
geozone (Int64, optional, default: 0) - GeoDNS zone/mode, see ListGeoRegions for supported values
geolock (Boolean, optional, default: false) - GeoDNS lock (obsolete)
geolat (Double, optional, default: 0) - GeoDNS latitude
geolong (Double, optional, default: 0) - GeoDNS longitude
udplimit (Boolean, optional, default: false) - UDP limit
description (String, optional) - Record's description

Update record

Result: Structure, ApiResponse
https://rage4.com/rapi/updaterecord/?id=[id]&name=[name]&content=[content]&priority=[priority]&active=[active]&failover=[failover]&failovercontent=[failovercontent]&failoverwithdraw=[failoverwithdraw]&ttl=[ttl]&geozone=[geozone]&geolock=[geolock]&geolat=[geolat]&geolong=[geolong]&udplimit=[udplimit]&description=[description]
id (Int32, required) - Records's ID
name (String, required) - Record's name
content (String, required) - Record's value
priority (Int32, required, default: 1) - Record's priority
active (Boolean, optional, default: true) - Record's state
failover (Boolean, optional, default: false) - Failover enabled
failovercontent (String, optional) - Failover content
failoverwithdraw (Boolean, optional, default: false) - Withdraw on failover
ttl (Int32, optional, default: 3600) - Record's TTL
geozone (Int64, optional, default: 0) - GeoDNS zone/mode, see ListGeoRegions for supported values
geolock (Boolean, optional, default: false) - GeoDNS lock (obsolete)
geolat (Double, optional, default: 0) - GeoDNS latitude
geolong (Double, optional, default: 0) - GeoDNS longitude
udplimit (Boolean, optional, default: false) - UDP limit
description (String, optional) - Record's description

Update record

Result: Structure, Record
https://rage4.com/rapi/updaterecord2/?id=[id]&name=[name]&content=[content]&priority=[priority]&active=[active]&failover=[failover]&failovercontent=[failovercontent]&failoverwithdraw=[failoverwithdraw]&ttl=[ttl]&geozone=[geozone]&geolock=[geolock]&geolat=[geolat]&geolong=[geolong]&udplimit=[udplimit]&description=[description]
id (Int32, required) - Records's ID
name (String, required) - Record's name
content (String, required) - Record's value
priority (Int32, required, default: 1) - Record's priority
active (Boolean, optional, default: true) - Record's state
failover (Boolean, optional, default: false) - Failover enabled
failovercontent (String, optional) - Failover content
failoverwithdraw (Boolean, optional, default: false) - Withdraw on failover
ttl (Int32, optional, default: 3600) - Record's TTL
geozone (Int64, optional, default: 0) - GeoDNS zone/mode, see ListGeoRegions for supported values
geolock (Boolean, optional, default: false) - GeoDNS lock (obsolete)
geolat (Double, optional, default: 0) - GeoDNS latitude
geolong (Double, optional, default: 0) - GeoDNS longitude
udplimit (Boolean, optional, default: false) - UDP limit
description (String, optional) - Record's description

Delete record

Result: Structure, ApiResponse
https://rage4.com/rapi/deleterecord/?id=[id]
id (Int32, required) - Record's ID

Delete record

Result: Structure, Record
https://rage4.com/rapi/deleterecord2/?id=[id]
id (Int32, required) - Record's ID

Enable or disable record failover (legacy)

Result: Structure, ApiResponse
https://rage4.com/rapi/setrecordfailover/?id=[id]&active=[active]
id (Int32, required) - Record's ID
active (Boolean, required) - Failover state

Enable or disable record failover

Result: Structure, ApiResponse
https://rage4.com/rapi/recordfailover/?id=[id]&active=[active]
id (Int32, required) - Record's ID
active (Boolean, required) - Failover state

Enable or disable record failover (legacy)

Result: Structure, Record
https://rage4.com/rapi/setrecordfailover2/?id=[id]&active=[active]
id (Int32, required) - Record's ID
active (Boolean, required) - Failover state

Enable or disable record failover

Result: Structure, Record
https://rage4.com/rapi/recordfailover2/?id=[id]&active=[active]
id (Int32, required) - Record's ID
active (Boolean, required) - Failover state

Enable or disable record

Result: Structure, ApiResponse
https://rage4.com/rapi/togglerecord/?id=[id]
id (Int32, required) - Record's ID

Enable or disable record

Result: Structure, Record
https://rage4.com/rapi/togglerecord2/?id=[id]
id (Int32, required) - Record's ID

Set record state

Result: Structure, ApiResponse
https://rage4.com/rapi/setrecordstate/?id=[id]
id (Int32, required) - Domain's ID
POST payload of array of SetRecordStateRequest

Return webhoook list

Result: Array, WebHook
https://rage4.com/rapi/getwebhooks/

Return webhook by id

Result: Structure, WebHook
https://rage4.com/rapi/getwebhook/?id=[id]
id (Int32, required) - Webhook's ID

Create new webhook

Result: Structure, ApiResponse
https://rage4.com/rapi/createwebhook/?name=[name]
name (String, required) - Webhook's friendly name

Delete webhook by id

Result: Structure, ApiResponse
https://rage4.com/rapi/deletewebhook/?id=[id]
id (Int32, required) - Webhook's ID

Attach webhook to record

Result: Structure, ApiResponse
https://rage4.com/rapi/attachwebhook/?id=[id]&webhook=[webhook]
id (Int32, required) - Record's ID
webhook (Int32, required) - Webhook's ID

Detach webhook from record

Result: Structure, ApiResponse
https://rage4.com/rapi/detachwebhook/?id=[id]
id (Int32, required) - Record's ID

List supported record types

Result: Array, ApiDictionary
https://rage4.com/rapi/listrecordtypes/

List supported geo regions

Result: Array, ApiDictionary
https://rage4.com/rapi/listgeoregions/

Structures

ApiTime - returns server's datetime (UTC) and API version

{
"utctime" // DateTime,
"version" // String
}

Domain - presents zone related data

{
"id" // Int32,
"name" // String,
"owner_email" // String,
"type" // String,
"subnet_mask" // Int16,
"soa_refresh" // Int32,
"soa_retry" // Int32,
"soa_expiry" // Int32,
"soa_nx" // Int32,
"ns_ttl" // Int32,
"default_ns1" // String,
"default_ns2" // String
}

ApiResponse - standard API response object

{
"status" // Boolean,
"id" // Int32,
"error" // String
}

SecureKey - contains information related to DNSSEC keys

{
"keytag" // Int32,
"key" // String,
"algorithm" // String,
"rsasha1" // String,
"rsasha256" // String,
"rsasha384" // String,
"dnskey" // String
}

SignKey

{
"name" // String,
"algorithm" // String,
"secret" // String
}

DomainMeta

{
"id" // Int32,
"content" // String
}

Record - present record related data

{
"id" // Int32,
"name" // String,
"content" // String,
"type" // String,
"ttl" // Int32,
"priority" // Int32,
"domain_id" // Int32,
"geo_region_id" // Int64,
"geo_lat" // Double,
"geo_long" // Double,
"failover_enabled" // Boolean,
"failover_active" // Boolean,
"failover_content" // String,
"failover_withdraw" // Boolean,
"webhook_id" // Int32,
"is_active" // Boolean,
"udp_limit" // Boolean,
"description" // String
}

WebHook - present webhook related data

{
"id" // Int32,
"name" // String,
"key" // String
}

ApiDictionary - generic string/long dictionary

{
"name" // String,
"value" // Object
}

SetRecordStateRequest - set record state payload

{
"id", // Record's ID
"priority" // Int32, nullable,
"active" // Boolean, nullable
}



Copyright © 2019 by Rage4 Networks Limited. All rights reserved.

Feedback and Knowledge Base