ISNIC REPP Interface Specification
🚧 Introduction
This work is currently experimental since the EPP over RESTful Transport is still a draft.
That means things can change and break at any given time.
To get access to REPP first create a contact and add ip addresses or subnets to your access control list and request access to the REPP. If you comply with requirements ISNIC will then migrate your contact over to the sandbox environment. Next you will need to perform lost password on the sandbox. Then you can issue a REPP API-KEY for access on the sandbox. When the minimum required testing against sandbox is done you contact ISNIC again to request access to the production environment. Finally you can issue a REPP API-KEY for production access.
We are building this REPP interface to serve our resellers so please send any comments, bug reports or questions to api-support@isnic.is.
Versions
Version | Initial Release | End-of-life |
---|---|---|
https://repp.isnic.is/v1 | 2023-12-05 | TBD |
Environments
Not yet
Requirements for access
- Written contract with ISNIC or paid at least one domain registration or annual renewal fee
- Show competency in our sandbox environment by performing the operations:
Changelog
Show complete changelog.
Version | Date | Type | Description |
---|---|---|---|
0 | 2023-12-05 | add | check:domain, poll, ack |
Schemas from RFC's
See EPP documentation.Poll
curl -u "YOURNIC-IS:API_KEY" https://repp.isnic.is/v1/messages
C: GET /v1/messages HTTP/2 C: Host: repp.isnic.is C: Authorization: BasicC: Accept: */* S: content-type: application/json S: S: S: { S: "response": { S: "result": { S: "code": "1300", S: "content": { S: "msg": { S: "lang": "en", S: "content": "Command completed successfully; no messages" S: } S: } S: }, S: "trID": { S: "clTRID": "client-fd87df87df998fd7fdf", S: "svTRID": "server-liejfliejfliejflefe" S: } S: } S: }
C: GET /v1/messages HTTP/2 C: Host: repp.isnic.is C: Authorization: BasicC: Accept: application/xml S: content-type: application/xml S: S: S: <?xml version="1.0" encoding="UTF-8"?> S: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> S: <response> S: <result code="1300"> S: <msg lang="en">Command completed successfully; no messages</msg> S: </result> S: <trID> S: <clTRID>client-fd87df87df998fd7fdf</clTRID> S: <svTRID>server-liejfliejfliejflefe</svTRID> S: </trID> S: </response> S: </epp>
C: DELETE /v1/messages/29520 HTTP/2 C: Host: repp.isnic.is C: Authorization: BasicC: Accept: application/json S: content-type: application/json S: access-control-allow-origin: * S: S: S: { S: "response": { S: "result": { S: "code": "1000", S: "content": { S: "msg": { S: "lang": "en", S: "content": "Command completed successfully" S: } S: } S: }, S: "msgQ": { S: "count": "1", S: "id": "29539", S: "content": { S: "qDate": "2023-12-06T13:21:38+00:00", S: "msg": { S: "lang": "en", S: "content": "Domain created" S: } S: } S: }, S: "resData": { S: "domain:panData": { S: "domain:name": { S: "paResult": "true", S: "content": "test.is" S: }, S: "domain:paTRID": { S: "clTRID": "client-liejfleijfleijfeef", S: "svTRID": "server-ifjelifjelifjflief" S: }, S: "domain:paDate": "2023-12-06T13:21:38+00:00" S: } S: }, S: "trID": { S: "clTRID": "client-fd87df87df998fd7fdf", S: "svTRID": "server-liejfliejfliejflefe" S: } S: }, S: "ns": { S: "domain": "urn:ietf:params:xml:ns:domain-1.0" S: } S: }
Check
Domain
Note: that this function is rate limited at 7200 requests per 30 min.
No deviations as of yet, should follow standard.
curl -u "YOURNIC-IS:API_KEY" -head https://repp.isnic.is/v1/domains/idontexist123.is
C: HEAD /v1/domains/idontexist123.is HTTP/2 C: Host: repp.isnic.is C: Authorization: Basic <base64 of YOURNIC-IS:API-KEY> S: repp-check-avail: 1 S: repp-check-reason: available S: repp-result-code: 1000
curl -u "YOURNIC-IS:API_KEY" -head https://repp.isnic.is/v1/domains/isnic.is
C: HEAD /v1/domains/isnic.is HTTP/2 C: Host: repp.isnic.is C: Authorization: Basic <base64 of YOURNIC-IS:API-KEY> S: repp-check-avail: 0 S: repp-check-reason: active S: repp-result-code: 1000