mirror of
https://github.com/internetee/registry.git
synced 2025-06-09 06:04:56 +02:00
Merge pull request #1924 from internetee/1869-renew-repp-docs
Changed integrated docs to the link to Github Pages doc
This commit is contained in:
commit
b0c9744bed
11 changed files with 2 additions and 823 deletions
|
@ -18,7 +18,7 @@ Documentation
|
||||||
|
|
||||||
* [EPP documentation](/doc/epp)
|
* [EPP documentation](/doc/epp)
|
||||||
* [EPP request-response examples](/doc/epp-examples.md)
|
* [EPP request-response examples](/doc/epp-examples.md)
|
||||||
* [REPP documentation](/doc/repp-doc.md)
|
* [REPP documentation](https://internetee.github.io/repp-apidoc/)
|
||||||
|
|
||||||
Installation
|
Installation
|
||||||
------------
|
------------
|
||||||
|
|
|
@ -1,29 +0,0 @@
|
||||||
## GET /repp/v1/accounts/balance
|
|
||||||
Returns account balance of the current registrar.
|
|
||||||
|
|
||||||
|
|
||||||
#### Request
|
|
||||||
```
|
|
||||||
GET /repp/v1/accounts/balance HTTP/1.1
|
|
||||||
Accept: application/json
|
|
||||||
Authorization: Basic Z2l0bGFiOmdoeXQ5ZTRmdQ==
|
|
||||||
Content-Length: 0
|
|
||||||
Content-Type: application/json
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Response
|
|
||||||
```
|
|
||||||
HTTP/1.1 200
|
|
||||||
Cache-Control: max-age=0, private, must-revalidate
|
|
||||||
Content-Length: 37
|
|
||||||
Content-Type: application/json
|
|
||||||
|
|
||||||
{
|
|
||||||
"code": 1000,
|
|
||||||
"message": "Command completed successfully",
|
|
||||||
"data": {
|
|
||||||
"balance": "356.0",
|
|
||||||
"currency": "EUR"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
|
@ -1,30 +0,0 @@
|
||||||
# Admin domain contacts
|
|
||||||
|
|
||||||
## PATCH https://repp.internet.ee/v1/domains/admin_contacts
|
|
||||||
Replaces admin domain contacts of the current registrar.
|
|
||||||
|
|
||||||
### Example request
|
|
||||||
```
|
|
||||||
PATCH /repp/v1/domains/admin_contacts HTTP/1.1
|
|
||||||
Accept: application/json
|
|
||||||
Content-Type: application/json
|
|
||||||
Authorization: Basic dGVzdDp0ZXN0dGVzdA==
|
|
||||||
|
|
||||||
{
|
|
||||||
"current_contact_id": "ATSAA:749AA80F",
|
|
||||||
"new_contact_id": "ATSAA:E36957D7"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
### Example response
|
|
||||||
```
|
|
||||||
{
|
|
||||||
"code": 1000,
|
|
||||||
"message": "Command completed successfully",
|
|
||||||
"data": {
|
|
||||||
"affected_domains": [
|
|
||||||
"private.ee",
|
|
||||||
],
|
|
||||||
"skipped_domains": []
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
|
@ -1,39 +0,0 @@
|
||||||
## GET /repp/v1/auctions
|
|
||||||
|
|
||||||
Return a list of auctions currently in progress. The list of domains changes
|
|
||||||
every day.
|
|
||||||
|
|
||||||
In contrast with other endpoints in REPP, this one is publicly available for
|
|
||||||
anyone without authentication.
|
|
||||||
|
|
||||||
#### Request
|
|
||||||
|
|
||||||
```
|
|
||||||
GET /repp/v1/auctions HTTP/1.1
|
|
||||||
Host: registry.test
|
|
||||||
User-Agent: curl/7.64.1
|
|
||||||
Accept: */*
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Response
|
|
||||||
|
|
||||||
```
|
|
||||||
HTTP/1.1 200 OK
|
|
||||||
Date: Thu, 21 May 2020 10:39:45 GMT
|
|
||||||
Content-Type: application/json; charset=utf-8
|
|
||||||
ETag: W/"217bd9ee4dfbb332172a1baf80ee0ba9"
|
|
||||||
Cache-Control: max-age=0, private, must-revalidate
|
|
||||||
X-Request-Id: a26b6801-bf3f-4922-b0db-3b081bacb130
|
|
||||||
X-Runtime: 1.481174
|
|
||||||
Transfer-Encoding: chunked
|
|
||||||
|
|
||||||
{
|
|
||||||
"count":1,
|
|
||||||
"auctions": [
|
|
||||||
{
|
|
||||||
"domain_name": "auctionäöüõ.test",
|
|
||||||
"punycode_domain_name": "xn--auction-cxa7mj0e.test"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
```
|
|
|
@ -1,228 +0,0 @@
|
||||||
## GET /repp/v1/contacts
|
|
||||||
Returns contacts of the current registrar.
|
|
||||||
|
|
||||||
|
|
||||||
#### Parameters
|
|
||||||
|
|
||||||
| Field name | Required | Type | Allowed values | Description |
|
|
||||||
| ---------- | -------- | ---- | -------------- | ----------- |
|
|
||||||
| limit | false | Integer | [1..200] | How many contacts to show |
|
|
||||||
| offset | false | Integer | | Contact number to start at |
|
|
||||||
| details | false | String | ["true", "false"] | Whether to include details |
|
|
||||||
|
|
||||||
#### Request
|
|
||||||
```
|
|
||||||
GET /repp/v1/contacts?limit=1&details=true HTTP/1.1
|
|
||||||
Accept: application/json
|
|
||||||
Authorization: Basic Z2l0bGFiOmdoeXQ5ZTRmdQ==
|
|
||||||
Content-Length: 0
|
|
||||||
Content-Type: application/json
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Response
|
|
||||||
```
|
|
||||||
HTTP/1.1 200
|
|
||||||
Cache-Control: max-age=0, private, must-revalidate
|
|
||||||
Content-Length: 564
|
|
||||||
Content-Type: application/json
|
|
||||||
|
|
||||||
{
|
|
||||||
"contacts": [
|
|
||||||
{
|
|
||||||
"id": 1,
|
|
||||||
"code": "REGISTRAR2:SH022086480",
|
|
||||||
"phone": "+372.12345678",
|
|
||||||
"email": "hoyt@deckowbechtelar.net",
|
|
||||||
"fax": null,
|
|
||||||
"created_at": "2015-09-09T09:11:14.130Z",
|
|
||||||
"updated_at": "2015-09-09T09:11:14.130Z",
|
|
||||||
"ident": "37605030299",
|
|
||||||
"ident_type": "priv",
|
|
||||||
"auth_info": "password",
|
|
||||||
"name": "Karson Kessler0",
|
|
||||||
"org_name": null,
|
|
||||||
"registrar_id": 2,
|
|
||||||
"creator_str": null,
|
|
||||||
"updator_str": null,
|
|
||||||
"ident_country_code": "EE",
|
|
||||||
"city": "Tallinn",
|
|
||||||
"street": "Short street 11",
|
|
||||||
"zip": "11111",
|
|
||||||
"country_code": "EE",
|
|
||||||
"state": null,
|
|
||||||
"statuses": [
|
|
||||||
"ok"
|
|
||||||
],
|
|
||||||
"status_notes": {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"total_number_of_records": 2
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
## GET /repp/v1/contacts
|
|
||||||
Returns contact names with offset.
|
|
||||||
|
|
||||||
|
|
||||||
#### Request
|
|
||||||
```
|
|
||||||
GET /repp/v1/contacts?offset=1 HTTP/1.1
|
|
||||||
Accept: application/json
|
|
||||||
Authorization: Basic Z2l0bGFiOmdoeXQ5ZTRmdQ==
|
|
||||||
Content-Length: 0
|
|
||||||
Content-Type: application/json
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Response
|
|
||||||
```
|
|
||||||
HTTP/1.1 200
|
|
||||||
Cache-Control: max-age=0, private, must-revalidate
|
|
||||||
Content-Length: 67
|
|
||||||
Content-Type: application/json
|
|
||||||
|
|
||||||
{
|
|
||||||
"contacts": [
|
|
||||||
"REGISTRAR2:SH749456461"
|
|
||||||
],
|
|
||||||
"total_number_of_records": 2
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
## POST /repp/v1/contacts
|
|
||||||
Creates new contact
|
|
||||||
|
|
||||||
|
|
||||||
#### Request
|
|
||||||
```
|
|
||||||
POST /repp/v1/contacts HTTP/1.1
|
|
||||||
Authorization: Basic dGVzdDp0ZXN0MTIz
|
|
||||||
Content-Type: application/json
|
|
||||||
|
|
||||||
{
|
|
||||||
"contact": {
|
|
||||||
"name": "John Doe",
|
|
||||||
"email": "john@doe.com",
|
|
||||||
"phone": "+371.1234567",
|
|
||||||
"ident": {
|
|
||||||
"ident": "12345678901",
|
|
||||||
"ident_type": "priv",
|
|
||||||
"ident_country_code": "EE"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Response
|
|
||||||
```
|
|
||||||
HTTP/1.1 200
|
|
||||||
Cache-Control: max-age=0, private, must-revalidate
|
|
||||||
Content-Type: application/json
|
|
||||||
|
|
||||||
{
|
|
||||||
"code": 1000,
|
|
||||||
"message": "Command completed successfully",
|
|
||||||
"data": {
|
|
||||||
"contact": {
|
|
||||||
"id": "ATSAA:20DCDCA1"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Failed response
|
|
||||||
```
|
|
||||||
HTTP/1.1 400
|
|
||||||
Cache-Control: max-age=0, private, must-revalidate
|
|
||||||
Content-Type: application/json
|
|
||||||
|
|
||||||
{
|
|
||||||
"code": 2005,
|
|
||||||
"message": "Ident code does not conform to national identification number format of Estonia",
|
|
||||||
"data": {}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
## PUT /repp/v1/contacts/**contact id**
|
|
||||||
Updates existing contact
|
|
||||||
|
|
||||||
|
|
||||||
#### Request
|
|
||||||
```
|
|
||||||
PUT /repp/v1/contacts/ATSAA:9CD5F321 HTTP/1.1
|
|
||||||
Authorization: Basic dGVzdDp0ZXN0MTIz
|
|
||||||
Content-Type: application/json
|
|
||||||
|
|
||||||
{
|
|
||||||
"contact": {
|
|
||||||
"phone": "+372.123123123"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Response
|
|
||||||
```
|
|
||||||
HTTP/1.1 200
|
|
||||||
Cache-Control: max-age=0, private, must-revalidate
|
|
||||||
Content-Type: application/json
|
|
||||||
|
|
||||||
{
|
|
||||||
"code": 1000,
|
|
||||||
"message": "Command completed successfully",
|
|
||||||
"data": {
|
|
||||||
"contact": {
|
|
||||||
"id": "ATSAA:20DCDCA1"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Failed response
|
|
||||||
```
|
|
||||||
HTTP/1.1 400
|
|
||||||
Cache-Control: max-age=0, private, must-revalidate
|
|
||||||
Content-Type: application/json
|
|
||||||
|
|
||||||
{
|
|
||||||
"code": 2005,
|
|
||||||
"message": "Phone nr is invalid [phone]",
|
|
||||||
"data": {}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
## DELETE /repp/v1/contacts/**contact id**
|
|
||||||
Deletes existing contact
|
|
||||||
|
|
||||||
|
|
||||||
#### Request
|
|
||||||
```
|
|
||||||
DELETE /repp/v1/contacts/ATSAA:9CD5F321 HTTP/1.1
|
|
||||||
Authorization: Basic dGVzdDp0ZXN0MTIz
|
|
||||||
Content-Type: application/json
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Response
|
|
||||||
```
|
|
||||||
HTTP/1.1 200
|
|
||||||
Cache-Control: max-age=0, private, must-revalidate
|
|
||||||
Content-Type: application/json
|
|
||||||
|
|
||||||
{
|
|
||||||
"code": 1000,
|
|
||||||
"message": "Command completed successfully",
|
|
||||||
"data": {}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Failed response
|
|
||||||
```
|
|
||||||
HTTP/1.1 400
|
|
||||||
Cache-Control: max-age=0, private, must-revalidate
|
|
||||||
Content-Type: application/json
|
|
||||||
|
|
||||||
{
|
|
||||||
"code": 2305,
|
|
||||||
"message": "Object association prohibits operation [domains]",
|
|
||||||
"data": {}
|
|
||||||
}
|
|
||||||
```
|
|
|
@ -1,195 +0,0 @@
|
||||||
# Domain listing
|
|
||||||
|
|
||||||
## GET /repp/v1/domains
|
|
||||||
Returns domains of the current registrar.
|
|
||||||
|
|
||||||
|
|
||||||
#### Parameters
|
|
||||||
|
|
||||||
| Field name | Required | Type | Allowed values | Description |
|
|
||||||
| ---------- | -------- | ---- | -------------- | ----------- |
|
|
||||||
| limit | false | Integer | [1..200] | How many domains to show |
|
|
||||||
| offset | false | Integer | | Domain number to start at |
|
|
||||||
| details | false | String | ["true", "false"] | Whether to include details |
|
|
||||||
|
|
||||||
#### Request
|
|
||||||
```
|
|
||||||
GET /repp/v1/domains?limit=1&details=true HTTP/1.1
|
|
||||||
Accept: application/json
|
|
||||||
Authorization: Basic Z2l0bGFiOmdoeXQ5ZTRmdQ==
|
|
||||||
Content-Length: 0
|
|
||||||
Content-Type: application/json
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Response
|
|
||||||
```
|
|
||||||
HTTP/1.1 200
|
|
||||||
Cache-Control: max-age=0, private, must-revalidate
|
|
||||||
Content-Type: application/json
|
|
||||||
|
|
||||||
{
|
|
||||||
"code": 1000,
|
|
||||||
"message": "Command completed successfully",
|
|
||||||
"data": {
|
|
||||||
"domains": [
|
|
||||||
{
|
|
||||||
"id": 7,
|
|
||||||
"name": "private.ee",
|
|
||||||
"registrar_id": 2,
|
|
||||||
"valid_to": "2022-09-23T00:00:00.000+03:00",
|
|
||||||
"registrant_id": 11,
|
|
||||||
"created_at": "2020-09-22T14:16:47.420+03:00",
|
|
||||||
"updated_at": "2020-10-21T13:31:43.733+03:00",
|
|
||||||
"name_dirty": "private.ee",
|
|
||||||
"name_puny": "private.ee",
|
|
||||||
"period": 1,
|
|
||||||
"period_unit": "y",
|
|
||||||
"creator_str": "2-ApiUser: test",
|
|
||||||
"updator_str": null,
|
|
||||||
"outzone_at": null,
|
|
||||||
"delete_date": null,
|
|
||||||
"registrant_verification_asked_at": null,
|
|
||||||
"registrant_verification_token": null,
|
|
||||||
"pending_json": {},
|
|
||||||
"force_delete_date": null,
|
|
||||||
"statuses": [
|
|
||||||
"serverRenewProhibited"
|
|
||||||
],
|
|
||||||
"status_notes": {
|
|
||||||
"ok": "",
|
|
||||||
"serverRenewProhibited": ""
|
|
||||||
},
|
|
||||||
"upid": null,
|
|
||||||
"up_date": null,
|
|
||||||
"uuid": "6b6affa7-1449-4bd8-acf5-8b4752406705",
|
|
||||||
"locked_by_registrant_at": null,
|
|
||||||
"force_delete_start": null,
|
|
||||||
"force_delete_data": null,
|
|
||||||
"auth_info": "367b1e6d1f0d9aa190971ad8f571cd4d",
|
|
||||||
"valid_from": "2020-09-22T14:16:47.420+03:00"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"total_number_of_records": 10
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
## GET /repp/v1/domains
|
|
||||||
Returns domain names with offset.
|
|
||||||
|
|
||||||
|
|
||||||
#### Request
|
|
||||||
```
|
|
||||||
GET /repp/v1/domains?offset=1 HTTP/1.1
|
|
||||||
Accept: application/json
|
|
||||||
Authorization: Basic Z2l0bGFiOmdoeXQ5ZTRmdQ==
|
|
||||||
Content-Length: 0
|
|
||||||
Content-Type: application/json
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Response
|
|
||||||
```
|
|
||||||
HTTP/1.1 200
|
|
||||||
Cache-Control: max-age=0, private, must-revalidate
|
|
||||||
Content-Type: application/json
|
|
||||||
|
|
||||||
{
|
|
||||||
"code": 1000,
|
|
||||||
"message": "Command completed successfully",
|
|
||||||
"data": {
|
|
||||||
"domains": [
|
|
||||||
"private.ee",
|
|
||||||
],
|
|
||||||
"total_number_of_records": 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
# Transfer info
|
|
||||||
|
|
||||||
## GET /repp/v1/domains/*domainname.ee*/transfer_info
|
|
||||||
Returns details of contacts associated with a domain to be transfered. Necessary for pre-transfer checks and better user experience in automated registrar systems.
|
|
||||||
|
|
||||||
Please note the domain name in the path
|
|
||||||
|
|
||||||
#### Request
|
|
||||||
```
|
|
||||||
GET /repp/v1/domains/ee-test.ee/transfer_info HTTP/1.1
|
|
||||||
Accept: application/json
|
|
||||||
Authorization: Basic Z2l0bGFiOmdoeXQ5ZTRmdQ==
|
|
||||||
Content-Length: 0
|
|
||||||
Content-Type: application/json
|
|
||||||
Auth-Code: authinfopw
|
|
||||||
```
|
|
||||||
|
|
||||||
Please note that domain transfer/authorisation code must be placed in header - *Auth-Code*
|
|
||||||
|
|
||||||
#### Response
|
|
||||||
```
|
|
||||||
HTTP/1.1 200 OK
|
|
||||||
Cache-Control: max-age=0, private, must-revalidate
|
|
||||||
Content-Type: application/json
|
|
||||||
{
|
|
||||||
"code": 1000,
|
|
||||||
"message": "Command completed successfully",
|
|
||||||
"data": {
|
|
||||||
"domain":"ee-test.ee",
|
|
||||||
"registrant":{
|
|
||||||
"code":"EE:R1",
|
|
||||||
"name":"Registrant",
|
|
||||||
"ident":"17612535",
|
|
||||||
"ident_type":"org",
|
|
||||||
"ident_country_code":"EE",
|
|
||||||
"phone":"+372.1234567",
|
|
||||||
"email":"registrant@cache.ee",
|
|
||||||
"street":"Businesstreet 1",
|
|
||||||
"city":"Tallinn",
|
|
||||||
"zip":"10101",
|
|
||||||
"country_code":"EE",
|
|
||||||
"statuses":[
|
|
||||||
"ok",
|
|
||||||
"linked"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"admin_contacts":[
|
|
||||||
{
|
|
||||||
"code":"EE:A1",
|
|
||||||
"name":"Admin Contact",
|
|
||||||
"ident":"17612535376",
|
|
||||||
"ident_type":"priv",
|
|
||||||
"ident_country_code":"EE",
|
|
||||||
"phone":"+372.7654321",
|
|
||||||
"email":"admin@cache.ee",
|
|
||||||
"street":"Adminstreet 2",
|
|
||||||
"city":"Tallinn",
|
|
||||||
"zip":"12345",
|
|
||||||
"country_code":"EE",
|
|
||||||
"statuses":[
|
|
||||||
"ok",
|
|
||||||
"linked"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"tech_contacts":[
|
|
||||||
{
|
|
||||||
"code":"EE:T1",
|
|
||||||
"name":"Tech Contact",
|
|
||||||
"ident":"17612536",
|
|
||||||
"ident_type":"org",
|
|
||||||
"ident_country_code":"EE",
|
|
||||||
"phone":"+372.7654321",
|
|
||||||
"email":"tech@cache.ee",
|
|
||||||
"street":"Techstreet 1",
|
|
||||||
"city":"Tallinn",
|
|
||||||
"zip":"12345",
|
|
||||||
"country_code":"EE",
|
|
||||||
"statuses":[
|
|
||||||
"ok",
|
|
||||||
"linked"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
|
@ -1,30 +0,0 @@
|
||||||
# Tech domain contacts
|
|
||||||
|
|
||||||
## PATCH https://repp.internet.ee/v1/domains/contacts
|
|
||||||
Replaces technical domain contacts of the current registrar.
|
|
||||||
|
|
||||||
### Example request
|
|
||||||
```
|
|
||||||
PATCH /repp/v1/domains/contacts HTTP/1.1
|
|
||||||
Accept: application/json
|
|
||||||
Content-Type: application/json
|
|
||||||
Authorization: Basic dGVzdDp0ZXN0dGVzdA==
|
|
||||||
|
|
||||||
{
|
|
||||||
"current_contact_id": "ATSAA:749AA80F",
|
|
||||||
"new_contact_id": "ATSAA:E36957D7"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
### Example response
|
|
||||||
```
|
|
||||||
{
|
|
||||||
"code": 1000,
|
|
||||||
"message": "Command completed successfully",
|
|
||||||
"data": {
|
|
||||||
"affected_domains": [
|
|
||||||
"private.ee",
|
|
||||||
],
|
|
||||||
"skipped_domains": []
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
|
@ -1,86 +0,0 @@
|
||||||
# Domain transfers
|
|
||||||
|
|
||||||
## POST /repp/v1/domains/transfer
|
|
||||||
Transfers domains.
|
|
||||||
|
|
||||||
#### Request
|
|
||||||
```
|
|
||||||
POST /repp/v1/domains/transfer
|
|
||||||
Accept: application/json
|
|
||||||
Content-Type: application/json
|
|
||||||
Authorization: Basic dGVzdDp0ZXN0dGVzdA==
|
|
||||||
|
|
||||||
{
|
|
||||||
"data": {
|
|
||||||
"domain_transfers": [
|
|
||||||
{
|
|
||||||
"domain_name":"example.com",
|
|
||||||
"transferCode":"63e7"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"domain_name":"example.org",
|
|
||||||
"transferCode":"15f9"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Response on success
|
|
||||||
```
|
|
||||||
HTTP/1.1 200
|
|
||||||
Content-Type: application/json
|
|
||||||
{
|
|
||||||
"code": 1000,
|
|
||||||
"message": "Command completed successfully",
|
|
||||||
"data": {
|
|
||||||
"success": [
|
|
||||||
{
|
|
||||||
"type": "domain_transfer",
|
|
||||||
"domain_name": "example.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "domain_transfer",
|
|
||||||
"domain_name": "example.org"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"failed": []
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
#### Response on failure
|
|
||||||
```
|
|
||||||
HTTP/1.1 400
|
|
||||||
Content-Type: application/json
|
|
||||||
{
|
|
||||||
"code": 1000,
|
|
||||||
"message": "Command completed successfully",
|
|
||||||
"data": {
|
|
||||||
"success": [],
|
|
||||||
"failed": [
|
|
||||||
{
|
|
||||||
"type": "domain_transfer",
|
|
||||||
"domain_name": "example.com",
|
|
||||||
"errors": [
|
|
||||||
{
|
|
||||||
"code": "2202",
|
|
||||||
"msg": "Invalid authorization information"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "domain_transfer",
|
|
||||||
"domain_name": "example.org",
|
|
||||||
"errors": [
|
|
||||||
{
|
|
||||||
"code": "2304",
|
|
||||||
"msg": "Object status prohibits operation"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
|
@ -1,63 +0,0 @@
|
||||||
# Nameservers
|
|
||||||
|
|
||||||
## PUT /repp/v1/registrar/nameservers
|
|
||||||
Replaces all name servers of current registrar domains.
|
|
||||||
|
|
||||||
#### Request
|
|
||||||
```
|
|
||||||
PUT /repp/v1/registrar/nameservers
|
|
||||||
Accept: application/json
|
|
||||||
Content-Type: application/json
|
|
||||||
Authorization: Basic dGVzdDp0ZXN0dGVzdA==
|
|
||||||
{
|
|
||||||
"data": {
|
|
||||||
"type": "nameserver",
|
|
||||||
"id": "ns1.example.com",
|
|
||||||
"attributes": {
|
|
||||||
"hostname": "new-ns1.example.com",
|
|
||||||
"ipv4": ["192.0.2.1", "192.0.2.2"],
|
|
||||||
"ipv6": ["2001:db8::1", "2001:db8::2"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Response on success
|
|
||||||
```
|
|
||||||
HTTP/1.1 200
|
|
||||||
Content-Type: application/json
|
|
||||||
{
|
|
||||||
"code": 1000,
|
|
||||||
"message": "Command completed successfully",
|
|
||||||
"data": {
|
|
||||||
"type": "nameserver",
|
|
||||||
"id": "new-ns1.example.com",
|
|
||||||
"attributes": {
|
|
||||||
"hostname": "new-ns1.example.com",
|
|
||||||
"ipv4": [
|
|
||||||
"192.0.2.1",
|
|
||||||
"192.0.2.2"
|
|
||||||
],
|
|
||||||
"ipv6": [
|
|
||||||
"2001:db8::1",
|
|
||||||
"2001:db8::2"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"affected_domains": [
|
|
||||||
"private.ee"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Response on failure
|
|
||||||
```
|
|
||||||
HTTP/1.1 400
|
|
||||||
Content-Type: application/json
|
|
||||||
|
|
||||||
{
|
|
||||||
"code": 2005,
|
|
||||||
"message": "IPv4 is invalid [ipv4]",
|
|
||||||
"data": {}
|
|
||||||
}
|
|
||||||
```
|
|
|
@ -1,100 +0,0 @@
|
||||||
## GET /repp/v1/retained_domains
|
|
||||||
|
|
||||||
Return a list of disputed, reserved and blocked domains, along with total count.
|
|
||||||
You can filter them by type of the domain, which can be: `reserved`, `blocked`
|
|
||||||
or `disputed`.
|
|
||||||
|
|
||||||
NB! A domain name can be both `disputed` and `reserved` at the same time, and it
|
|
||||||
will appear on the list as two separate objects.
|
|
||||||
|
|
||||||
In contrast with other endpoints in REPP, this one is publicly available for
|
|
||||||
anyone without authentication.
|
|
||||||
|
|
||||||
#### Parameters
|
|
||||||
|
|
||||||
| Field name | Required | Type | Allowed values | Description |
|
|
||||||
| ---------- | -------- | ---- | -------------- | ----------- |
|
|
||||||
| type | false | string | ["reserved", "blocked", "disputed"] | Type of domains to show |
|
|
||||||
|
|
||||||
|
|
||||||
#### Request
|
|
||||||
|
|
||||||
```
|
|
||||||
GET /repp/v1/retained_domains?type=reserved HTTP/1.1
|
|
||||||
Accept: application/json
|
|
||||||
User-Agent: curl/7.64.1
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Response
|
|
||||||
|
|
||||||
```
|
|
||||||
HTTP/1.1 200 OK
|
|
||||||
Date: Fri, 15 May 2020 11:30:07 GMT
|
|
||||||
Content-Type: application/json; charset=utf-8
|
|
||||||
ETag: W/"a905b531243a6b0be42beb9d6ce60619"
|
|
||||||
Cache-Control: max-age=0, private, must-revalidate
|
|
||||||
Transfer-Encoding: chunked
|
|
||||||
|
|
||||||
{
|
|
||||||
"count": 1,
|
|
||||||
"domains": [
|
|
||||||
{
|
|
||||||
"name": "reserved.test",
|
|
||||||
"status": "reserved",
|
|
||||||
"punycode_name": "reserved.test"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
After you have made the first request, you can save the ETag header, and
|
|
||||||
send it as If-None-Match in the subsequent request for cache validation.
|
|
||||||
Due to the fact that the lists are not changing frequently and are quite long,
|
|
||||||
it is recommended that you take advantage of ETag cache.
|
|
||||||
|
|
||||||
ETag key values depend on the request parameters. A request for only blocked
|
|
||||||
domains returns different cache key than request for all domains.
|
|
||||||
|
|
||||||
### Cache Request
|
|
||||||
|
|
||||||
```
|
|
||||||
GET /repp/v1/retained_domains?type=reserved HTTP/1.1
|
|
||||||
Accept: application/json
|
|
||||||
User-Agent: curl/7.64.1
|
|
||||||
If-None-Match: W/"a905b531243a6b0be42beb9d6ce60619"
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Cache hit response
|
|
||||||
|
|
||||||
Response with no body and status 304 is sent in case the list have not changed.
|
|
||||||
|
|
||||||
```
|
|
||||||
HTTP/1.1 304 Not Modified
|
|
||||||
Date: Fri, 15 May 2020 11:34:25 GMT
|
|
||||||
ETag: W/"a905b531243a6b0be42beb9d6ce60619"
|
|
||||||
Cache-Control: max-age=0, private, must-revalidate
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Cache miss response
|
|
||||||
|
|
||||||
Standard 200 response (with the current complete list) is sent when the list have changed since last requested.
|
|
||||||
|
|
||||||
|
|
||||||
```
|
|
||||||
HTTP/1.1 200 OK
|
|
||||||
Date: Fri, 15 May 2020 11:30:07 GMT
|
|
||||||
Content-Type: application/json; charset=utf-8
|
|
||||||
ETag: W/"a905b531243a6b0be42beb9d6ce60619"
|
|
||||||
Transfer-Encoding: chunked
|
|
||||||
|
|
||||||
{
|
|
||||||
"count": 1,
|
|
||||||
"domains": [
|
|
||||||
{
|
|
||||||
"name": "reserved.test",
|
|
||||||
"status": "reserved",
|
|
||||||
"punycode_name": "reserved.test"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
```
|
|
|
@ -1,24 +1,3 @@
|
||||||
# REPP integration specification
|
# REPP integration specification
|
||||||
|
|
||||||
REPP uses HTTP/1.1 protocol (http://tools.ietf.org/html/rfc2616) and
|
REST EPP API documentation is available on a [REPP GitHub page](https://internetee.github.io/repp-apidoc/).
|
||||||
Basic Authentication (http://tools.ietf.org/html/rfc2617#section-2) using
|
|
||||||
Secure Transport (https://tools.ietf.org/html/rfc5246) with certificate and key (https://tools.ietf.org/html/rfc5280).
|
|
||||||
|
|
||||||
Credentials and certificate are issued by EIS (in an exchange for desired API username, CSR and IP).
|
|
||||||
|
|
||||||
To quickly test the API, use curl:
|
|
||||||
|
|
||||||
curl -q -k --cert user.crt.pem --key user.key.pem https://TBA/repp/v1/accounts/balance -u username:password
|
|
||||||
|
|
||||||
Test API endpoint: https://testepp.internet.ee/repp/v1
|
|
||||||
Production API endpoint: TBA
|
|
||||||
|
|
||||||
Main communication specification through Restful EPP (REPP):
|
|
||||||
|
|
||||||
[Contact related functions](repp/v1/contact.md)
|
|
||||||
[Domain related functions](repp/v1/domain.md)
|
|
||||||
[Domain transfers](repp/v1/domain_transfers.md)
|
|
||||||
[Account related functions](repp/v1/account.md)
|
|
||||||
[Nameservers](repp/v1/nameservers.md)
|
|
||||||
[Retained domains](repp/v1/retained_domains.md)
|
|
||||||
[Auctions](repp/v1/auctions.md)
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue