Overview

Welcome to the 4b42 API! Our API allows you to easily access your 4b42 account, get information about your products.

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
fieldtypedescriptionvalue
customerNumberString 

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
fieldtypedescriptionvalue
descriptionStringcompany name or Real- and Firstname for persons.
streetoptionalStringstreet and street number
zipcodeoptionalNumberPostal code
cityoptionalStringCity
stateoptionalStringState
countryoptionalStringCountry

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
fieldtypedescriptionvalue
customerNumberString 
descriptionStringcompany name or Real- and Firstname for persons.
streetoptionalStringstreet and street number
zipcodeoptionalNumberPostal code
cityoptionalStringCity
stateoptionalStringState
countryoptionalStringCountry

DELETE Customer

Remove a Customer

DELETE /v1/customer/{customerNumber}
true
Parameter
fieldtypedescriptionvalue
customerNumberString 

customer/group

GET Groups

List all groups of current customer

GET /v1/customer/group/{customerNumber}
[]
Parameter
fieldtypedescriptionvalue
customerNumberString 

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
fieldtypedescriptionvalue
customerNumberString 
groupNameString 

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
fieldtypedescriptionvalue
customerNumberString 
nameStringName 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
fieldtypedescriptionvalue
customerNumberString 
groupNameString 
membersStringUser and group dn to be added to the group

DELETE Group

Remove a specified user

DELETE /v1/customer/group/{customerNumber}/{groupName}
true
Parameter
fieldtypedescriptionvalue
customerNumberString 
groupNameString 

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
fieldtypedescriptionvalue
customerNumberString 

PUT Storage

Set storage quota size

PUT /v1/customer/storage/{customerNumber}
true
Parameter
fieldtypedescriptionvalue
customerNumberString 
sizeStringQuota 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
fieldtypedescriptionvalue
customerNumberString 

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
fieldtypedescriptionvalue
customerNumberString 
suffixStringName of domain used as upn-suffix

DELETE Suffix

Remove a specified user

DELETE /v1/customer/suffix/{suffix}
true
Parameter
fieldtypedescriptionvalue
suffixString 

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
fieldtypedescriptionvalue
customerNumberString 

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
fieldtypedescriptionvalue
userIdString 

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
fieldtypedescriptionvalue
customerNumberString 
lastnameStringLastname
firstnameStringFirstname
upnoptionalStringUser Principal Name
passwordoptionalStringPasword, if empty password will be generated

PUT User

Update details of a customer

PUT /v1/customer/user/{userId}
[]
Parameter
fieldtypedescriptionvalue
userIdString 
lastnameoptionalStringLastname
firstnameoptionalStringFirstname
upnoptionalStringUser Principal Name (like email max@sample.com)
passwordoptionalStringPasword

DELETE User

Remove a specified user

DELETE /v1/customer/user/{userId}
true
Parameter
fieldtypedescriptionvalue
userIdString 

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
fieldtypedescriptionvalue
customerNumberString 

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
fieldtypedescriptionvalue
customerNumberString 
categoryString 

POST Manage

cancellation of product

POST /v1/manage/{productid}/cancellation
[]
Parameter
fieldtypedescriptionvalue
productidString 

DELETE Manage

Cancel an existing product

DELETE /v1/manage/{productid}/cancellation
[]
Parameter
fieldtypedescriptionvalue
productidString 

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
fieldtypedescriptionvalue
productidString 

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
fieldtypedescriptionvalue
productidString 
zoneString 

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
fieldtypedescriptionvalue
productidString 

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
fieldtypedescriptionvalue
productidString 
recordString 

POST Record

Create new dns record

POST /v1/manage/bind/{productid}/record/{zone}
"5aaa93479e3f1"
Parameter
fieldtypedescriptionvalue
productidString 
zoneString 
destStringdestination ip-address, hostname or text
hostStringsource name of record, like @, www, mail
typeStringrecord type, like A, AAAA, CNAME, MX, SRV, TXT
passoptionalStringpassword for record, can be used for dyndns update
portoptionalNumberport number, like 443 used in SRV records
prioptionalNumberpriority number, used in MX records
ttloptionalNumberoverride the default zone ttl
weightoptionalNumberset 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
fieldtypedescriptionvalue
productidString 
recordString 
destStringdestination ip-address, hostname or text
hostStringsource name of record, like @, www, mail
typeStringrecord type, like A, AAAA, CNAME, MX, SRV, TXT
passoptionalStringpassword for record, can be used for dyndns update
portoptionalNumberport number, like 443 used in SRV records
prioptionalNumberpriority number, used in MX records
ttloptionalNumberoverride the default zone ttl
weightoptionalNumberset weight, used in SRV records

DELETE Record

Remove a specified dns record

