Docs

You are viewing an archived version of the docs.Go to latest version

Organization domain methods

These methods on the Organization object allow you to manage the domains of an organization.

The following examples assume:

createDomain()

Creates a new domain for the currently active organization.

function createDomain: (domainName: string) => Promise<OrganizationDomainResource>;
  • Name
    domainName
    Type
    string
    Description

    The domain name that will be added to the organization.

createDomain() returns

TypeDescription
Promise<OrganizationDomain>This method returns a Promise that resolves to the OrganizationDomain for the corresponding ID.

createDomain() example

main.js
import Clerk from '@clerk/clerk-js';

// Initialize Clerk with your Clerk publishable key
const clerk = new Clerk('YOUR_PUBLISHABLE_KEY');
await clerk.load();

if (clerk.user) {
  // Check for an active organization
  if (clerk.organization) {
    await clerk.organization.createDomain("test-domain.com")
      .then((res) => console.log(res))
      .catch((error) => console.log("An error occurred:", error.errors));
  } else {
    // If there is no active organization,
    // mount Clerk's <OrganizationSwitcher />
    // to allow the user to set an organization as active
    document.getElementById("app").innerHTML = `
      <h2>Select an organization to set it as active</h2>
      <div id="org-switcher"></div>
    `;

    const orgSwitcherDiv = document.getElementById("org-switcher");

    clerk.mountOrganizationSwitcher(orgSwitcherDiv);
  }
} else {
  document.getElementById("app").innerHTML = `
    <div id="sign-in"></div>
  `;

  const signInDiv = document.getElementById("sign-in");

  clerk.mountSignIn(signInDiv);
}
index.html
  <div id="app"></div>

  <!-- Initialize Clerk with your
  Clerk Publishable key and Frontend API URL -->
  <script
    async
    crossorigin="anonymous"
    data-clerk-publishable-key="YOUR_PUBLISHABLE_KEY"
    src="https://YOUR_FRONTEND_API_URL/npm/@clerk/clerk-js@latest/dist/clerk.browser.js"
    type="text/javascript"
  ></script>

  <script>
    window.addEventListener("load", async function () {
      await Clerk.load();

      if (Clerk.user) {
        // Check for an active organization
        if (Clerk.organization) {
          await Clerk.organization.createDomain("test-domain.com")
            .then((res) => console.log(res))
            .catch((error) => console.log("An error occurred:", error.errors));
        } else {
          // If there is no active organization,
          // mount Clerk's <OrganizationSwitcher />
          // to allow the user to set an organization as active
          document.getElementById("app").innerHTML = `
            <h2>Select an organization to set it as active</h2>
            <div id="org-switcher"></div>
          `;

          const orgSwitcherDiv = document.getElementById("org-switcher");

          Clerk.mountOrganizationSwitcher(orgSwitcherDiv);
        }
      } else {
        document.getElementById("app").innerHTML = `
          <div id="sign-in"></div>
        `;
        const signInDiv = document.getElementById("sign-in");
        Clerk.mountSignIn(signInDiv);
      }
    });
  </script>

getDomains()

Retrieves the list of domains for the currently active organization.

function getDomains(params?: GetDomainsParams): Promise<ClerkPaginatedResponse<OrganizationDomain>>;
  • Name
    initialPage?
    Type
    number
    Description

    A number that can be used to skip the first n-1 pages. For example, if initialPage is set to 10, it is will skip the first 9 pages and will fetch the 10th page.

  • Name
    pageSize?
    Type
    number
    Description

    A number that indicates the maximum number of results that should be returned for a specific page.

  • Name
    enrollmentMode?
    Type
    'manual_invitation' | 'automatic_invitation' | 'automatic_suggestion'
    Description

    An enrollment mode will change how new users join an organization.

getDomains() returns

TypeDescription
Promise<ClerkPaginatedResponse<OrganizationDomain>>This method returns a Promise that resolves to a ClerkPaginatedResponse of OrganizationDomain objects.

getDomains() example

main.js
import Clerk from '@clerk/clerk-js';

// Initialize Clerk with your Clerk publishable key
const clerk = new Clerk('YOUR_PUBLISHABLE_KEY');
await clerk.load();

