Dropto · Schema
SiteDomainResponse
One custom domain of a site, and what the customer still has to do about it.
HostingArtificial IntelligenceStatic SitesDeveloper ToolsCloud
Properties
| Name | Type | Description |
|---|---|---|
| bareDomain | nullstring | The bare domain this `www` hostname sits directly on, or null when it is not a `www` hostname or sits on something else. What the dashboard needs to offer "send example.com here too": a bare domain ca |
| certificateReady | boolean | Whether the certificate has been issued, which is what says the DCV records are done rather than missing. Sent because the provider stops returning those records the moment the certificate exists, inc |
| cnameTarget | string | What the customer points their hostname at, once both validations pass. Served rather than hardcoded in the frontend for the reason every other piece of configuration is: a customer told the wrong tar |
| createdAt | string | When the customer asked for the hostname. |
| dcvTxtName | nullstring | Name of the certificate validation TXT records, or null once none is needed. |
| dcvTxtValues | array | Values of the certificate validation TXT records, or empty once none is needed. Several under one name: the certificate is issued as a pack and each member is validated separately, so the customer has |
| dnsProvider | string | Who serves DNS for the hostname, as the lowercase name of DnsProvider, and therefore which order the dashboard has to ask for the records in. |
| hostname | string | The hostname, normalized. |
| id | string | ULID of the domain row, used to remove or re-check it. |
| ownershipTxtName | nullstring | Name of the ownership TXT record, or null once it is no longer needed. |
| ownershipTxtValue | nullstring | Value of the ownership TXT record, or null for the same reason. |
| prevalidationUnavailable | boolean | Whether the customer asked for the no-gap path and could not have it, because the certificate provider will not pre-validate a hostname whose zone it is already authoritative for — which is what DnsPr |
| status | string | Where it is between being asked for and serving, as the lowercase name of SiteDomainStatus. |
| validation | string | How the certificate is being proven, as the lowercase name of CertificateValidation, and therefore how many records to show. `"http"` is one CNAME and nothing else. `"txt"` is the no-gap path a custom |
| verificationErrors | array | Why the certificate provider has not activated the hostname, in its words, or empty when it has nothing to say. |
| verifiedAt | nullstring | When both validations first passed, or null while still pending. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/dropto-run/json-schema/dropto-run-site-domain-response-schema.json",
"title": "SiteDomainResponse",
"description": "One custom domain of a site, and what the customer still has to do about it.",
"x-generated": "2026-11-06",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/dropto-run-openapi.json#/components/schemas/SiteDomainResponse",
"properties": {
"bareDomain": {
"description": "The bare domain this `www` hostname sits directly on, or null when it is not a `www`\nhostname or sits on something else.\n\nWhat the dashboard needs to offer \"send example.com here too\": a bare domain cannot point at this\nplatform, so the customer redirects it to the `www` name at their DNS provider. Read from the\nzone the nameserver lookup found when the domain was added, which is what makes\n`www.example.com.vn` answer `example.com.vn`; a row added before that was recorded falls back\nto the two-label case.",
"type": [
"null",
"string"
]
},
"certificateReady": {
"description": "Whether the certificate has been issued, which is what says the DCV records are done rather than\nmissing.\n\nSent because the provider stops returning those records the moment the certificate exists, including\nwhen it validated over HTTP without the customer adding anything. Without this the dashboard reads an\nempty list as \"not issued yet\" and the rows vanish from under somebody who is still copying them.",
"type": "boolean"
},
"cnameTarget": {
"description": "What the customer points their hostname at, once both validations pass. Served rather than hardcoded\nin the frontend for the reason every other piece of configuration is: a customer told the wrong\ntarget gets a hostname that validates and then never serves.",
"type": "string"
},
"createdAt": {
"description": "When the customer asked for the hostname.",
"format": "date-time",
"type": "string"
},
"dcvTxtName": {
"description": "Name of the certificate validation TXT records, or null once none is needed.",
"type": [
"null",
"string"
]
},
"dcvTxtValues": {
"description": "Values of the certificate validation TXT records, or empty once none is needed.\n\nSeveral under one name: the certificate is issued as a pack and each member is validated\nseparately, so the customer has more than one record to add and adding one of them satisfies nothing.",
"items": {
"type": "string"
},
"type": "array"
},
"dnsProvider": {
"description": "Who serves DNS for the hostname, as the lowercase name of DnsProvider, and\ntherefore which order the dashboard has to ask for the records in.",
"type": "string"
},
"hostname": {
"description": "The hostname, normalized.",
"type": "string"
},
"id": {
"description": "ULID of the domain row, used to remove or re-check it.",
"type": "string"
},
"ownershipTxtName": {
"description": "Name of the ownership TXT record, or null once it is no longer needed.",
"type": [
"null",
"string"
]
},
"ownershipTxtValue": {
"description": "Value of the ownership TXT record, or null for the same reason.",
"type": [
"null",
"string"
]
},
"prevalidationUnavailable": {
"description": "Whether the customer asked for the no-gap path and could not have it, because the certificate\nprovider will not pre-validate a hostname whose zone it is already authoritative for — which is what\nDnsProvider reports when the customer's own DNS sits with the same provider.\n\nSent so the dashboard can say so. The override is right — the path they asked for cannot complete\nand the one they got does — but a customer who ticked the box to protect a live site and is told\nnothing will point their DNS here believing there is no gap, and learn otherwise from their own\nvisitors.",
"type": "boolean"
},
"status": {
"description": "Where it is between being asked for and serving, as the lowercase name of\nSiteDomainStatus.",
"type": "string"
},
"validation": {
"description": "How the certificate is being proven, as the lowercase name of\nCertificateValidation, and therefore how many records to show.\n\n`\"http\"` is one CNAME and nothing else. `\"txt\"` is the no-gap path a customer asked for\nbecause their hostname is already serving, and carries the record pairs above. Sent rather than\ninferred from those pairs being empty, which is what an `\"http\"` row and a finished\n`\"txt\"` row would otherwise look like alike.",
"type": "string"
},
"verificationErrors": {
"description": "Why the certificate provider has not activated the hostname, in its words, or empty when it has\nnothing to say.",
"items": {
"type": "string"
},
"type": "array"
},
"verifiedAt": {
"description": "When both validations first passed, or null while still pending.",
"format": "date-time",
"type": [
"null",
"string"
]
}
},
"required": [
"id",
"hostname",
"status",
"ownershipTxtName",
"ownershipTxtValue",
"dcvTxtName",
"dcvTxtValues",
"cnameTarget",
"dnsProvider",
"validation",
"prevalidationUnavailable",
"verificationErrors",
"verifiedAt",
"certificateReady",
"createdAt",
"bareDomain"
],
"type": "object"
}
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/dropto-run-site-domain-response"
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.