DELETE /v1/manage/bind/{productid}/record/{record}
true
Parameter
fieldtypedescriptionvalue
productidString 
recordString 

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
fieldtypedescriptionvalue
productidString 

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
fieldtypedescriptionvalue
productidString 
zoneString 

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
fieldtypedescriptionvalue
productidString 
nameStringName of zone or domainname
dnssecoptionalBoolenable or disable dnssec, default 0
expireoptionalNumberset expire time, default 3600000
hostmasteroptionalStringset hostmaster email address
refreshoptionalNumberset refresh time, default 86400
retryoptionalNumberset retry time, default 7200
ttloptionalNumberset ttl, default 172800

PUT Zone

Update dns zone details, returns updated fields

PUT /v1/manage/bind/{productid}/zone/{zone}
{
    "hostmaster": "hostmaster.4b42.com"
}
Parameter
fieldtypedescriptionvalue
productidString 
zoneString 
dnssecoptionalBoolenable or disable dnssec, default 0
expireoptionalNumberset expire time, default 3600000
hostmasteroptionalStringset hostmaster email address
refreshoptionalNumberset refresh time, default 86400
retryoptionalNumberset retry time, default 7200
ttloptionalNumberset ttl, default 172800

DELETE Zone

Remove a specified dns zone

DELETE /v1/manage/bind/{productid}/zone/{zone}
true
Parameter
fieldtypedescriptionvalue
productidString 
zoneString 

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
fieldtypedescriptionvalue
productidString 

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
fieldtypedescriptionvalue
productidString 

GET Container

Details of docker container

GET /v1/manage/docker/{productid}/container/{containerId}
[]
Parameter
fieldtypedescriptionvalue
productidString 
containerIdString 

POST Container

Creates a new docker container

POST /v1/manage/docker/{productid}
[]
Parameter
fieldtypedescriptionvalue
productidString 
templateStringspecifies the docker image
hostnameoptionalStringspecifies 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
fieldtypedescriptionvalue
productidString 

POST Network

Create new docker network

POST /v1/manage/docker/{productid}/network
true
Parameter
fieldtypedescriptionvalue
productidString 
nameStringspecifies the docker network name (like dmz,lan,etc.)

DELETE Network

Remove docker network

DELETE /v1/manage/docker/{productid}/network/{networkid}
"bb5a761ab694"
Parameter
fieldtypedescriptionvalue
productidString 
networkidString 

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
fieldtypedescriptionvalue
productidString 

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
fieldtypedescriptionvalue
productidString 

GET Certificate

List details of selected certificate

GET /v1/manage/letsencrypt/{productid}/certificate/{certificate}
null
Parameter
fieldtypedescriptionvalue
productidString 
certificateString 

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
fieldtypedescriptionvalue
productidString 
mailStringE-Mail Address
basenameStringbasename used for the certificate
domainsoptionalStringdomains 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
fieldtypedescriptionvalue
productidString 
dnssecoptionalBoolenable or disable dnssec, default 0
expireoptionalNumberset expire time, default 3600000
hostmasteroptionalStringset hostmaster email address
refreshoptionalNumberset refresh time, default 86400
retryoptionalNumberset retry time, default 7200
ttloptionalNumberset ttl, default 172800

DELETE Zone

Revoke existing certificate

DELETE /v1/manage/letsencrypt/{productid}
true
Parameter
fieldtypedescriptionvalue
productidString 

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
fieldtypedescriptionvalue
orderidString 

POST bind

Order a Domain Name System, if successful returns the product id

POST /v1/order/{orderId}/bind
123
Parameter
fieldtypedescriptionvalue
orderIdString 
customerNumberoptionalStringspecifies the customer number, if empty use current or token owner customer number.
locationsoptionalStringtwo letter country code, if empty first element will be used.
zonesoptionalNumberNumber of Zones to order, if empty default or min value will be used.
recordsoptionalNumberNumber 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
fieldtypedescriptionvalue
orderIdString 
customerNumberoptionalStringspecifies 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
fieldtypedescriptionvalue
orderIdString 
customerNumberoptionalStringspecifies 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
fieldtypedescriptionvalue
datacenterString 

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
fieldtypedescriptionvalue
IP-AddressString 

tools/network/irr

GET irr

returns irr filter list

GET /v1/tools/network/irr/{VERSION}/{ASN}/{TYPE}
[]
Parameter
fieldtypedescriptionvalue
VERSIONString 
ASNString 
TYPEString 

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
fieldtypedescriptionvalue
IP-AddressString 

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
fieldtypedescriptionvalue
MAC-AddressString 

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
fieldtypedescriptionvalue
IP-AddressString 

tools/nextcloud

GET Latest Release

List latest available nextcloud release.

GET /v1/tools/nextcloud/latest
"12.0.4"

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
fieldtypedescriptionvalue
categoryString 

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
fieldtypedescriptionvalue
valueStringDomain or ip-address
categoryStringCategory (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"
]