RIPE Database docs
Sidebar Navigation

Introduction to the RIPE Database

RIPE Database Documentation Overview

Intended Audience

Conventions Used in the RIPE Database Documentation

What is the RIPE Database

Purpose and Content of the RIPE Database

History of the RIPE Database

Personal Data Database Management and Reponsabilities

RIPE Database Structure

Database Object

Primary and Secondary Objects

List of Primary Objects

List of Secondary Objects

The Attributes in Database Objects

Attribute Names

Attributes in an Object

Attribute Values

Attribute Properties

How to Organise Your Data

REST API Data model

RPSL Object Types

Descriptions of Primary Objects

Descriptions of Secondary Objects

Available Databases

RIPE Database

TEST Database

Release Candidate Database

Experimental Databases

Update Methods

RESTful API

Webupdates

Syncupdates

Email Updates

Updating Objects in the RIPE Database

Format of the Update Message

Accessing the Object Templates

Object Processing

Update Operations

Historical Data

Special Considerations for Object Creation

Garbage Collection

Dry run

Set Objects

Notifications

Acknowledgment Message

Notification Messages

Authorisation

Authorisation Model

Using the Authorisation Methods

Security of Data Using Authorisation

Protection of PERSON and ROLE Objects

Protection of AUT NUM Object Space

Protection of Address Space

Protection of Route Object Space

Protection of Reverse Delegation Objects

Protection of Objects with Hierarchical Names

Protecting Membership of a Set

Referencing an ORGANIZATION Object

Referencing an IRT Object

IRT Object

Force Delete Functionality

Request ENUM delegation

Request DNSSEC delegation

How to Query the RIPE Database

The Structure of a Query

Web Query Form

RESTful API Queries

Command Line Queries

Query Responses

Registration Data Access Protocol

Access to Personal Data

Types of Queries

Queries Using Primary and Lookup Keys

Queries for IP Networks

Queries for Autonomous Systems

More and Less Specific Lookups For Reverse Domains

Inverse Queries

Abuse Contacts

Grouping the RIPE Database Output

Filtering the Query Reponse

IRR Toolset Support

Persistent Connections and Keeping State

Getting All the Members of Set objects

Access Control for Queries

RIPE NCC Global Resource Service

Other Query Flags

Referenced Objects in Query Response

Historical Queries

Related Software and Tools

Geolocation in the RIPE Database

RIPE Database Mirror

Setup RIPE Database Mirror

Near Real Time Mirroring v3

Near Real Time Mirroring v4

Access to NRTM

Tables of Query Types Supported by the RIPE Database

How to Recover Access to a Maintainer Object

Installation and Development

Getting started on macOS

Getting started on Ubuntu Linux

Building whois

Configure MariaDB

Coding standard

Installation instructions

Database Support

Support Overview

Clean up of Unreferenced Data

Database Security

Configuring Reverse DNS

Database Business Rules

Highlighted Values in the RIPE Database

Create First Role Mntner

Removal of personal data

Release Notes

FAQ

Appendices

Appendix A Syntax of Object Attributes

Appendix B Copyright Statement

Appendix C RIPE Database Query Server Response Codes and Messages

Appendix-D--Route-Object-Creation-Flowchart

Appendix-E--Domain-Object-Creation-Flowchart

Appendix F Special Considerations for Object Types

Appendix G Object Types with Personal Data

Appendix H PGP Authentication Method

Appendix I Client Certificate Authentication

Appendix J Ripe Test Database

Appendix K API Keys

Glossary

Legal Information

RIPE Database Acceptable Use Policy

HTML Terms And Conditions

All Documentation Combined

On this page

REST API Data model ​

WhoisResources ​

Description ​

The RIPE Database REST API uses a uniform format for transferring structured data. The root object type is called whoisResources.

XML ​

Example structure

<?xml version="1.0" encoding="UTF-8"?>
<whois-resources>
    <link xlink:type="..." xlink:href="..."/>
    <parameters>...</parameters>
    <objects>
        <object>...</object>
        <object>...</object>
        <!--...more "object" elements...-->
    </objects>
    <sources>
        <source name="..." id="...">...</source>
        <source name="..." id="...">...</source>
        <!--...more "source" elements...-->
    </sources>
    <errormessages>
        <errormessage severity="..." text="…">...</errormessage>
        <!--...more "errormessage" elements...-->
    </errormessages>
    <grs-sources>
        <source name="..." id="..." grs-id="..."/>
        <source name="..." id="..." grs-id="..."> <!--...--> </source>
        <!--...more "source" elements...-->
    </grs-sources>
    <geolocation-attributes>...</geolocation-attributes>
    <versions>...</versions>
    <errormessages>...</errormessages>
    <terms-and-conditions xlink:type="locator" xlink:href="http://www.ripe.net/db/support/db-terms-conditions.pdf"/>
