Create website of a web hosting package

A new website (vHost) at a domain or subdomain of the package: a folder, a redirect, the website builder or an alias.

WWriteNot idempotentbetaNeeds service_webhosting
Tool
manitu_webhosting_web_vhost_createon https://mcp.manitu.de/mcp
POST
/v1/webhosting/web/vhost/createon https://api.manitu.de
Try it
Changes the account. Agents say what will happen and wait for an explicit yes before calling it.
readOnlyHint falsedestructiveHint falseidempotentHint falseopenWorldHint false

Creates a website (vHost) for a web hosting package of the manitu customer account this connection works in, by its site_id from manitu_webhosting_list, at one of the package's names - a domain or a subdomain for the web (fqdn_free_list of manitu_webhosting_web_vhost_list; a new subdomain first with manitu_webhosting_subdomain_create). type: website (shows a folder - by default /web for a domain, /web/<fqdn> for a subdomain, created if missing, with manitu's placeholder page unless website.setup_default_page is false: set it false when you write the website's own files right after (manitu_webhosting_web_file_write) - or redirects to a URL, see website), websitebuilder (made with manitu's website builder; the editor then opens with manitu_webhosting_web_vhost_websitebuilder_get) or alias (a further name of a website, alias.of required; by default it redirects there). Defaults as in the customer panel: Let's Encrypt certificate, HTTPS redirect, HSTS for a year, an alternative hostname. It takes up to an hour until it answers everywhere - DNS and browser caches may show the old state meanwhile; the name must point to manitu (DNS) for it and for the certificate. Refused with a conflict when the package allows no (more) websitebuilder (limit_reached) or cannot be changed now (not_configurable). Tell the customer the name, the type and what it will show, and ask for an explicit yes first.

site_idinteger | stringrequired

The site_id from manitu_webhosting_list - never guess one.

pattern ^[1-9][0-9]*$min 1
fqdnstringrequired

The name, in full - a domain of the package or a subdomain for the web, e.g. www.example.de; Unicode or ASCII, any case.

min length 3max length 253
typestringrequired

website, websitebuilder or alias - set does not change it; between website and alias manitu_webhosting_web_vhost_convert does, a websitebuilder stays one.

One of website websitebuilder alias
websiteobject

Only for type website: what it shows.

website.target_dirstring

Show this folder, relative to the web root - for a new website its own folder in htdocs, website_folder_template.api of manitu_webhosting_web_structure_get (e.g. /htdocs/www.example.com/; the older layout: /web/www.example.com/). Default: htdocs itself for a domain, htdocs/<fqdn> for a subdomain - pass it instead. Not together with redirect_url.

min length 1max length 255
website.redirect_urlstring

Instead of a folder: send every visitor to this URL, e.g. https://www.example.com/ - https:// is put in front when there is no scheme.

min length 1max length 255
website.create_target_dirboolean

Create target_dir if it is not there (default true); false: it must be there.

website.allow_wordpress_xmlrpcboolean

Make WordPress' XML-RPC interface reachable (default false) - only if the customer needs it: a frequent target of brute force attacks that manitu's firewall cannot block. Tell him so.

website.setup_default_pageboolean

Put manitu's placeholder page into an empty target_dir (default true). false when the website's own files follow right after (manitu_webhosting_web_file_write) - nothing to replace then.

aliasobject

Only for type alias.

alias.ofstring

The website (or websitebuilder) it belongs to, by fqdn from manitu_webhosting_web_vhost_list - required. Not an alias.

min length 3max length 253
alias.redirect_to_parentboolean

Redirect visitors to the website's name (HTTP 301), default true; false: show the same under the alias' own name.

httpsobject

