Properties
| Name | Type | Description |
|---|---|---|
| ip | string | An IPv4 or IPv6 address, public or private. Private and reserved ranges are accepted on every plan. Send either ip or target, not both. The address a hostname is minted with fixes its address class fo |
| target | string | A platform endpoint to follow instead of an address, for a platform that gives you a URL and no IP. We resolve it and publish ordinary A or AAAA records, then re-resolve within the target's TTL and fo |
| subdomain | string | Optional custom subdomain, on every plan. 3-63 lowercase letters, digits, and hyphens; no periods; no leading or trailing hyphen. Duplicate or retired subdomains return 409. |
| domain | string | Optional dedicated domain. Must already be assigned to the team. Omitted, one of the team's dedicated domains is chosen. |
| certificate | string | Who holds the private key, and with it who runs the ACME client. "self" means you do all of it: run an ACME client against the DNS-01 API, pick your own CA, and we never see key material. "csr" means |
| ca | string | Which certificate authority issues, for certificate: "managed" and certificate: "csr" - the modes where we run the ACME client. Sending it with "self" returns 400: you run the client there, so the CA |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/dnsmint-com/json-schema/dnsmint-com-create-hostname-request-schema.json",
"title": "CreateHostnameRequest",
"x-generated": "2026-11-05",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/_original/dnsmint-com-api-openapi.json#/components/schemas/CreateHostnameRequest",
"type": "object",
"required": [],
"properties": {
"ip": {
"type": "string",
"description": "An IPv4 or IPv6 address, public or private. Private and reserved ranges are accepted on every plan. Send either ip or target, not both. The address a hostname is minted with fixes its address class for life. A hostname keeps the address class it was minted with. Repointing within a class is free, including between A and AAAA; crossing from public to private or private to public returns 409. This blocks DNS rebinding, where one origin is public first, to deliver a payload under a trusted certificate, and private second, to read a response from inside the visitor's network. Release the hostname and mint a new one for the other class."
},
"target": {
"type": "string",
"description": "A platform endpoint to follow instead of an address, for a platform that gives you a URL and no IP. We resolve it and publish ordinary A or AAAA records, then re-resolve within the target's TTL and follow it as it moves. Send either ip or target, not both. What the target answers fixes the hostname's address class exactly as an ip would, and a target that later answers outside that class is refused and the last address stays served. A target answering both public and private addresses is refused as ambiguous."
},
"subdomain": {
"type": "string",
"description": "Optional custom subdomain, on every plan. 3-63 lowercase letters, digits, and hyphens; no periods; no leading or trailing hyphen. Duplicate or retired subdomains return 409."
},
"domain": {
"type": "string",
"description": "Optional dedicated domain. Must already be assigned to the team. Omitted, one of the team's dedicated domains is chosen."
},
"certificate": {
"type": "string",
"enum": [
"self",
"csr",
"managed"
],
"default": "self",
"description": "Who holds the private key, and with it who runs the ACME client. \"self\" means you do all of it: run an ACME client against the DNS-01 API, pick your own CA, and we never see key material. \"csr\" means you keep the key and we run the protocol: register, then POST a certificate request to /v1/hostnames/{id}/certificate. Renewal is yours there, because we hold no key to build a replacement from. \"managed\" means we generate the key, run ACME, and renew before expiry on a fresh key each time; you pull the current pair from GET /v1/hostnames/{id}/certificate. See Certificate modes."
},
"ca": {
"type": "string",
"enum": [
"letsencrypt",
"google"
],
"description": "Which certificate authority issues, for certificate: \"managed\" and certificate: \"csr\" - the modes where we run the ACME client. Sending it with \"self\" returns 400: you run the client there, so the CA is a choice you make in it. Omitted, we pick - Let's Encrypt unless it has recently rate-limited orders for your domain and another CA is configured. Renewals always return to the CA that issued, because the ACME Renewal Information identifier is only resolvable by that CA. See https://dnsmint.com/ca"
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/dnsmint-com-create-hostname-request"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.