</whois-resources>

Example request

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<whois-resources>
    <objects>
        <object type="person">
            <source id="RIPE"/>
            <attributes>
                <attribute name="person" value="Pauleth Palthen"/>
                <attribute name="address" value="Singel 258"/>
                <attribute name="phone" value="+31-1234567890"/>
                <attribute name="e-mail" value="noreply@ripe.net"/>
                <attribute name="mnt-by" value="OWNER-MNT"/>
                <attribute name="nic-hdl" value="AUTO-1"/>
                <attribute name="source" value="RIPE"/>
            </attributes>
        </object>
    </objects>
</whois-resources>

Example response

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<whois-resources xmlns:xlink="http://www.w3.org/1999/xlink">
    <link xlink:type="locator" xlink:href="http://rest.db.ripe.net/ripe"/>
    <objects>
        <object type="person">
            <link xlink:type="locator" xlink:href="http://rest.db.ripe.net/ripe/person/PP1-RIPE"/>
            <source id="ripe"/>
            <primary-key>
                <attribute name="nic-hdl" value="PP1-RIPE"/>
            </primary-key>
            <attributes>
                <attribute name="person" value="Pauleth Palthen"/>
                <attribute name="address" value="Singel 258"/>
                <attribute name="phone" value="+31-1234567890"/>
                <attribute name="e-mail" value="noreply@ripe.net"/>
                <attribute name="mnt-by" value="OWNER-MNT" referenced-type="mntner">
                    <link xlink:type="locator" xlink:href="http://rest.db.ripe.net/ripe/mntner/OWNER-MNT"/>
                </attribute>
                <attribute name="nic-hdl" value="PP1-RIPE"/>
                <attribute name="remarks" value="remark"/>
                <attribute name="source" value="RIPE"/>
            </attributes>
        </object>
    </objects>
    <terms-and-conditions xlink:type="locator" xlink:href="http://www.ripe.net/db/support/db-terms-conditions.pdf"/>
</whois-resources>

Example request body with error in source and in admin-c attribute:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<whois-resources>
<objects>
    <object type="person">
        <source id="INVALID_SOURCE"/>
        <attributes>
            <attribute name="person" value="Pauleth Palthen"/>
            <attribute name="address" value="Singel 258"/>
            <attribute name="phone" value="+31-1234567890"/>
            <attribute name="e-mail" value="noreply@ripe.net"/>
            <attribute name="admin-c" value="INVALID"/>
            <attribute name="mnt-by" value="OWNER-MNT"/>
            <attribute name="nic-hdl" value="PP1-RIPE"/>
            <attribute name="source" value="INVALID_SOURCE"/>
        </attributes>
    </object>
</objects>
</whois-resources>

Example XML response with error in source and in admin-c attribute:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<whois-resources xmlns:xlink="http://www.w3.org/1999/xlink">
<link xlink:type="locator" xlink:href="http://rest.db.ripe.net/ripe/person"/>
<objects>
    <object type="person">
        <link xlink:type="locator" xlink:href="http://rest.db.ripe.net/invalid_source/person/PP1-RIPE"/>
        <source id="invalid_source"/>
        <primary-key>
            <attribute name="nic-hdl" value="PP1-RIPE"/>
        </primary-key>
        <attributes>
            <attribute name="person" value="Pauleth Palthen"/>
            <attribute name="address" value="Singel 258"/>
            <attribute name="phone" value="+31-1234567890"/>
            <attribute name="e-mail" value="noreply@ripe.net"/>
            <attribute name="admin-c" value="INVALID"/>
            <attribute name="mnt-by" value="OWNER-MNT" referenced-type="mntner">
                <link xlink:type="locator" xlink:href="http://rest.db.ripe.net/invalid_source/mntner/OWNER-MNT"/>
            </attribute>
            <attribute name="nic-hdl" value="PP1-RIPE"/>
            <attribute name="source" value="INVALID_SOURCE"/>
        </attributes>
    </object>
</objects>
<errormessages>
    <errormessage severity="Error" text="Unrecognized source: %s">
        <args value="INVALID_SOURCE"/>
    </errormessage>
    <errormessage severity="Error" text="&quot;%s&quot; is not valid for this object type">
        <attribute name="admin-c" value="INVALID"/>
        <args value="admin-c"/>
    </errormessage>