Not for an alias (it has its website's). Change HSTS only if the customer knows what it means: browsers keep using HTTPS only for max_age seconds, even if the certificate is gone.

https.redirectboolean

Send http:// visitors to https:// (default true).

https.hstsobject

Default: active, max_age 31536000 (a year), include_subdomains, no preload.

https.hsts.activeboolean
https.hsts.max_ageinteger

Seconds, 300 (5 minutes) to 63072000 (2 years).

min 300max 63072000
https.hsts.include_subdomainsboolean
https.hsts.preloadboolean

Usually not recommended - needs max_age of at least 31536000 and include_subdomains.

alternative_hostnameobject

Not for an alias: a second name under vhost.manitu.de that shows the same.

alternative_hostname.activeboolean

Default true. Switched off and on again, it gets a new name.

alternative_hostname.noindexboolean

Ask search engines not to index it under this name (default false).

certificatestring

letsencrypt (free, added and renewed by manitu; the default) or none (rarely wanted). Let's Encrypt needs the domain at manitu (not while a transfer is pending - then the default is none) and an active website; it is usually there within an hour. A custom certificate is uploaded in the customer panel - here it is only kept.

One of letsencrypt none
statusstring

inactive: switch it off - the files are kept, visitors get when_inactive; no Let's Encrypt certificate is renewed meanwhile. Default active.

One of active inactive
when_inactiveobject

What visitors get while it is inactive (default: response hide).

when_inactive.responsestring

http_status_403, http_status_404, http_status_503 (tells search engines to come back), hide (as if there were no website) or page (one of manitu's, see page).

One of http_status_403 http_status_404 http_status_503 hide page
when_inactive.pagestring

For response page: disabled, underconstruction or maintenance (default disabled). The customer's duties (imprint, privacy information) stay his.

One of disabled underconstruction maintenance
descriptionstring | null

The customer's description, for his own overview. Left out: unchanged (set) or none (create); null or empty: none.

max length 1024
fqdnstringrequired

The name, e.g. www.example.de - a domain or subdomain of the package; what the other tools take. Unicode for an internationalized domain.

fqdn_asciistringrequired

The same name as DNS has it (xn--... for an internationalized domain).

typestringrequired

website (the customer's files from a folder, or a redirect to a URL), websitebuilder (made with manitu's website builder) or alias (a further name of a website - see alias).

One of website websitebuilder alias
statusstringrequired

inactive: switched off, the files are kept - visitors get when_inactive.

One of active inactive
when_inactiveobjectrequired

What visitors get while it is inactive.

when_inactive.responsestringrequired

An HTTP status (403, 404, 503 - 503 tells search engines to come back), hide (as if there were no website) or page (a page of manitu's, see page).

One of http_status_403 http_status_404 http_status_503 hide page
when_inactive.pagestring | nullrequired

Which page, for response page: disabled, underconstruction or maintenance.

One of disabled underconstruction maintenance null
websiteobject | nullrequired

For type website, else null.

website.target_dirstring | nullrequired

The folder shown, relative to the web root, e.g. /htdocs/www.example.com/ (the older layout: /web/...) - see manitu_webhosting_web_structure_get; null when it redirects.

website.redirect_urlstring | nullrequired

The URL every visitor is sent to - null when it shows a folder.

website.allow_wordpress_xmlrpcbooleanrequired

WordPress' XML-RPC interface reachable - off by default, a frequent target of brute force attacks that manitu's firewall cannot block.

websitebuilderobject | nullrequired

For type websitebuilder, else null. The editor opens with manitu_webhosting_web_vhost_websitebuilder_get.

websitebuilder.target_dirstringrequired

The folder manitu set for it - not to be changed.

aliasobject | nullrequired

For type alias, else null. An alias shows what its website shows, with its HTTPS settings; status, certificate and description are its own.

alias.ofstring | nullrequired

The website it belongs to (fqdn) - null only for an old alias that lost it.

alias.redirect_to_parentbooleanrequired

Visitors are redirected to the website's name (HTTP 301); false: the alias shows the same under its own name.

httpsobject | nullrequired

For a website or websitebuilder; null for an alias (its website's apply).

https.redirectbooleanrequired

Visitors coming with http:// are sent to https://.

https.hstsobjectrequired

HSTS (Strict-Transport-Security): browsers remember to use only HTTPS.

https.hsts.activebooleanrequired
https.hsts.max_ageintegerrequired

How long browsers remember it, in seconds.

https.hsts.include_subdomainsbooleanrequired
https.hsts.preloadbooleanrequired
alternative_hostnameobject | nullrequired

A second name under vhost.manitu.de that shows the same - e.g. before a domain transfer or while DNS is not there yet. Null for an alias.

alternative_hostname.activebooleanrequired
alternative_hostname.fqdnstring | nullrequired

The name, e.g. 1a2b3c4d.vhost.manitu.de - null while not active. A new one each time it is switched on.

alternative_hostname.noindexbooleanrequired

Search engines are asked not to index it under this name.

alias_listarray of string | nullrequired

Its aliases (fqdn) - null for an alias.

certificateobject | nullrequired

Its SSL certificate - null if none.

certificate.typestringrequired
One of letsencrypt custom
certificate.statusstringrequired

pending: asked for, usually issued within an hour; error: could not be issued - often the name does not point to manitu yet.

One of active pending error expired
certificate.expires_atstring | nullrequired

When it runs out (the same as manitu_webhosting_web_certificate_get) - Let's Encrypt renews in time; null while pending.

Format date-time
descriptionstring | nullrequired

What the customer wrote about it (his description), null if nothing - not its name or user name.

created_atstring | nullrequired
Format date-time

One of X-API-Key, Authorization: Bearer … - never more than one in a request. More

site_idinteger | stringrequired

The site_id from manitu_webhosting_list - never guess one.

pattern ^[1-9][0-9]*$min 1
fqdnstringrequired

The name, in full - a domain of the package or a subdomain for the web, e.g. www.example.de; Unicode or ASCII, any case.

min length 3max length 253
typestringrequired

website, websitebuilder or alias - set does not change it; between website and alias manitu_webhosting_web_vhost_convert does, a websitebuilder stays one.

One of website websitebuilder alias
websiteobject

Only for type website: what it shows.

website.target_dirstring

Show this folder, relative to the web root - for a new website its own folder in htdocs, website_folder_template.api of manitu_webhosting_web_structure_get (e.g. /htdocs/www.example.com/; the older layout: /web/www.example.com/). Default: htdocs itself for a domain, htdocs/<fqdn> for a subdomain - pass it instead. Not together with redirect_url.

min length 1max length 255
website.redirect_urlstring

Instead of a folder: send every visitor to this URL, e.g. https://www.example.com/ - https:// is put in front when there is no scheme.

min length 1max length 255
website.create_target_dirboolean

Create target_dir if it is not there (default true); false: it must be there.

website.allow_wordpress_xmlrpcboolean

Make WordPress' XML-RPC interface reachable (default false) - only if the customer needs it: a frequent target of brute force attacks that manitu's firewall cannot block. Tell him so.

website.setup_default_pageboolean

Put manitu's placeholder page into an empty target_dir (default true). false when the website's own files follow right after (manitu_webhosting_web_file_write) - nothing to replace then.

aliasobject

Only for type alias.

alias.ofstring

The website (or websitebuilder) it belongs to, by fqdn from manitu_webhosting_web_vhost_list - required. Not an alias.

min length 3max length 253
alias.redirect_to_parentboolean

Redirect visitors to the website's name (HTTP 301), default true; false: show the same under the alias' own name.

httpsobject

Not for an alias (it has its website's). Change HSTS only if the customer knows what it means: browsers keep using HTTPS only for max_age seconds, even if the certificate is gone.

https.redirectboolean

Send http:// visitors to https:// (default true).

https.hstsobject

Default: active, max_age 31536000 (a year), include_subdomains, no preload.

https.hsts.activeboolean
https.hsts.max_ageinteger

Seconds, 300 (5 minutes) to 63072000 (2 years).

min 300max 63072000
https.hsts.include_subdomainsboolean
https.hsts.preloadboolean

Usually not recommended - needs max_age of at least 31536000 and include_subdomains.

alternative_hostnameobject

Not for an alias: a second name under vhost.manitu.de that shows the same.

alternative_hostname.activeboolean

Default true. Switched off and on again, it gets a new name.

alternative_hostname.noindexboolean

Ask search engines not to index it under this name (default false).

certificatestring

letsencrypt (free, added and renewed by manitu; the default) or none (rarely wanted). Let's Encrypt needs the domain at manitu (not while a transfer is pending - then the default is none) and an active website; it is usually there within an hour. A custom certificate is uploaded in the customer panel - here it is only kept.

One of letsencrypt none
statusstring

inactive: switch it off - the files are kept, visitors get when_inactive; no Let's Encrypt certificate is renewed meanwhile. Default active.

One of active inactive
when_inactiveobject

What visitors get while it is inactive (default: response hide).

when_inactive.responsestring

http_status_403, http_status_404, http_status_503 (tells search engines to come back), hide (as if there were no website) or page (one of manitu's, see page).

One of http_status_403 http_status_404 http_status_503 hide page
when_inactive.pagestring

For response page: disabled, underconstruction or maintenance (default disabled). The customer's duties (imprint, privacy information) stay his.

One of disabled underconstruction maintenance
descriptionstring | null

The customer's description, for his own overview. Left out: unchanged (set) or none (create); null or empty: none.

max length 1024
fqdnstringrequired

The name, e.g. www.example.de - a domain or subdomain of the package; what the other tools take. Unicode for an internationalized domain.

fqdn_asciistringrequired

The same name as DNS has it (xn--... for an internationalized domain).

typestringrequired

website (the customer's files from a folder, or a redirect to a URL), websitebuilder (made with manitu's website builder) or alias (a further name of a website - see alias).

One of website websitebuilder alias
statusstringrequired

inactive: switched off, the files are kept - visitors get when_inactive.

One of active inactive
when_inactiveobjectrequired

What visitors get while it is inactive.

when_inactive.responsestringrequired

An HTTP status (403, 404, 503 - 503 tells search engines to come back), hide (as if there were no website) or page (a page of manitu's, see page).

One of http_status_403 http_status_404 http_status_503 hide page
when_inactive.pagestring | nullrequired

Which page, for response page: disabled, underconstruction or maintenance.

One of disabled underconstruction maintenance null
websiteobject | nullrequired

For type website, else null.

website.target_dirstring | nullrequired

The folder shown, relative to the web root, e.g. /htdocs/www.example.com/ (the older layout: /web/...) - see manitu_webhosting_web_structure_get; null when it redirects.

website.redirect_urlstring | nullrequired

The URL every visitor is sent to - null when it shows a folder.

website.allow_wordpress_xmlrpcbooleanrequired

WordPress' XML-RPC interface reachable - off by default, a frequent target of brute force attacks that manitu's firewall cannot block.

websitebuilderobject | nullrequired

For type websitebuilder, else null. The editor opens with manitu_webhosting_web_vhost_websitebuilder_get.

websitebuilder.target_dirstringrequired

The folder manitu set for it - not to be changed.

aliasobject | nullrequired

For type alias, else null. An alias shows what its website shows, with its HTTPS settings; status, certificate and description are its own.

alias.ofstring | nullrequired

The website it belongs to (fqdn) - null only for an old alias that lost it.

alias.redirect_to_parentbooleanrequired

Visitors are redirected to the website's name (HTTP 301); false: the alias shows the same under its own name.

httpsobject | nullrequired

For a website or websitebuilder; null for an alias (its website's apply).

https.redirectbooleanrequired

Visitors coming with http:// are sent to https://.

https.hstsobjectrequired

HSTS (Strict-Transport-Security): browsers remember to use only HTTPS.

https.hsts.activebooleanrequired
https.hsts.max_ageintegerrequired

How long browsers remember it, in seconds.

https.hsts.include_subdomainsbooleanrequired
https.hsts.preloadbooleanrequired
alternative_hostnameobject | nullrequired

A second name under vhost.manitu.de that shows the same - e.g. before a domain transfer or while DNS is not there yet. Null for an alias.

alternative_hostname.activebooleanrequired
alternative_hostname.fqdnstring | nullrequired

The name, e.g. 1a2b3c4d.vhost.manitu.de - null while not active. A new one each time it is switched on.

alternative_hostname.noindexbooleanrequired

Search engines are asked not to index it under this name.

alias_listarray of string | nullrequired

Its aliases (fqdn) - null for an alias.

certificateobject | nullrequired

Its SSL certificate - null if none.

certificate.typestringrequired
One of letsencrypt custom
certificate.statusstringrequired

pending: asked for, usually issued within an hour; error: could not be issued - often the name does not point to manitu yet.

One of active pending error expired
certificate.expires_atstring | nullrequired

When it runs out (the same as manitu_webhosting_web_certificate_get) - Let's Encrypt renews in time; null while pending.

Format date-time
descriptionstring | nullrequired

What the customer wrote about it (his description), null if nothing - not its name or user name.

created_atstring | nullrequired
Format date-time
200Success.400The request does not match the declared input schema.401No credential was presented, or it was not recognised.403The credential is not permitted to use this operation.500The server failed. Nothing about the request was wrong. Whether a change took effect is not known - check before trying it again.503The channel this operation forwards through is unavailable.