Welcome to the 4b42 API! Our API allows you to easily access your 4b42 account, get information about your products.
Overview
What should I know before starting?
Our API is continuously being developed and improved, but we are still trying to keep it as stable as possible. We try to only have changes that are backwards compatible: usually the changes are only additions, e.g. new resources are implemented or new properties are added to existing resources. Sometimes breaking changes cannot be avoided, e.g. when a new feature requires an incompatible change to the underlying data model, all those changes will be documented in the change log.
Methods
We use the following methods for our api:
Method | Type | Meaning |
---|---|---|
post | Create | Create a new instance |
get | Read | Query/list instances |
put | Update | Update a specific instance |
delete | Delete | Delete a specific instance |
Errors
When an error is encountered you will receive an HTTP status code along with a message and error code in the body of the response. The message is intended to give a user-friendly explanation of the error while the error codes are designed to be machine readable codes that applications can use to better understand the context of the error and react appropriately.
We use the following status codes for errors:
Status Codes
Status Code | Meaning |
---|---|
200 | OK - Request successful executed. |
400 | Bad request - The request contains errors. |
401 | Unauthorized - The authentication process failed, or the access token is not valid. |
403 | Forbidden - Access to this resource is restricted for the given caller. |
404 | Not Found - The specified resource could not be found. |
405 | Method Not Allowed - An invalid method was used to access a resource. |
406 | Not Acceptable - An unsupported format was requested. |
409 | Conflict - The requested operation on the resource cannot be made due the resource state. |
500 | Internal Server Error - There was a problem with the API host server. Try again later. |
503 | Service Unavailable - API is temporarily offline for maintenance. Try again later. |
Error Codes
Error Code | Meaning |
---|---|
AUTH_REQUIRED | Authentication required, please authenticate with apikey or username or password. |
CONNCECTION_FAILED | Connection to destination failed. |
CUSTOMER_CREATE_FAILED | Failed to create customer |
DNS_CONFIG_CREATE_FAILED | Failed to create dns configuration file. |
DNS_RECORD_ALREADY_EXIST | DNS Deamon reload failed! |
DNS_RELOAD_FAILED | DNS Deamon reload failed! |
DNS_SYNC_CREATE_FAILED | Failed to synchronize dns zonefile with slave servers. |
DNS_SYNC_DELETE_FAILED | Failed to synchronize dns zonefile with slave servers. |
DNS_ZONE_CREATE_FAILED | Failed to create dns zonefile, please contact our support. |
DNS_ZONE_DELETE_FAILED | Failed to delete dns zonefile. |
DNS_ZONE_REMOVE_FAILED | Failed to remove zonefile or signed zonefiles, please contact our support. |
DNS_ZONE_SIGN_FAILED | Failed to sign dns zonefile, dnssec not enabled. |
FEATURE_LIMIT_REACHED | You reached the limit of your product feature, please upgrade your product. |
FIELDS_EMPTY | All fields are empty, you must complete at least one field. |
GROUP_DOES_NOT_EXIST | Requested group does not exist, please verify your input. |
INVALID_AUTH | No apikey or username and password used in the header. Please verify your submitted headers. |
INVALID_APIKEY | The apikey sent in the header is wrong or inactive. Please make sure your apikey are correct. |
INVALID_CUSTOMER_NUMBER | The customer number is invalid (only numbers with 8 digits) or does not exist. |
INVALID_EMAIL | Invaild E-Mail Address specified, please verify submitted domain name. |
INVALID_FQDN | Invaild FQDN, please verify submitted domain name. |
INVALID_ID | Invaild ID, please verify submitted id. |
INVALID_PARAMETER | Parameter is empty or invalid. |
INVALID_PROTOCOL | Invalid protocol specified |
INVALID_URL | URL is incorret or was not found. |
INVALID_USER_OR_PASS | Username or password are incorrect, please verify your username and password. |
METHOD_RESTRICTED | You do not have permission to use this method using the token that you supplied. |
NETWORK_CREATE_FAILED | Failed to create network |
NETWORK_DELETE_FAILED | Failed to remove network from server, please try again later. |
ORDERING_NOT_ENABLED | In order to use our API for orders, please activate this function first via our website under access. |
PATH_RESTRICTED | You do not have permission to use this path using the token that you supplied. |
PERMISSION_DENIED | You doesn't have permission to access the desired data. |
RESELLER_REQUIRED | Permissson denied, you have to be a member of a reseller group. |
SQL_INSERT_ERROR | SQL Insert Query failed, please contact our support team |
SQL_UPDATE_ERROR | SQL Update Query failed. |
SQL_DELETE_ERROR | SQL Delete Query failed. |
UPN_ALREADY_EXIST | UPN-Suffix already exist. |
UPN_CONFIG_FAILED | UPN-Suffix configuration could not be saved, please contact our support team. |
USER_DOES_NOT_EXIST | Requested user does not exist, please verify your input. |
ZONE_ALREADY_IN_USE | This zonename is already in use. |
Changelog
2018-05-17 Group functions added
Functions added to manage (create,delete,lists and modify) groups of customers.
2018-03-09 Order over API must be granted
Now orders over the API can only made, if the option was enabled. This can be made on our website under access.
2018-03-08 Order Backup added
Added backup products to API.
2018-03-03 API Authentication
Updated authentication to support multible tokens with path and method permissions.
2018-03-02 API Error Codes defined
Defined API error codes for authentication, methods and paths.
2018-01-28 Tools Blacklist added
Created functions for domain and ip-address blacklist.
2017-11-24 Customer functions added
Added function GET to list all customers and details of a customer, added POST to create new customers and DELETE to remove customers
2017-04-14 API Authentication
Added API key authentication to our api.
2017-03-27 API Structure and Overview
Created the basic API structure, overview navication and content.
Authentication
All requests to the 4b42 API must be authenticated via API key. Include your secret API key in every request you send to the API with the 4b42-KEY HTTP header.
API Key
Once you have the 4b42 apie key, you can make the request to the api. To do this, add your api key to the request header.
get curl --header "4b42-KEY:hVQ8UPC3TZOrqWe9bM1nk4m27" https://api.4b42.com/v1
To create a new API key for your project, visit the 4b42 website choose access, go to tokens, and create a new token.
customer
GET Customers
List all Customers of Reseller
GET /v1/customer
[ "00000001", "00000002", "00000011", "00000016", "00000048" ]
GET Customer
List Details of a specific customer
GET /v1/customer/{customerNumber}
{ "country": "DE", "city": "City or Location", "state": "State\/Province", "street": "Street", "name": "00000001", "description": "Company or Person Name", "zipcode": "Zipcode", "created": { "date": "2018-03-03 03:03:03.000000", "timezone_type": 3, "timezone": "UTC" }, "modified": { "date": "2018-03-03 03:03:03.000000", "timezone_type": 3, "timezone": "UTC" }, "dn": "OU=12345678,OU=Customers,DC=4b42,DC=com" }
Parameter
field | type | description | value |
---|---|---|---|
customerNumber | String |
POST Customer
Create new customer
POST /v1/customer
{ "country": "CH", "city": "Samplecity", "state": "Samplestate", "street": "Samplestreet", "name": "12345678", "description": "Demo Reseller", "zipcode": "12345", "created": { "date": "2018-03-03 03:03:03.000000", "timezone_type": 3, "timezone": "UTC" }, "modified": { "date": "2018-03-03 03:03:03.000000", "timezone_type": 3, "timezone": "UTC" }, "dn": "OU=12345678,OU=Customers,DC=4b42,DC=com" }
Parameter
field | type | description | value |
---|---|---|---|
description | String | company name or Real- and Firstname for persons. | |
streetoptional | String | street and street number | |
zipcodeoptional | Number | Postal code | |
cityoptional | String | City | |
stateoptional | String | State | |
countryoptional | String | Country |
PUT Customer
Update details of a customer
PUT /v1/customer/{customerNumber}
{ "country": "CH", "city": "Samplecity", "state": "Samplestate", "street": "Samplestreet", "name": "12345678", "description": "Demo Reseller", "zipcode": "12345", "created": { "date": "2018-03-03 03:03:03.000000", "timezone_type": 3, "timezone": "UTC" }, "modified": { "date": "2018-03-03 03:03:03.000000", "timezone_type": 3, "timezone": "UTC" }, "dn": "OU=12345678,OU=Customers,DC=4b42,DC=com" }
Parameter
field | type | description | value |
---|---|---|---|
customerNumber | String | ||
description | String | company name or Real- and Firstname for persons. | |
streetoptional | String | street and street number | |
zipcodeoptional | Number | Postal code | |
cityoptional | String | City | |
stateoptional | String | State | |
countryoptional | String | Country |
DELETE Customer
Remove a Customer
DELETE /v1/customer/{customerNumber}
true
Parameter
field | type | description | value |
---|---|---|---|
customerNumber | String |
customer/group
GET Groups
List all groups of current customer
GET /v1/customer/group/{customerNumber}
[]
Parameter
field | type | description | value |
---|---|---|---|
customerNumber | String |
GET Group
List details of selected group
GET /v1/customer/group/{customerNumber}/{groupName}
{ "name": "Test Group", "members": [ "CN=B\u00fchl\\,Kevin,OU=Users,OU=12345678,OU=Customers,DC=4b42,DC=com" ], "dn": "CN=Test Group,OU=Groups,OU=12345678,OU=Customers,DC=4b42,DC=com" }
Parameter
field | type | description | value |
---|---|---|---|
customerNumber | String | ||
groupName | String |
POST Group
Create new group
POST /v1/customer/group/{customerNumber}
{ "name": "Test Group", "dn": "CN=Test Group,OU=Groups,OU=12345678,OU=Customers,DC=4b42,DC=com" }
Parameter
field | type | description | value |
---|---|---|---|
customerNumber | String | ||
name | String | Name of group |
PUT Group
Update details of a group
PUT /v1/customer/group/{customerNumber}/{groupName}
{ "name": "Test Group", "members": [ "CN=Mustermann\\, Max,OU=Users,OU=12345678,OU=Customers,DC=4b42,DC=com" ], "dn": "CN=Test Group,OU=Groups,OU=12345678,OU=Customers,DC=4b42,DC=com" }
Parameter
field | type | description | value |
---|---|---|---|
customerNumber | String | ||
groupName | String | ||
members | String | User and group dn to be added to the group |
DELETE Group
Remove a specified user
DELETE /v1/customer/group/{customerNumber}/{groupName}
true
Parameter
field | type | description | value |
---|---|---|---|
customerNumber | String | ||
groupName | String |
customer/storage
GET Storage
Get used and maximum storage quota sizes
GET /v1/customer/storage/{customerNumber}
{ "used": 5.94, "soft": 0, "hard": 150, "unit": "GB" }
Parameter
field | type | description | value |
---|---|---|---|
customerNumber | String |
PUT Storage
Set storage quota size
PUT /v1/customer/storage/{customerNumber}
true
Parameter
field | type | description | value |
---|---|---|---|
customerNumber | String | ||
size | String | Quota size in giga bytes |
customer/suffix
GET Suffixes
List all UPN-Suffixes for user login names (firstname.realname@4b42.com)
GET /v1/customer/suffix/{customerNumber}
[ { "id": "4b42.local", "created": "2018-03-10 00:48:42" } ]
Parameter
field | type | description | value |
---|---|---|---|
customerNumber | String |
POST Suffix
Add new suffix for users user principal name for login (firstname.realname@suffix.local)
POST /v1/customer/suffix/{customerNumber}
{ "id": "4b42.local", "created": "2018-03-10 00:48:42" }
Parameter
field | type | description | value |
---|---|---|---|
customerNumber | String | ||
suffix | String | Name of domain used as upn-suffix |
DELETE Suffix
Remove a specified user
DELETE /v1/customer/suffix/{suffix}
true
Parameter
field | type | description | value |
---|---|---|---|
suffix | String |
customer/user
GET Users
List all users of current customer
GET /v1/customer/user/{customerNumber}
[ { "name": "B\u00fchl, Kevin", "lastname": "B\u00fchl", "firstname": "Kevin", "username": "12345678_1234", "upn": "12345678_1234@4b42.com", "dn": "CN=B\u00fchl\\, Kevin,OU=Users,OU=12345678,OU=Customers,DC=4b42,DC=com", "id": "12345678_1234" } ]
Parameter
field | type | description | value |
---|---|---|---|
customerNumber | String |
GET User
List details of selected user
GET /v1/customer/user/{userId}
{ "name": "Mustermann, Max", "lastname": "Mustermann", "firstname": "Max", "created": { "date": "2018-03-03 03:03:03.000000", "timezone_type": 3, "timezone": "UTC" }, "modified": { "date": "2018-03-03 03:03:03.000000", "timezone_type": 3, "timezone": "UTC" }, "dn": "CN=Mustermann\\, Max,OU=Users,OU=12345678,OU=Customers,DC=4b42,DC=com" }
Parameter
field | type | description | value |
---|---|---|---|
userId | String |
POST User
Create new user
POST /v1/customer/user/{customerNumber}
{ "lastname": "Muster", "firstname": "Andrea", "password": "SecurePassword", "customernumber": "12345678", "displayname": "Muster, Andrea", "name": "Muster, Andrea", "username": "12345678_1234", "passwordNeverExpires": true }
Parameter
field | type | description | value |
---|---|---|---|
customerNumber | String | ||
lastname | String | Lastname | |
firstname | String | Firstname | |
upnoptional | String | User Principal Name | |
passwordoptional | String | Pasword, if empty password will be generated |
PUT User
Update details of a customer
PUT /v1/customer/user/{userId}
[]
Parameter
field | type | description | value |
---|---|---|---|
userId | String | ||
lastnameoptional | String | Lastname | |
firstnameoptional | String | Firstname | |
upnoptional | String | User Principal Name (like email max@sample.com) | |
passwordoptional | String | Pasword |
DELETE User
Remove a specified user
DELETE /v1/customer/user/{userId}
true
Parameter
field | type | description | value |
---|---|---|---|
userId | String |
manage
GET Manage
Returns all existing products
GET /v1/manage
[ { "id": "1", "created": "2018-03-03 03:03:03", "description": "", "features": "{\"zones\":{\"price\":0,\"value\":\"1000\"},\"records\":{\"value\":\"unlimited\",\"price\":0},\"dnssec\":true}", "location": "CH", "name": "bind" } ]
GET Manage
Returns all existing products of a customer
GET /v1/manage/{customerNumber}
[ { "id": "1", "created": "2018-03-03 03:03:03", "description": "", "features": "{\"zones\":{\"price\":0,\"value\":\"1000\"},\"records\":{\"value\":\"unlimited\",\"price\":0},\"dnssec\":true}", "location": "CH", "name": "bind" } ]
Parameter
field | type | description | value |
---|---|---|---|
customerNumber | String |
GET Manage
Returns all existing products
GET /v1/manage/{customerNumber}/{category}
[ { "id": "1", "created": "2018-03-03 03:03:03", "description": "", "features": "{\"zones\":{\"price\":0,\"value\":\"1000\"},\"records\":{\"value\":\"unlimited\",\"price\":0},\"dnssec\":true}", "location": "CH", "name": "bind" } ]
Parameter
field | type | description | value |
---|---|---|---|
customerNumber | String | ||
category | String |
POST Manage
cancellation of product
POST /v1/manage/{productid}/cancellation
[]
Parameter
field | type | description | value |
---|---|---|---|
productid | String |
DELETE Manage
Cancel an existing product
DELETE /v1/manage/{productid}/cancellation
[]
Parameter
field | type | description | value |
---|---|---|---|
productid | String |
manage/bind
GET DNS
List all Domain Name System products
GET /v1/manage/bind
[ { "id": "1", "created": "2018-03-03 03:03:03", "description": "", "features": "{\"zones\":{\"price\":0,\"value\":\"1000\"},\"records\":{\"value\":\"unlimited\",\"price\":0},\"dnssec\":true}", "location": "CH", "name": "bind" } ]
GET DNS
List details of selected Domain Name System product
GET /v1/manage/bind/{productid}
{ "id": "1", "created": "2018-03-03 03:03:03", "description": "", "features": { "zones": { "price": 0, "value": "1000" }, "records": { "value": "unlimited", "price": 0 }, "dnssec": true }, "location": "CH", "name": "bind" }
Parameter
field | type | description | value |
---|---|---|---|
productid | String |
manage/bind/record
GET Records
List all available Domain Name System Records from specific dns zone
GET /v1/manage/bind/{productid}/record/{zone}
[ { "id": "5a11c4936ba6a", "dest": "10.48.42.61", "host": "@", "name": "@", "type": "A" }, { "id": "5a11c49b60bdc", "dest": "@", "host": "www", "name": "www", "type": "CNAME" } ]
Parameter
field | type | description | value |
---|---|---|---|
productid | String | ||
zone | String |
GET Record Types
List all available types for dns records
GET /v1/manage/bind/{productid}/record/types
[ "A", "CNAME", "PTR", "MX", "AAAA", "TXT", "SRV", "TLSA" ]
Parameter
field | type | description | value |
---|---|---|---|
productid | String |
GET Record
List details of specific dns record
GET /v1/manage/bind/{productid}/record/{record}
{ "id": "5a11c49b60bdc", "created": "0000-00-00 00:00:00", "dest": "@", "host": "www", "pass": "", "port": "", "priority": "", "updated": "0000-00-00 00:00:00", "ttl": "300", "type": "CNAME", "valid": "yes", "weight": "" }
Parameter
field | type | description | value |
---|---|---|---|
productid | String | ||
record | String |
POST Record
Create new dns record
POST /v1/manage/bind/{productid}/record/{zone}
"5aaa93479e3f1"
Parameter
field | type | description | value |
---|---|---|---|
productid | String | ||
zone | String | ||
dest | String | destination ip-address, hostname or text | |
host | String | source name of record, like @, www, mail | |
type | String | record type, like A, AAAA, CNAME, MX, SRV, TXT | |
passoptional | String | password for record, can be used for dyndns update | |
portoptional | Number | port number, like 443 used in SRV records | |
prioptional | Number | priority number, used in MX records | |
ttloptional | Number | override the default zone ttl | |
weightoptional | Number | set weight, used in SRV records |
PUT Record
Update dns record
PUT /v1/manage/bind/{productid}/record/{record}
{ "type": "A", "host": "mail", "pri": false, "weight": false, "port": false, "dest": "10.48.42.10", "ttl": false }
Parameter
field | type | description | value |
---|---|---|---|
productid | String | ||
record | String | ||
dest | String | destination ip-address, hostname or text | |
host | String | source name of record, like @, www, mail | |
type | String | record type, like A, AAAA, CNAME, MX, SRV, TXT | |
passoptional | String | password for record, can be used for dyndns update | |
portoptional | Number | port number, like 443 used in SRV records | |
prioptional | Number | priority number, used in MX records | |
ttloptional | Number | override the default zone ttl | |
weightoptional | Number | set weight, used in SRV records |
DELETE Record
Remove a specified dns record
DELETE /v1/manage/bind/{productid}/record/{record}
true
Parameter
field | type | description | value |
---|---|---|---|
productid | String | ||
record | String |
manage/bind/zone
GET Zones
List all available Domain Name System Zones
GET /v1/manage/bind/{productid}/zone
[ { "id": "4b42.com", "updated": "2018-03-03 03:03:03", "valid": "yes" }, { "id": "4b42.local", "updated": "2018-03-03 03:03:03", "valid": "yes" } ]
Parameter
field | type | description | value |
---|---|---|---|
productid | String |
GET Zone
List all available Domain Name System Zones
GET /v1/manage/bind/{productid}/zone/{zone}
{ "id": "4b42.com", "created": "2018-03-03 03:03:03", "dnssec": "0", "expire": "3600000", "hostmaster": "hostmaster.4b42.com", "refresh": "86400", "retry": "7200", "serial": "2018030301", "ttl": "172800", "updated": "2018-03-03 03:03:03", "valid": "yes" }
Parameter
field | type | description | value |
---|---|---|---|
productid | String | ||
zone | String |
POST Zone
Create new dns zone
POST /v1/manage/bind/{productid}/zone
{ "id": "4b42.local", "created": "2018-03-03 03:03:03", "dnssec": "0", "expire": "3600000", "hostmaster": "hostmaster.4b42.com", "refresh": "86400", "retry": "7200", "serial": "2018030301", "ttl": "172800", "updated": "2018-03-03 03:03:03", "valid": "yes" }
Parameter
field | type | description | value |
---|---|---|---|
productid | String | ||
name | String | Name of zone or domainname | |
dnssecoptional | Bool | enable or disable dnssec, default 0 | |
expireoptional | Number | set expire time, default 3600000 | |
hostmasteroptional | String | set hostmaster email address | |
refreshoptional | Number | set refresh time, default 86400 | |
retryoptional | Number | set retry time, default 7200 | |
ttloptional | Number | set ttl, default 172800 |
PUT Zone
Update dns zone details, returns updated fields
PUT /v1/manage/bind/{productid}/zone/{zone}
{ "hostmaster": "hostmaster.4b42.com" }
Parameter
field | type | description | value |
---|---|---|---|
productid | String | ||
zone | String | ||
dnssecoptional | Bool | enable or disable dnssec, default 0 | |
expireoptional | Number | set expire time, default 3600000 | |
hostmasteroptional | String | set hostmaster email address | |
refreshoptional | Number | set refresh time, default 86400 | |
retryoptional | Number | set retry time, default 7200 | |
ttloptional | Number | set ttl, default 172800 |
DELETE Zone
Remove a specified dns zone
DELETE /v1/manage/bind/{productid}/zone/{zone}
true
Parameter
field | type | description | value |
---|---|---|---|
productid | String | ||
zone | String |
manage/docker
GET docker
List all virtualization products
GET /v1/manage/docker
[ { "id": "3", "created": "2018-03-03 03:03:03", "description": "", "features": "{\"type\":{\"price\":0,\"value\":\"samba\"},\"size\":{\"price\":0,\"value\":\"1000\"}}", "location": "ZUR1", "name": "docker" } ]
GET docker
List details of selected virtualization product
GET /v1/manage/docker/{productid}
{ "id": "3", "created": "2018-03-03 03:03:03", "description": "", "features": { "type": { "price": 0, "value": "samba" }, "size": { "price": 0, "value": "1000" } }, "location": "ZUR1", "name": "docker" }
Parameter
field | type | description | value |
---|---|---|---|
productid | String |
manage/docker/container
GET Containers
List all available docker containers
GET /v1/manage/docker/{productid}/container
[ { "id": "cb9479427a1c", "name": "0002", "status": "Up" }, { "id": "2bfdf0c85d34", "name": "0001", "status": "Up" } ]
Parameter
field | type | description | value |
---|---|---|---|
productid | String |
GET Container
Details of docker container
GET /v1/manage/docker/{productid}/container/{containerId}
[]
Parameter
field | type | description | value |
---|---|---|---|
productid | String | ||
containerId | String |
POST Container
Creates a new docker container
POST /v1/manage/docker/{productid}
[]
Parameter
field | type | description | value |
---|---|---|---|
productid | String | ||
template | String | specifies the docker image | |
hostnameoptional | String | specifies a fqdn for the docker container |
manage/docker/network
GET Networks
List all available docker networks
GET /v1/manage/docker/{productid}/network
[ { "id": "ca4fa275c70e", "name": "dmz" } ]
Parameter
field | type | description | value |
---|---|---|---|
productid | String |
POST Network
Create new docker network
POST /v1/manage/docker/{productid}/network
true
Parameter
field | type | description | value |
---|---|---|---|
productid | String | ||
name | String | specifies the docker network name (like dmz,lan,etc.) |
DELETE Network
Remove docker network
DELETE /v1/manage/docker/{productid}/network/{networkid}
"bb5a761ab694"
Parameter
field | type | description | value |
---|---|---|---|
productid | String | ||
networkid | String |
manage/docker/template
GET Templates
List all available docker images
GET /v1/manage/docker/template
[ { "name": "4b42\/samba", "tag": "latest", "id": "87f69117f989", "created": "4 hours ago", "size": "299MB" }, { "name": "nginx", "tag": "latest", "id": "73acd1f0cfad", "created": "8 days ago", "size": "109MB" }, { "name": "debian", "tag": "latest", "id": "2b98c9851a37", "created": "8 days ago", "size": "100MB" } ]
manage/letsencrypt
GET TLS
List all Domain Name System products
GET /v1/manage/tls
[ { "id": "2", "created": "2018-03-03 03:03:03", "description": "", "features": "{\"certificates\":{\"price\":0,\"value\":1}}", "location": "ZUR1", "name": "letsencrypt" } ]
GET TLS
List details of selected Domain Name System product
GET /v1/manage/tls/{productid}
{ "id": "2", "created": "2018-03-03 03:03:03", "description": "", "features": { "certificates": { "price": 0, "value": 1 } }, "location": "EU", "name": "letsencrypt" }
Parameter
field | type | description | value |
---|---|---|---|
productid | String |
manage/letsencrypt/certificate
GET Certificates
List all certificates
GET /v1/manage/letsencrypt/{productid}/certificate
[ { "id": "5aaba71c1e442", "name": "4b42.com" }, { "id": "5aabd146c6b14", "name": "4b42.net" } ]
Parameter
field | type | description | value |
---|---|---|---|
productid | String |
GET Certificate
List details of selected certificate
GET /v1/manage/letsencrypt/{productid}/certificate/{certificate}
null
Parameter
field | type | description | value |
---|---|---|---|
productid | String | ||
certificate | String |
POST Certificate
Request new certificate
POST /v1/manage/letsencrypt/{productid}/certificate
{ "crt": "-----BEGIN CERTIFICATE-----\n4B42\n-----END CERTIFICATE-----", "key": "-----BEGIN PRIVATE KEY-----\n4b42\n-----END PRIVATE KEY-----\n" }
Parameter
field | type | description | value |
---|---|---|---|
productid | String | ||
String | E-Mail Address | ||
basename | String | basename used for the certificate | |
domainsoptional | String | domains additionally included to certificate (comma separated 4b42.com,4b42.net) |
PUT Zone
Renew existing certificate
PUT /v1/manage/letsencrypt/{productid}
{ "hostmaster": "hostmaster.4b42.com" }
Parameter
field | type | description | value |
---|---|---|---|
productid | String | ||
dnssecoptional | Bool | enable or disable dnssec, default 0 | |
expireoptional | Number | set expire time, default 3600000 | |
hostmasteroptional | String | set hostmaster email address | |
refreshoptional | Number | set refresh time, default 86400 | |
retryoptional | Number | set retry time, default 7200 | |
ttloptional | Number | set ttl, default 172800 |
DELETE Zone
Revoke existing certificate
DELETE /v1/manage/letsencrypt/{productid}
true
Parameter
field | type | description | value |
---|---|---|---|
productid | String |
order
GET Orders
Returns all available products
GET /v1/order
[ { "id": "1", "category": "bind", "name": "", "price": "0.00", "price_setup": "0.00" }, { "id": "2", "category": "letsencrypt", "name": "wildcard", "price": "0.00", "price_setup": "0.00" }, { "id": "3", "category": "docker", "name": "samba", "price": "0.00", "price_setup": "0.00" } ]
GET Order
Returns details of specific product
GET /v1/order/{orderid}
{ "id": "1", "name": "", "features": { "zones": { "min": 1, "max": 1000, "price": 0 }, "records": { "value": "unlimited", "price": 0 }, "dnssec": true }, "locations": [ "ZUR1" ], "price": "0.00", "price_setup": "0.00" }
Parameter
field | type | description | value |
---|---|---|---|
orderid | String |
POST bind
Order a Domain Name System, if successful returns the product id
POST /v1/order/{orderId}/bind
123
Parameter
field | type | description | value |
---|---|---|---|
orderId | String | ||
customerNumberoptional | String | specifies the customer number, if empty use current or token owner customer number. | |
locationsoptional | String | two letter country code, if empty first element will be used. | |
zonesoptional | Number | Number of Zones to order, if empty default or min value will be used. | |
recordsoptional | Number | Number of Records to order, if empty default or min value will be used. |
POST docker
Order a docker container, if successful returns the product id
POST /v1/order/{orderId}/docker
123
Parameter
field | type | description | value |
---|---|---|---|
orderId | String | ||
customerNumberoptional | String | specifies the customer number, if empty use current or token owner customer number. |
POST letsencrypt
Order a Transport Layer Security (TLS) Certificate, if successful returns the product id
POST /v1/order/{orderId}/letsencrypt
123
Parameter
field | type | description | value |
---|---|---|---|
orderId | String | ||
customerNumberoptional | String | specifies the customer number, if empty use current or token owner customer number. |
order/datacenter
GET Datacenters
List all 4b42 data centers and points of presence
GET /v1/order/datacenter
[ { "id": "BEA1", "country": "CA", "name": "Beauharnois 1" }, { "id": "FAL1", "country": "DE", "name": "Falkenstein 1" }, { "id": "STR1", "country": "FR", "name": "Strasbourg 1" }, { "id": "ZUR1", "country": "CH", "name": "Zurich 1" } ]
GET Datacenter
List details of specified data center
GET /v1/order/datacenter/{datacenter}
{ "id": "FAL1", "created": "2010-02-10 08:52:52", "country": "DE", "name": "Falkenstein 1" }
Parameter
field | type | description | value |
---|---|---|---|
datacenter | String |
tools/mobotix/camera
GET Releases
List of available software updates for MOBOTIX cameras.
GET /v1/tools/mobotix/camera/releases
[ "4.4.2.51.r1", "4.4.2.34", "4.4.1.56", "4.4.1.55", "4.4.0.31.r1", "4.4.0.31", "4.3.4.83", "4.3.4.66", "4.3.4.50", "4.3.2.77", "4.3.2.72", "4.3.2.68", "4.3.2.53", "4.3.2.45", "4.3.0.15" ]
tools/network/ip2long
GET ip2long
Converts a string containing an (IPv4) Internet Protocol dotted address into a long integer
GET /v1/tools/network/ip2long/{IP-Address}
4294967295
Parameter
field | type | description | value |
---|---|---|---|
IP-Address | String |
tools/network/irr
GET irr
returns irr filter list
GET /v1/tools/network/irr/{VERSION}/{ASN}/{TYPE}
[]
Parameter
field | type | description | value |
---|---|---|---|
VERSION | String | ||
ASN | String | ||
TYPE | String |
tools/network/long2ip
GET long2ip
Converts an long integer address into a string in (IPv4) Internet standard dotted format
GET /v1/tools/network/long2ip/{IP-Address}
"255.255.255.255"
Parameter
field | type | description | value |
---|---|---|---|
IP-Address | String |
tools/network/mac2vendor
GET MAC to Vendor
You can use our mac address database, to get the vendor for your device.
GET /v1/tools/network/mac2vendor/{MAC-Address}
{ "mac": "78:e3:b5:00:4b:42", "vendor": "Hewlett-Packard" }
Parameter
field | type | description | value |
---|---|---|---|
MAC-Address | String |
tools/network/whois
GET Whois
We have our own whois database, you can search for ipv4 and ipv6 addresses as follow:
GET /v1/tools/network/whois/{IP-Address}
{ "as": "15169", "city": "Mountain View", "cc": "US", "end": "134744319", "isp": "Google Inc.", "latitude": "37.386002", "longitude": "-122.083801", "netname": "LVLT-GOGL-8-8-8", "prefix": "8.8.8.0\/24", "start": "134744064", "timestamp": "1467895522", "country": "United States", "first": "8.8.8.0", "ip": "8.8.8.8", "last": "8.8.8.255", "timezone": "America\/Los_Angeles" }
Parameter
field | type | description | value |
---|---|---|---|
IP-Address | String |
tools/nextcloud
GET Releases
List all available nextcloud releases.
GET /v1/tools/nextcloud/releases
[ "9.0.50", "9.0.51", "9.0.52", "9.0.53", "9.0.54", "9.0.55", "9.0.56", "9.0.57", "9.0.58", "10.0.0", "10.0.1", "10.0.2", "10.0.3", "10.0.4", "10.0.5", "10.0.6", "11.0.0", "11.0.1", "11.0.2", "11.0.3", "11.0.4", "11.0.5", "11.0.6", "12.0.0", "12.0.1", "12.0.2", "12.0.3", "12.0.4" ]
tools/security/blacklist
GET blacklist
GET /v1/tools/security/blacklist
[ { "id": "example.com", "category": "trashmail", "created": "2018-03-03 03:03:03" }, { "id": "example.de", "category": "trashmail", "created": "2018-03-03 03:03:03" } ]
GET blacklist
GET /v1/tools/security/blacklist/{category}
[ { "id": "example.com", "category": "trashmail", "created": "2018-03-03 03:03:03" }, { "id": "example.de", "category": "trashmail", "created": "2018-03-03 03:03:03" } ]
Parameter
field | type | description | value |
---|---|---|---|
category | String |
POST blacklist
Add new blacklist entry
POST /v1/tools/security/blacklist
{ "id": "example.com", "category": "trashmail", "created": "2018-03-03 03:03:03", "ip": "127.0.0.1", "uid": "00000001_0001" }
Parameter
field | type | description | value |
---|---|---|---|
value | String | Domain or ip-address | |
category | String | Category (infected|trashmail|webscanners) |
tools/teamspeak/server
GET Latest Release
List latest available teamspeak server release.
GET /v1/tools/teamspeak/server/latest
"3.0.13.6"
GET Releases
List of available teamspeak server releases.
GET /v1/tools/teamspeak/server/releases
[ "3.0.0", "3.0.1", "3.0.2", "3.0.3", "3.0.5", "3.0.6", "3.0.6.1", "3.0.7", "3.0.7.1", "3.0.7.2", "3.0.8", "3.0.9", "3.0.10", "3.0.10.1", "3.0.10.2", "3.0.10.3", "3.0.11", "3.0.11.1", "3.0.11.2", "3.0.11.3", "3.0.11.4", "3.0.12", "3.0.12.1", "3.0.12.2", "3.0.12.3", "3.0.12.4", "3.0.13", "3.0.13.1", "3.0.13.2", "3.0.13.3", "3.0.13.4", "3.0.13.5", "3.0.13.6" ]