</errormessages>
<terms-and-conditions xlink:type="locator" xlink:href="http://www.ripe.net/db/support/db-terms-conditions.pdf"/>
</whois-resources>

Example XML Response for bad request when trying to delete an object that is referenced by other objects:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<whois-resources xmlns:xlink="http://www.w3.org/1999/xlink">
    <link xlink:type="locator" xlink:href="http://rest.db.ripe.net/ripe/person/PP1-RIPE"/>
    <objects>
        <object type="person">
            <link xlink:type="locator" xlink:href="http://rest.db.ripe.net/ripe/person/PP1-RIPE"/>
            <source id="ripe"/>
            <primary-key>
                <attribute name="nic-hdl" value="PP1-RIPE"/>
            </primary-key>
            <attributes>
                <attribute name="person" value="Test Person"/>
                <attribute name="address" value="Singel 258"/>
                <attribute name="phone" value="+31 6 12345678"/>
                <attribute name="nic-hdl" value="PP1-RIPE"/>
                <attribute name="mnt-by" value="OWNER-MNT" referenced-type="mntner">
                    <link xlink:type="locator" xlink:href="http://rest.db.ripe.net/ripe/mntner/OWNER-MNT"/>
                </attribute>
                <attribute name="source" value="RIPE"/>
            </attributes>
        </object>
    </objects>
    <errormessages>
        <errormessage severity="Error" text="Object [%s] %s is referenced from other objects">
            <args value="person"/>
            <args value="PP1-RIPE"/>
        </errormessage>
    </errormessages>
    <terms-and-conditions xlink:type="locator" xlink:href="http://www.ripe.net/db/support/db-terms-conditions.pdf"/>
</whois-resources>

Example XML Response for incorrect password

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<whois-resources xmlns:xlink="http://www.w3.org/1999/xlink">
    <link xlink:type="locator" xlink:href="http://rest.db.ripe.net/ripe/person/PP1-RIPE"/>
    <objects>
        <object type="person">
            <link xlink:type="locator" xlink:href="rest.db.ripe.net/ripe/person/PP1-RIPE"/>
            <source id="ripe"/>
            <primary-key>
                <attribute name="nic-hdl" value="PP1-RIPE"/>
            </primary-key>
            <attributes>
                <attribute name="person" value="Pauleth Palthen"/>
                <attribute name="address" value="Singel 258"/>
                <attribute name="phone" value="+31-1234567890"/>
                <attribute name="e-mail" value="noreply@ripe.net"/>
                <attribute name="mnt-by" value="OWNER-MNT" referenced-type="mntner">
                    <link xlink:type="locator" xlink:href="http://rest.db.ripe.net/ripe/mntner/OWNER-MNT"/>
                </attribute>
                <attribute name="nic-hdl" value="PP1-RIPE"/>
                <attribute name="remarks" value="remark"/>
                <attribute name="source" value="RIPE"/>
            </attributes>
        </object>
    </objects>
    <errormessages>
        <errormessage severity="Error"
                    text="Authorisation for [%s] %s failed&#xA;using &quot;%s:&quot;&#xA;not authenticated by: %s">
            <args value="person"/>
            <args value="PP1-RIPE"/>
            <args value="mnt-by"/>
            <args value="OWNER-MNT"/>
        </errormessage>
    </errormessages>
    <terms-and-conditions xlink:type="locator" xlink:href="http://www.ripe.net/db/support/db-terms-conditions.pdf"/>
</whois-resources>

Example XML with Object type error:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<whois-resources xmlns:xlink="http://www.w3.org/1999/xlink">
    <link xlink:type="locator" xlink:href="http://rest.db.ripe.net/ripe/mntner/PP1-RIPE"/>
    <errormessages>
        <errormessage severity="Error"
                    text="Object type and key specified in URI (%s: %s) do not match the WhoisResources contents">
            <args value="mntner"/>
            <args value="PP1-RIPE"/>
        </errormessage>
    </errormessages>
    <terms-and-conditions xlink:type="locator" xlink:href="http://www.ripe.net/db/support/db-terms-conditions.pdf"/>
</whois-resources>

JSON structure ​

Example structure

