Organizations

Verify domain ownership via DNS TXT

Looks up TXT at `_mudbase-verify.<hostname>` for value `mudbase-domain-verification=<token>`. On a successful verify, Mudbase begins provisioning and managing the TLS certificate for the hostname automatically. Depending on the deployment, the response may include managed edge TLS details with domain-control validation (DCV) hints for the certificate. When automated certificate provisioning is in effect, a successful verify records the certificate’s DNS requirements and status may advance to **`cname_approved`** in the same response (no staff **`approve-cname`** step). Otherwise, first success from `pending`/`failed` may move to **`cname_pending_staff`** and queue platform review as before. The **200** response may include **`dnsRecords`**, certificate status, and **`routingCnameTarget`** for the managed certificate once its requirements are provisioned.

AuthBearer (JWT)
GroupOrganizations
Rate limitSee Rate Limits
POST/api/orgs/{orgId}/projects/{projectId}/domains/{hostname}/verify-dns

SDK setup

Create a client and set credentials (JWT and/or API key) before calling the API. Match the authentication type shown above.

import { Configuration, OrganizationsApi } from 'mudbase-sdk';

const configuration = new Configuration({
  basePath: 'https://cloud.mudbase.dev',
  accessToken: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c3JfbW9yZ2FuX2RlIiwiZW1haWwiOiJtb3JnYW4uY2hlbkBub3J0aHdpbmQuZGV2IiwiZXhwIjoxODI1MTI5NjAwfQ.doc_preview_sig',
});

const organizations = new OrganizationsApi(configuration);
import { Configuration, OrganizationsApi } from 'mudbase-sdk';

const configuration = new Configuration({
  basePath: 'https://cloud.mudbase.dev',
  accessToken: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c3JfbW9yZ2FuX2RlIiwiZW1haWwiOiJtb3JnYW4uY2hlbkBub3J0aHdpbmQuZGV2IiwiZXhwIjoxODI1MTI5NjAwfQ.doc_preview_sig',
});

const organizations = new OrganizationsApi(configuration);

Example request

Call this endpoint using the client from SDK setup. Use View HTTP for a raw cURL example.

const { data: result } = await organizations.verifyOrgCustomDomainDns("org_T6QGaEAH9V", "proj_n3WS5f2hAnIY", "Kristofer Schneider-Hansen");
const { data: result } = await organizations.verifyOrgCustomDomainDns("org_T6QGaEAH9V", "proj_n3WS5f2hAnIY", "Kristofer Schneider-Hansen");

Playground

live

Test this endpoint with your own credentials. Your requests will be sent to the live API.

Use the auth endpoints to obtain a JWT.

No Request Yet

Send a request to see the full inspector

Authentication

Requires JWT
Note
Include your JWT in the Authorization: Bearer YOUR_TOKEN header (user-facing apps, RBAC). View authentication guide →

Path Parameters

NameTypeRequiredDescription
orgIdstringYes-
projectIdstringYes-
hostnamestringYes-

Responses

200TXT verified. With automated certificate provisioning, often `cname_approved` once DNS requirements are returned; otherwise may show `cname_pending_staff` or `dns_verified`. Includes `dnsTxtHost`/`dnsTxtValue`, optional managed edge TLS details, optional `dnsRecords` + certificate status when provisioning ran after this verify.
json
{
  "success": true,
  "hostname": "Loma Rutherford",
  "status": "bus override",
  "verificationToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c3JfZGVtbyJ9.sig_sample",
  "challengeHost": "pixel program",
  "expectedTxt": "bandwidth override",
  "dnsTxtHost": "application calculate",
  "dnsTxtValue": "monitor reboot",
  "edge": {
    "saasIntegrationEnabled": false,
    "skipped": false,
    "reason": "application generate",
    "customHostnameId": "Everett Stracke",
    "hostnameStatus": "Ms. Coty Raynor",
    "sslStatus": "system hack",
    "ownershipVerification": {
      "name": "Belinda Adams",
      "type": "panel hack",
      "value": "driver navigate"
    },
    "sslValidationRecords": [
      {
        "txtName": "Audra Padberg",
        "txtValue": "array synthesize",
        "httpUrl": "https://unwieldy-duster.name",
        "httpBody": "matrix quantify",
        "cname": "Josiah Kovacek",
        "cnameTarget": "Amir Johnson"
      }
    ],
    "lastError": "firewall input",
    "instructions": "protocol generate"
  },
  "dnsRecords": [
    {
      "type": "array navigate",
      "name": "Vince Dicki",
      "value": "array parse",
      "purpose": "card back up"
    }
  ],
  "flyCertificateStatus": "sensor program",
  "flyAcmeEnabled": true,
  "flyAcmeDisabledReason": "feed synthesize",
  "flyProvisionError": "card program",
  "flyLegacyStaffPipeline": false
}
{
  "success": true,
  "hostname": "Loma Rutherford",
  "status": "bus override",
  "verificationToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c3JfZGVtbyJ9.sig_sample",
  "challengeHost": "pixel program",
  "expectedTxt": "bandwidth override",
  "dnsTxtHost": "application calculate",
  "dnsTxtValue": "monitor reboot",
  "edge": {
    "saasIntegrationEnabled": false,
    "skipped": false,
    "reason": "application generate",
    "customHostnameId": "Everett Stracke",
    "hostnameStatus": "Ms. Coty Raynor",
    "sslStatus": "system hack",
    "ownershipVerification": {
      "name": "Belinda Adams",
      "type": "panel hack",
      "value": "driver navigate"
    },
    "sslValidationRecords": [
      {
        "txtName": "Audra Padberg",
        "txtValue": "array synthesize",
        "httpUrl": "https://unwieldy-duster.name",
        "httpBody": "matrix quantify",
        "cname": "Josiah Kovacek",
        "cnameTarget": "Amir Johnson"
      }
    ],
    "lastError": "firewall input",
    "instructions": "protocol generate"
  },
  "dnsRecords": [
    {
      "type": "array navigate",
      "name": "Vince Dicki",
      "value": "array parse",
      "purpose": "card back up"
    }
  ],
  "flyCertificateStatus": "sensor program",
  "flyAcmeEnabled": true,
  "flyAcmeDisabledReason": "feed synthesize",
  "flyProvisionError": "card program",
  "flyLegacyStaffPipeline": false
}
400dns_verification_failed (TXT missing or wrong); body includes dnsTxtHost, dnsTxtValue, challengeHost, expectedTxt
json
{
  "success": true,
  "code": "dns_verification_failed",
  "error": "program back up",
  "challengeHost": "pixel program",
  "expectedTxt": "bandwidth override",
  "dnsTxtHost": "application calculate",
  "dnsTxtValue": "monitor reboot",
  "status": "bus override",
  "verificationToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c3JfZGVtbyJ9.sig_sample"
}
{
  "success": true,
  "code": "dns_verification_failed",
  "error": "program back up",
  "challengeHost": "pixel program",
  "expectedTxt": "bandwidth override",
  "dnsTxtHost": "application calculate",
  "dnsTxtValue": "monitor reboot",
  "status": "bus override",
  "verificationToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c3JfZGVtbyJ9.sig_sample"
}
503dns_lookup_error

Errors

CodeMeaning
400dns_verification_failed (TXT missing or wrong); body includes dnsTxtHost, dnsTxtValue, challengeHost, expectedTxt
503dns_lookup_error
Edit this page on GitHub
Chat with us