API
The netcup API in detail
Please also consider our detailed technical documentation of the API.
CCP API
The APIs in the CCP allow you to programmatically perform various actions.
Currently available API services
- DNS API
- With the DNS API you can make modifications to DNS zones of domains that are connected via our netcup nameservers, and get information about the DNS zones and records.
- Domain reselling API
- Can only be used after concluding a domain reselling contract with us
- The API allows you to register and transfer domains, create contact handles, assign handles to domains and much more.
Authentication
Applying for an API password and API keys
To use the API functions, you need an API password and an API key. You can get the necessary data in your CCP under “Master Data” and there “API”.
Generate API password
To generate the API password, please click on the “Generate API password” button. The password is generated by us, it is not possible to store your own password.
As soon as you generate a new password, you must adjust it directly in your clients. The password for the API is shown to you once in the confirmation message. If you forget this, you will need to generate a new password, because only one API password is given per customer account. So keep the password in a safe place.
Create API key
In order to be able to establish a connection with the interface, you need at least one API key. You can also create this in the CCP under “Master Data” and “API”. To do this, please confirm the conditions for using the API by clicking on the checkbox. Then you can use the “Create API Key” button to create a key for using the interface.
The API key is generated by us and is sufficiently long to ensure high security. The API key is then displayed to you and you can implement it in your clients.
You can generate multiple API keys and remove them independently of each other.
Authentication at the API
To use the API, you must authenticate yourself. Every job requires authentication with a valid session in the form of a session ID.
When using the login method, you send us
- Your customer number
- Your API key
- Your API password
You will then receive a generated session ID from us as a return value, which you need, together with the API key, to use the other methods. By using your session ID, you are authenticated to our API.
The session expires automatically after 15 minutes of inactivity. Alternatively, you can use the logout method. This leads to a direct expiration of the session.
API log
In your Customer Control Panel (CCP), you can view the most recently executed API actions in the “Domains” area under “API Log”. If you are not a domain reseller, the button will appear as soon as you have performed at least one API action.
There you will find the time, the action, the status, a short feedback, the handle or the domain to which the action refers, the used API key, as well as the time at which the message (with ackpoll) was read.
As can also be seen in the screenshot above, actions that are carried out on the same day and at the same hour, minute and second are not necessarily shown in chronological order.
By clicking on the magnifying glass to the left of the action, you are shown a long feedback, the request message and the response message. You also see the server request ID, the client request ID, the feedback number, and the message format used.
The feedback numbers are based on the usual groups of HTTP error codes:
- 2*** Success messages
- 4*** Errors generally on the customer side
- 5*** Errors generally on the server side
The following actions are logged:
- cancelDomain
- changeOwnerDomain
- createDomain
- createHandle
- deleteHandle
- getAuthcodeDomain
- transferDomain
- updateDnsRecords
- updateDnsZone
- updateDomain
- updateHandle
Technical Information
Below you will find technical information on how to use the API.
API Endpoint
The API endpoint is located at the following URI:
General Information about API Requests
- Input and output is in UTF-8.
- Domains that contain special characters such as a German umlaut must be converted to Punycode before transmission. Depending on the registrar, it may still be the case that certain special characters are not supported. You will then receive an error message.
- If the feedback from the registry changes (e.g. during a transfer from order acceptance “return receipt” to “transfer successful”, the message will be retransmitted with the new feedback during a poll, even if it has previously been read via ackpoll.
Validation
- The XSDs contained in the WSDL can be used for validation.
URI for SOAP Requests
Notes on SOAP Requests
- Please specify the parameters in a SOAP call in the client as described in the function or the WSDL.
- For example, use the SOAP Client generated by us
- We do not guarantee the client to be error-free. There are a variety of free solutions on the market that generate code from the WSDL in your preferred language.
Notes on JSON Requests
The message (payload) to the server must be via POST. A login would look like this:
{
"action":"login",
"param":{
"apikey":"xxxxxxxxxxxx",
"apipassword":"xxxx",
"customernumber":"123456"
}
}
URI for JSON Requests (REST)
Important Notes on JSON Requests
- Use the JSON URI for REST-form requests.
- The order of parameters is irrelevant in JSON requests, as the parameters are defined by key.
Technical Clients
Please note that we do not accept any liability for the functionality, stability, reliability, etc. of the following clients. These were not developed by or on behalf of netcup GmbH or tested by us. We cannot provide support for them. If you have any questions, please contact the developer of the respective client.
Some of our users have developed clients that can be used with our APIs. We appreciate the commitment of our users and would like to introduce you to the projects here. Have you also developed a client for one of our APIs and it is missing from the list below? Feel free to send us an email with a short description of your project and we will include your client.
Table of Contents
- 1 List of CCP API Clients
- 1.1 DNS API
- 1.1.1 DNS Management
- 1.1.2 Dynamic DNS
- 1.1.3 Let’s Encrypt Clients
- 1.1.4 Libraries / Interfaces
- 1.1 DNS API
List of CCP API Clients
DNS API
DNS Management
- ncdapi (inofficial netcup DNS API Client)
- A Bash client for the netcup DNS API, which allows the modification and creation of DNS records as well as the export and import of zones
- https://github.com/linux-insideDE/ncdapi
Dynamic DNS
- Dynamic DNS client for netcup DNS API
- A PHP DNS API client for dynamic DNS (dynamic DNS) with IPv6 support
- https://github.com/stecklars/dynamic-dns-netcup-api
- Own DynDNS on Netcup vServer with API
- “Netcup provides an API for queries and changes to DNS data. Lars-Sören Steck has published code on Github that can be run on clients and updates dynamic DNS entries with the API. I have bastardized the repository with my existing code into a DynDNS server for Netcup.”
- https://www.onderka.com/computer-und-netzwerk/eigener-dyndns-auf-netcup-vserver-mit-api
- Dyndns client for the netcup dns api written in go
- A Go DNS API client for dynamic DNS (dynamic DNS) with IPv6 support
- https://github.com/Hentra/dyndns-netcup-go
- ownDynDNS (Self-hosted dynamic DNS PHP script for FRITZ!Box and netcup DNS API)
- A PHP DNS API client for dynamic DNS with FRITZ!Box routers (can be directly integrated into it)
- https://github.com/fernwerker/ownDynDNS
- netcup-ddns
- Lua DNS API client for dynamic DNS on routers with OpenWRT
- https://github.com/hazzl/netcup-ddns
- NetCupDynDNS
- C# DNS API client for dynamic DNS (dynamic DNS) with IPv6 support
- https://github.com/DjNemas/NetCupDynDNS
- netcup-ddns-for-mikrotik
- This Script is for using the netcup API for DynDNS on Mikrotik Routers
- https://github.com/toscdesign/netcup-ddns-for-mikrotik
Let’s Encrypt Clients
- ACME-DNS-NC
- A helper script for various Let’s Encrypt clients (e.g., GetSSL and acme.sh) to automate the dns-01 Challenge (DNS API)
- https://github.com/froonix/acme-dns-nc
- certbot-dns-netcup
- netcup DNS Authenticator plugin for certbot
- https://github.com/coldfix/certbot-dns-netcup
Libraries / Interfaces
- netcup_dns module
- Add netcup_dns module (Manage DNS records hosted by netcup)
- https://github.com/ansible/ansible/pull/44063
- nc_dnsapi
- A simple API wrapper for the netcup DNS API
- https://pypi.org/project/nc-dnsapi/
- dnssync_nc
- dnssync_nc is a Python package that can interface with the (public, non-reseller) DNS API of the ISP netcup
- https://github.com/johndoe31415/dnssync_nc
- phpnetcuplib
- phpnetcuplib is a PHP library that can interface with the public reseller API of the ISP netcup
- https://github.com/goINPUT-IT-Solutions/phpnetcuplib
- netcup-node
- A node wrapper for the Netcup CCP API
- https://github.com/proohit/netcup-node
- https://www.npmjs.com/package/netcup-node
DNS API
The DNS functionality (DNS API) of the CCP API allows you to make modifications to DNS zones of domains which are connected via our netcup nameservers, as well as receive information about the DNS zones and records.
The functionality available is oriented, among other things, to the possibilities that are already available to you in the CCP in the “DNS” area. Extensive documentation can already be found in our wiki.
In the following, we describe the basics of using the DNS API.
Requirements
No special requirements need to be met to use the DNS API. The DNS API can be used by any customer who owns domains with us. It’s important that the nameservers of netcup are set for the domains to be edited. If you use external nameservers, we cannot provide an API for these. The DNS API is aimed at customers who already have experience with manipulating and creating DNS entries.
Please note: Invalid or incorrect DNS entries can affect the functionality of your domain.
Functions
With the DNS API you can currently:
- Log in or log out of the API
- Methods: login or logout
- Obtain information about the DNS zone of a domain
- Method: infoDnsZone
- Obtain all DNS records of a zone
- Method: infoDnsRecords
- Make changes to the DNS zone of a domain
- Method: updateDnsZone
- Make changes to the DNS records of a zone
- Method: updateDnsRecords
All changes you make via the API are also visible in the CCP, and vice versa.
API Usage
If you want to use the API’s functions, you can find the necessary information for authentication, as well as technical information for using the API under CCP API.
Domain Reselling API – netcup Wiki
With the Domain Reselling functionality (Domain Reselling API) of the CCP API, you can perform a variety of actions with domains as a domain reseller. The API allows you to register and transfer domains, create contact handles, assign domains handles, and much more.
The functionality available is oriented, among other things, to the possibilities that domain reselling already offers you in the CCP. You can refer to our respective documentation for this.
In the following, we describe the basics of using the Domain Reselling API.
Requirements
To use the Domain Reselling API, you need to meet certain requirements:
- You must be a domain reseller of netcup in order to use the Domain Reselling API: Order Reseller Level
- The Domain Reselling API is aimed at customers who have already gained experience with actions that affect domains.
- When using functions of the API, which require the indication of nameservers, it is necessary to operate at least two own nameservers. In this case, you cannot use the nameservers provided by us. If you want to use these, please carry out the necessary actions via your CCP after registration or transfer.
* For example, use the preconfigured PowerDNS image from netcup on your vServer to install nameservers yourself.
Functions
With the Domain Reselling API, you can currently:
- Log in or log out of the API
- Methods: login or logout
- Create, edit, and delete contact handles
- Methods: createHandle, updateHandle, and deleteHandle
- List all created contact handles
- Method: listallHandle
- Register and transfer domains
- Methods: createDomain and transferDomain
- List all created domains
- Method: listallDomains
- Request authcodes for domains
- Method: getAuthcodeDomain
- Cancel domains
- Method: cancelDomain
- Carry out owner changes of domains
- Method: changeOwnerDomain
- Perform domain updates (change handles and nameservers)
- Method: updateDomain
- Get information about a domain or a contact handle
- Methods: infoDomain or infoHandle
- Get the price of a specific TLD
- Method: priceTopleveldomain
- Receive feedback on carried out domain orders and mark them as read
- Methods: poll and ackpoll
All changes you make via the API are also visible in the CCP, and vice versa.
Limitations
- When executing domain orders via the API (using the createDomain / transferDomain methods):
- It is necessary to specify your own handles. Using our standard handles is not possible.
- If our standard handles are set for a domain, termination and a change of ownership of the domain can only be done via the CCP.
- Domains are always created as additional domains. It is not possible to register inclusive domains via the API.
- It is necessary to specify your own handles. Using our standard handles is not possible.
- As previously mentioned in the prerequisites, you need to specify and operate your own nameservers when using API functions that require nameserver information. You can also use our PowerDNS image on our vServers.
If you still want to use the above functionality, you can perform the desired actions via your CCP.
- Only the following actions are recorded in the logging: cancelDomain, createDomain, changeOwnerDomain, createHandle, deleteHandle, getAuthcodeDomain, transferDomain, updateDnsRecords, updateDnsZone, updateDomain, updateHandle
Use of the API
If you want to use the API features, you can find the necessary authentication information, as well as technical information on how to use the API, under CCP API.
Last update: 25/09/2023