{
    "link": {
        "type": "...",
        "href": "..."
    },
    "parameters": { },
    "objects": {
        "object": [
            { },
            { }
        ]
    },
    "sources": {
        "source": [
            { },
            { }
        ]
    },
    "errormessages" : {
        "errormessage" : [ 
            { },
            { } 
        ]
    },
    "grs-sources": {
        "source": [
            { },
            { }
        ]
    },
    "geolocation-attributes": { },
    "versions": { },
    "errormessages": {},
    "terms-and-conditions": {
        "xlink:type": "locator",
        "xlink:href": "http://www.ripe.net/db/support/db-terms-conditions.pdf"
    },
}

Example request

{
"objects": {
    "object": [
    {
        "source": {
        "id": "RIPE"
        },
        "attributes": {
        "attribute": [
            {
            "name": "person",
            "value": "Pauleth Palthen"
            },
            {
            "name": "address",
            "value": "Singel 258"
            },
            {
            "name": "phone",
            "value": "+31-1234567890"
            },
            {
            "name": "mnt-by",
            "value": "OWNER-MNT"
            },
            {
            "name": "nic-hdl",
            "value": "AUTO-1"
            },
            {
            "name": "remarks",
            "value": "remark"
            },
            {
            "name": "source",
            "value": "RIPE"
            }
        ]
        }
    }
    ]
}
}

Example response

{
    "link": {
        "xlink:type": "locator",
        "xlink:href": "http://rest.db.ripe.net/ripe"
    },
    "objects": {
        "object": [
            {
                "type": "person",
                "link": {
                    "xlink:type": "locator",
                    "xlink:href": "http://rest.db.ripe.net/ripe/person/PP1-RIPE"
                },
                "source": {
                    "id": "ripe"
                },
                "primary-key": {
                    "attribute": [
                        {
                            "name": "nic-hdl",
                            "value": "PP1-RIPE"
                        }
                    ]
                },
                "attributes": {
                    "attribute": [
                        {
                            "name": "person",
                            "value": "Pauleth Palthen"
                        },
                        {
                            "name": "address",
                            "value": "Singel 258"
                        },
                        {
                            "name": "phone",
                            "value": "+31-1234567890"
                        },
                        {
                            "name": "e-mail",
                            "value": "noreply@ripe.net"
                        },
                        {
                            "link": {
                                "xlink:type": "locator",
                                "xlink:href": "http://rest.db.ripe.net/ripe/mntner/OWNER-MNT"
                            },
                            "name": "mnt-by",
                            "value": "OWNER-MNT",
                            "referenced-type": "mntner"
                        },
                        {
                            "name": "nic-hdl",
                            "value": "PP1-RIPE"
                        },
                        {
                            "name": "remarks",
                            "value": "remark"
                        },
                        {
                            "name": "source",
                            "value": "RIPE"
                        }
                    ]
                }
            }
        ]
    }, 
    "terms-and-conditions": {
        "xlink:type": "locator",
        "xlink:href": "http://www.ripe.net/db/support/db-terms-conditions.pdf"
    }  
}

Example JSON response with error in source and in admin-c attribute:

{
"link" : {
    "type" : "locator",
    "href" : "http://rest.db.ripe.net/ripe/person"
},
"objects" : {
    "object" : [ {
    "type" : "person",
    "link" : {
        "type" : "locator",
        "href" : "http://rest.db.ripe.net/invalid_source/person/PP1-RIPE"
    },
    "source" : {
        "id" : "invalid_source"
    },
    "primary-key" : {
        "attribute" : [ {
        "name" : "nic-hdl",
        "value" : "PP1-RIPE"
        } ]
    },
    "attributes" : {
        "attribute" : [ {
        "name" : "person",
        "value" : "Pauleth Palthen"
        }, {
        "name" : "address",
        "value" : "Singel 258"
        }, {
        "name" : "phone",
        "value" : "+31-1234567890"
        }, {
        "name" : "e-mail",
        "value" : "noreply@ripe.net"
        }, {
        "name" : "admin-c",
        "value" : "INVALID"
        }, {
        "link" : {
            "type" : "locator",
            "href" : "http://rest.db.ripe.net/invalid_source/mntner/OWNER-MNT"
        },
        "name" : "mnt-by",
        "value" : "OWNER-MNT",
        "referenced-type" : "mntner"
        }, {
        "name" : "nic-hdl",
        "value" : "PP1-RIPE"
        }, {
        "name" : "source",
        "value" : "INVALID_SOURCE"
        } ]
    }
    } ]
    },
"errormessages" : {
    "errormessage" : [ {
    "severity" : "Error",
    "text" : "Unrecognized source: %s",
    "args" : [ {
        "value" : "INVALID_SOURCE"
    } ]
    }, {
    "severity" : "Error",
    "attribute" : {
        "name" : "admin-c",
        "value" : "INVALID"
    },
    "text" : "\"%s\" is not valid for this object type",
    "args" : [ {
        "value" : "admin-c"
    } ]
    } ]
},
"terms-and-conditions" : {
    "type" : "locator",
    "href" : "http://www.ripe.net/db/support/db-terms-conditions.pdf"
}
}