if (clerk.user) {
  // Check for an active organization
  if (clerk.organization) {
    await clerk.organization.getDomains()
      .then((res) => console.log(res))
      .catch((error) => console.log("An error occurred:", error.errors));
  } else {
    // If there is no active organization,
    // mount Clerk's <OrganizationSwitcher />
    // to allow the user to set an organization as active
    document.getElementById("app").innerHTML = `
      <h2>Select an organization to set it as active</h2>
      <div id="org-switcher"></div>
    `;

    const orgSwitcherDiv = document.getElementById("org-switcher");

    clerk.mountOrganizationSwitcher(orgSwitcherDiv);
  }
} else {
  document.getElementById("app").innerHTML = `
    <div id="sign-in"></div>
  `;

  const signInDiv = document.getElementById("sign-in");

  clerk.mountSignIn(signInDiv);
}
index.html
  <div id="app"></div>

  <!-- Initialize Clerk with your
  Clerk Publishable key and Frontend API URL -->
  <script
    async
    crossorigin="anonymous"
    data-clerk-publishable-key="YOUR_PUBLISHABLE_KEY"
    src="https://YOUR_FRONTEND_API_URL/npm/@clerk/clerk-js@latest/dist/clerk.browser.js"
    type="text/javascript"
  ></script>

  <script>
    window.addEventListener("load", async function () {
      await Clerk.load();

      if (Clerk.user) {
        // Check for an active organization
        if (Clerk.organization) {
          await Clerk.organization.getDomains()
            .then((res) => console.log(res))
            .catch((error) => console.log("An error occurred:", error.errors));
        } else {
          // If there is no active organization,
          // mount Clerk's <OrganizationSwitcher />
          // to allow the user to set an organization as active
          document.getElementById("app").innerHTML = `
            <h2>Select an organization to set it as active</h2>
            <div id="org-switcher"></div>
          `;

          const orgSwitcherDiv = document.getElementById("org-switcher");

          Clerk.mountOrganizationSwitcher(orgSwitcherDiv);
        }
      } else {
        document.getElementById("app").innerHTML = `
          <div id="sign-in"></div>
        `;
        const signInDiv = document.getElementById("sign-in");
        Clerk.mountSignIn(signInDiv);
      }
    });
  </script>

getDomain()

Retrieves a domain for an organization based on the given domain ID.

function getDomain(params: GetDomainParams): Promise<OrganizationDomain>;
  • Name
    domainId
    Type
    string
    Description

    The ID of the domain that will be fetched.

getDomain() returns

TypeDescription
Promise<OrganizationDomain>This method returns a Promise that resolves to the OrganizationDomain for the corresponding ID.

getDomain() example

main.js
import Clerk from '@clerk/clerk-js';

// Initialize Clerk with your Clerk publishable key
const clerk = new Clerk('YOUR_PUBLISHABLE_KEY');
await clerk.load();

if (clerk.user) {
  // Check for an active organization
  if (clerk.organization) {
    const domainId = "orgdmn_123";

    await clerk.organization.getDomain({ domainId })
      .then((res) => console.log(`Domains:`, res))
      .catch((error) => console.log("An error occurred:", error.errors));
  } else {
    // If there is no active organization,
    // mount Clerk's <OrganizationSwitcher />
    // to allow the user to set an organization as active
    document.getElementById("app").innerHTML = `
      <h2>Select an organization to set it as active</h2>
      <div id="org-switcher"></div>
    `;

    const orgSwitcherDiv = document.getElementById("org-switcher");

    clerk.mountOrganizationSwitcher(orgSwitcherDiv);
  }
} else {
  document.getElementById("app").innerHTML = `
    <div id="sign-in"></div>
  `;

  const signInDiv = document.getElementById("sign-in");

  clerk.mountSignIn(signInDiv);
}
index.html
  <div id="app"></div>

  <!-- Initialize Clerk with your
  Clerk Publishable key and Frontend API URL -->
  <script
    async
    crossorigin="anonymous"
    data-clerk-publishable-key="YOUR_PUBLISHABLE_KEY"
    src="https://YOUR_FRONTEND_API_URL/npm/@clerk/clerk-js@latest/dist/clerk.browser.js"
    type="text/javascript"
  ></script>

  <script>
    window.addEventListener("load", async function () {
      await Clerk.load();

      if (Clerk.user) {
        // Check for an active organization
        if (Clerk.organization) {
          const domainId = "orgdmn_123";

          await Clerk.organization.getDomain({ domainId })
            .then((res) => console.log(`Domains:`, res))
            .catch((error) => console.log("An error occurred:", error.errors));
        } else {
          // If there is no active organization,
          // mount Clerk's <OrganizationSwitcher />
          // to allow the user to set an organization as active
          document.getElementById("app").innerHTML = `
            <h2>Select an organization to set it as active</h2>
            <div id="org-switcher"></div>
          `;

          const orgSwitcherDiv = document.getElementById("org-switcher");

          Clerk.mountOrganizationSwitcher(orgSwitcherDiv);
        }
      } else {
        document.getElementById("app").innerHTML = `
          <div id="sign-in"></div>
        `;
        const signInDiv = document.getElementById("sign-in");
        Clerk.mountSignIn(signInDiv);
      }
    });
  </script>

Feedback

What did you think of this content?

Last updated on