Example JSON Response for bad request when trying to delete an object that is referenced by other objects:

{
"link" : {
    "type" : "locator",
    "href" : "http://rest.db.ripe.net/ripe/person/PP1-RIPE"
},
"objects" : {
    "object" : [ {
    "type" : "person",
    "link" : {
        "type" : "locator",
        "href" : "http://rest.db.ripe.net/ripe/person/PP1-RIPE"
    },
    "source" : {
        "id" : "ripe"
    },
    "primary-key" : {
        "attribute" : [ {
        "name" : "nic-hdl",
        "value" : "PP1-RIPE"
        } ]
    },
    "attributes" : {
        "attribute" : [ {
        "name" : "person",
        "value" : "Test Person"
        }, {
        "name" : "address",
        "value" : "Singel 258"
        }, {
        "name" : "phone",
        "value" : "+31 6 12345678"
        }, {
        "name" : "nic-hdl",
        "value" : "PP1-RIPE"
        }, {
        "link" : {
            "type" : "locator",
            "href" : "http://rest.db.ripe.net/ripe/mntner/OWNER-MNT"
        },
        "name" : "mnt-by",
        "value" : "OWNER-MNT",
        "referenced-type" : "mntner"
        }, {
        "name" : "source",
        "value" : "RIPE"
        } ]
    }
    } ]
},
"errormessages" : {
    "errormessage" : [ {
    "severity" : "Error",
    "text" : "Object [%s] %s is referenced from other objects",
    "args" : [ {
        "value" : "person"
    }, {
        "value" : "PP1-RIPE"
    } ]
    } ]
},
"terms-and-conditions" : {
    "type" : "locator",
    "href" : "http://www.ripe.net/db/support/db-terms-conditions.pdf"
}
}

Example JSON Response for incorrect password

{
"link" : {
    "type" : "locator",
    "href" : "http://rest.db.ripe.net/ripe/person/PP1-RIPE"
},
"objects" : {
    "object" : [ {
    "type" : "person",
    "link" : {
        "type" : "locator",
        "href" : "http://rest.db.ripe.net/ripe/person/PP1-RIPE"
    },
    "source" : {
        "id" : "ripe"
    },
    "primary-key" : {
        "attribute" : [ {
        "name" : "nic-hdl",
        "value" : "PP1-RIPE"
        } ]
    },
    "attributes" : {
        "attribute" : [ {
        "name" : "person",
        "value" : "Pauleth Palthen"
        }, {
        "name" : "address",
        "value" : "Singel 258"
        }, {
        "name" : "phone",
        "value" : "+31-1234567890"
        }, {
        "name" : "e-mail",
        "value" : "noreply@ripe.net"
        }, {
        "link" : {
            "type" : "locator",
            "href" : "http://rest.db.ripe.net/ripe/mntner/OWNER-MNT"
        },
        "name" : "mnt-by",
        "value" : "OWNER-MNT",
        "referenced-type" : "mntner"
        }, {
        "name" : "nic-hdl",
        "value" : "PP1-RIPE"
        }, {
        "name" : "remarks",
        "value" : "remark"
        }, {
        "name" : "source",
        "value" : "RIPE"
        } ]
    }
    } ]
},
"errormessages" : {
    "errormessage" : [ {
    "severity" : "Error",
    "text" : "Authorisation for [%s] %s failed\nusing \"%s:\"\nnot authenticated by: %s",
    "args" : [ {
        "value" : "person"
    }, {
        "value" : "PP1-RIPE"
    }, {
        "value" : "mnt-by"
    }, {
        "value" : "OWNER-MNT"
    } ]
    } ]
},
"terms-and-conditions" : {
    "type" : "locator",
    "href" : "http://www.ripe.net/db/support/db-terms-conditions.pdf"
}
}

Example JSON Object Type error:

{
"link" : {
    "type" : "locator",
    "href" : "http://rest.db.ripe.net/ripe/mntner/PP1-RIPE"
},
"errormessages" : {
    "errormessage" : [ {
    "severity" : "Error",
    "text" : "Object type and key specified in URI (%s: %s) do not match the WhoisResources contents",
    "args" : [ {
        "value" : "mntner"
    }, {
        "value" : "PP1-RIPE"
    } ]
    } ]
},
"terms-and-conditions" : {
    "type" : "locator",
    "href" : "http://www.ripe.net/db/support/db-terms-conditions.pdf"
}
}

Text/Plain ​

Example response

mntner:         RIPE-DBM-MNT
descr:          Mntner for RIPE DBM objects.
admin-c:        RD132-RIPE
tech-c:         RD132-RIPE
org:            ORG-NCC1-RIPE
auth:           PGPKEY-1290F9D2
auth:           MD5-PW # Filtered
mnt-by:         RIPE-DBM-MNT
created:        2002-09-17T10:24:30Z
last-modified:  2015-07-22T09:34:26Z
source:         RIPE # Filtered

Elements ​

  • link
  • parameters
  • objects
  • object
  • tags
  • geolocation-attributes
  • sources
  • errorMessages
  • versions

Link: ​

Pointer to the resource.

  • The XLink format is used for the links (ref: http://en.wikipedia.org/wiki/XLink).

      <link xlink:type="locator" xlink:href="http://rest-test.db.ripe.net/test/person/TP1-TEST"/>
    
    
      "link": {
          "xlink:type": "locator",
          "xlink:href": "http://rest-test.db.ripe.net/test/person/TP1-TEST"
      }
    

Parameters: ​

part of a search response, indicating which query flags were used.

  • Inverse-lookup: wraps a set of inverse-attribute

  • Inverse-attribute: value of an inverse query flag

  • Type-filters: wraps a set of type-filter

  • Type-filter: id = the RPSL object type to limit the search to

  • Flags: wraps a set of flag

  • Flag: the value of a query flag

  • Query-strings: wraps a set of query-string

  • Query-string: the value of the query string

  • Sources: wraps a set of source

  • Source: id of RIPE database source

      <parameters>
          <inverse-lookup/>
          <type-filters/>
          <flags>
              <flag value="r"/>
              ...
          </flags>
          <query-strings>
              <query-string value="LP1-TEST"/>
          </query-strings>
          <sources>
              <source id="TEST"/>
          </sources>
      </parameters>
    
    
      "parameters": {
          "inverse-lookup": {"inverse-attribute": []},
          "type-filters": {"type-filter": []},
          "flags": {
              "flag": [{"value": "r"}, ...]
          },
          "query-strings": {
              "query-string": [{"value": "LP1-TEST"}]
          },
          "sources": {
              "source": [{"id": "TEST"}]
          }
      }
    

Objects: ​

A set of (RPSL-) object representations.

  • Type: the RPSL object type

  • Link: see above

  • Source: indication of which RIPE source object is registered in

  • Primary-key: searchable key in the RIPE database

  • Attributes: set of attribute describing the RPSL object

  • Attribute:

    • can be divided by mandatory:
      • name, value
    • and non-mandatory:
      • link (see Link), referenced-type: used to describe pointer to resource where referenced-type is the RIPE object type.
  • comment

          <objects>
              <object>...</object>
              ...
          </objects>
    
          "objects": {
              "object": [ ... ]
          }
    

Object: ​

Representation of a RPSL object. Contained within Objects.

    <object type="person">
        <link xlink:type="locator" xlink:href="http://rest-test.db.ripe.net/test/person/LP1-TEST"/>
        <source id="test"/>
        <primary-key>
            <attribute name="nic-hdl" value="LP1-TEST"/>
        </primary-key>
        <attributes>
            <attribute .../>
            ...
        </attributes>
        <tags/>
    </object>

    "object": [
        {"type": "person",
        "link": {
                    "xlink:type": "locator",
                    "xlink:href": "http://rest-test.db.ripe.net/test/person/LP1-TEST"
                },
        "source": {"id": "test"},
        "primary-key": { "attribute": [{ "name": "nic-hdl", "value": "LP1-TEST" }] },
        "attributes": { "attribute": [ ... ] },
        "tags": { "tag": [] }
    }
    ]

Tags: ​

Set of tag

  • Tag: extra data about a particular object in the RIPE database. Consists of id - the name of the tag, and data

      <tags>
          <tag id="..." data="..."/>
          ...
      </tags>
    
      "tags": {
          "tag": [ {"id": "...", "data": "..."}, ...]
      }
    

Geolocation-attributes: ​

Extra information for inetnum / inet6num RPSL objects.

  • Location: a link (see Link) to the inet(6)num and a longitude latitude value

  • Language: a link (see Link) to the inet(6)num and an ISO 639-1 language code

      <geolocation-attributes>
          <location value="52.375599 4.899902">
              <link xlink:type="locator" xlink:href="..."/>
          </location>
      </geolocation-attributes>
    
      "geolocation-attributes": {
          "location": [{"value": "52.375599 4.899902", "link": {"xlink:type": "locator", "xlink:href": "..."}}]
      }
    

Sources: ​

A set of available source for the RIPE database

  • Source: name, id

  • Valid values: RIPE, TEST

      <sources>
          <source name="RIPE" id="ripe"/>
          <source name="TEST" id="test"/>
      </sources>
    
      "sources" : {
          "source" : [ {"name" : "RIPE", "id" : "ripe"}, {"name" : "TEST","id" : "test"} ]
      }
    

Grs-sources: ​

A set of available grs-source for the RIPE database

  • Source: name, id and grs-id

  • Valid Values: AFRINIC-GRS, APNIC-GRS, ARIN-GRS, JPIRR-GRS, LACNIC-GRS, RADB-GRS

      <grs-sources>
          <source name="APNIC-GRS" id="apnic-grs" grs-id="apnic-grs"/>
      </grs-sources>
    
      "grs-sources" : {
          "source" : [ {"name" : "APNIC-GRS", "id" : "apnic-grs", "grs-id" : "apnic-grs"} ]
      }
    

Versions: ​

Enumeration of the changes of a particular object. Will only be in the versions response payload. Consists of type (see Type), key (see Primary key) and version.

  • Version: information about a particular version of the object. It can either be deleted, in which case there's only a date, or show information about the revision.

      <versions type="aut-num" key="...">
          <version>
              <revision>1</revision>
              <date>2013-08-27 11:23</date>
              <operation>ADD/UPD</operation>
          </version>
      </versions>
    
    
    
      "versions" : {
          "type" : "aut-num",
          "key" : "...",
          "version" : [ {
              "deleted" : null,
              "revision" : 1,
              "date" : "2013-08-27 11:26",
              "operation" : "ADD/UPD"
          } ]
      }
    

Error messages: ​

A set of errormessage containing information about the performed operation. A message concerns the operation, an object of the operation, or an attribute of an object. It has a severity (Error, Warning, Info), a text description and a set of arguments supplied to the operation.

    <errormessages>
        <errormessage severity="..." text="...">
        <args value="..."/>
        <!--...more "args" elements...-->
        </errormessage>
        <!--...more "errormessage" elements...-->
    </errormessages>



    "errormessages" : {
        "errormessage" : [ {
            "severity" : "...",
            "text" : "...",
            "args" : [ ]
            } ]
    }

Example XML error response:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<whois-resources xmlns:xlink="http://www.w3.org/1999/xlink">
<link xlink:type="locator" xlink:href="http://rest.db.ripe.net/invalid/person/TP1-RIPE"/>
<errormessages>
    <errormessage severity="Error" text="Invalid source '%s'">
        <args value="invalid"/>
    </errormessage>
</errormessages>
<terms-and-conditions xlink:type="locator" xlink:href="http://www.ripe.net/db/support/db-terms-conditions.pdf"/>
</whois-resources>

Example JSON error response:

{
"link" : {
    "type" : "locator",
    "href" : "http://rest.db.ripe.net/invalid/person/TP1-RIPE"
},
"errormessages" : {
    "errormessage" : [ {
    "severity" : "Error",
    "text" : "Invalid source '%s'",
    "args" : [ {
        "value" : "invalid"
    } ]
    } ]
},
"terms-and-conditions" : {
    "type" : "locator",
    "href" : "http://www.ripe.net/db/support/db-terms-conditions.pdf"
}
}

Data Types ​

  • Inverse Attribute
  • One of: abuse-c, abuse-mailbox, admin-c, auth, author, ds-rdata, fingerprint, form, ifaddr, irt-nfy, local-as, mbrs-by-ref, member-of, mnt-by, mnt-domains, mnt-irt, mnt-lower, mnt-nfy, mnt-ref, mnt-routes, notify, nserver, org, origin, person, ping-hdl, ref-nfy, tech-c, upd-to, zone-c.
  • Object Type
  • One of: as-block, as-set, aut-num, domain, filter-set, inet6num, inetnum, inet-rtr, irt, key-cert, mntner, organisation, peering-set, person, poem, poetic-form, role, route, route6, route-set, rtr-set.
  • Severity
  • One of: Error, Warning, Info.
  • Source
  • One of: RIPE, TEST, or a GRS source (AFRINIC-GRS, APNIC-GRS, ARIN-GRS, JPIRR-GRS, LACNIC-GRS, RADB-GRS, RIPE-GRS).

Template Resources ​

Description ​

RPSL templates object type.

XML ​

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<template-resources xmlns:xlink="http://www.w3.org/1999/xlink">
<link xlink:type="locator" xlink:href="http://rest.db.ripe.net/metadata/templates/person"/>
<service name="getObjectTemplate"/>
<templates>
    <template type="person">
        <source id="ripe"/>
        <attributes>
            <attribute name="person" requirement="MANDATORY" cardinality="SINGLE" keys="LOOKUP_KEY"/>
            <attribute name="address" requirement="MANDATORY" cardinality="MULTIPLE" keys=""/>
            <attribute name="phone" requirement="MANDATORY" cardinality="MULTIPLE" keys=""/>
            <attribute name="fax-no" requirement="OPTIONAL" cardinality="MULTIPLE" keys=""/>
            <attribute name="e-mail" requirement="OPTIONAL" cardinality="MULTIPLE" keys="LOOKUP_KEY"/>
            <attribute name="org" requirement="OPTIONAL" cardinality="MULTIPLE" keys="INVERSE_KEY"/>
            <attribute name="nic-hdl" requirement="MANDATORY" cardinality="SINGLE" keys="PRIMARY_KEY LOOKUP_KEY"/>
            <attribute name="remarks" requirement="OPTIONAL" cardinality="MULTIPLE" keys=""/>
            <attribute name="notify" requirement="OPTIONAL" cardinality="MULTIPLE" keys="INVERSE_KEY"/>
            <attribute name="abuse-mailbox" requirement="OPTIONAL" cardinality="MULTIPLE" keys="INVERSE_KEY"/>
            <attribute name="mnt-by" requirement="MANDATORY" cardinality="MULTIPLE" keys="INVERSE_KEY"/>
            <attribute name="source" requirement="MANDATORY" cardinality="SINGLE" keys=""/>
        </attributes>
    </template>
</templates>
</template-resources>

JSON ​

{
    "service": "getObjectTemplate",
    "link": {
    "xlink:type": "locator",
    "xlink:href": "http://rest.db.ripe.net/metadata/templates/peering-set"
    },
    "service" : {
    "name" : "getObjectTemplate"
    },
    "templates": {
    "template": [
        {
        "type": "peering-set",
        "source": {
            "id": "ripe"
        },
        "attributes": {
            "attribute": [
            {
                "name": "peering-set",
                "requirement": "MANDATORY",
                "cardinality": "SINGLE",
                "keys": ["PRIMARY_KEY","LOOKUP_KEY"]
            },
            {
                "name": "descr",
                "requirement": "MANDATORY",
                "cardinality": "MULTIPLE",
                "keys": []
            },
            {
                "name": "peering",
                "requirement": "OPTIONAL",
                "cardinality": "MULTIPLE",
                "keys": []
            },
            {
                "name": "mp-peering",
                "requirement": "OPTIONAL",
                "cardinality": "MULTIPLE",
                "keys": []
            },
            {
                "name": "remarks",
                "requirement": "OPTIONAL",
                "cardinality": "MULTIPLE",
                "keys": []
            },
            {
                "name": "org",
                "requirement": "OPTIONAL",
                "cardinality": "MULTIPLE",
                "keys": ["INVERSE_KEY"]
            },
            {
                "name": "tech-c",
                "requirement": "MANDATORY",
                "cardinality": "MULTIPLE",
                "keys": ["INVERSE_KEY"]
            },
            {
                "name": "admin-c",
                "requirement": "MANDATORY",
                "cardinality": "MULTIPLE",
                "keys": ["INVERSE_KEY"]
            },
            {
                "name": "notify",
                "requirement": "OPTIONAL",
                "cardinality": "MULTIPLE",
                "keys": ["INVERSE_KEY"]
            },
            {
                "name": "mnt-by",
                "requirement": "MANDATORY",
                "cardinality": "MULTIPLE",
                "keys": ["INVERSE_KEY"]
            },
            {
                "name": "mnt-lower",
                "requirement": "OPTIONAL",
                "cardinality": "MULTIPLE",
                "keys": ["INVERSE_KEY"]
            },
            {
                "name": "source",
                "requirement": "MANDATORY",
                "cardinality": "SINGLE",
                "keys": []
            }
            ]
        }
        }
    ]
    }
}

Last updated:

Pager
Previous pageHow to Organise Your Data
Next pageDescriptions of Primary Objects