Mastodon registration policy controls whether strangers can create local accounts from the normal signup page. Closing public signups is useful when a community needs to pause onboarding, respond to spam pressure, or move account creation back to staff-controlled invitations.

The setting is in the admin web interface under Server settingsRegistrations. The Who can sign-up field writes Mastodon's registration mode, where Nobody can sign up closes the public signup path and the public instance API reports registrations.enabled as false.

Existing users can still sign in after registrations close. Use Approval required for sign up instead of Nobody can sign up when new people should still submit requests for moderators to review, and add a closed-registration message so logged-out visitors know how to request access.

Steps to close Mastodon registrations:

  1. Sign in with an account that can change server settings.
    https://social.example.com/auth/sign_in
  2. Open the Registrations settings page.
    https://social.example.com/admin/settings/registrations
  3. Set Who can sign-up to Nobody can sign up.

    Choose Approval required for sign up only when applicants should still reach the registration form and wait for moderator approval.

  4. Enter a short value in Custom message when sign-ups are not available.

    This text appears in the closed-registration flow and in the public instance API as the registration message.

  5. Click Save changes.
  6. Check the public signup page from a logged-out or private browser window.
    https://social.example.com/auth/sign_up

    The page should show the closed-registration message instead of username, email, and password fields.

  7. Request the public instance API to confirm the registration state.
    $ curl --silent --show-error https://social.example.com/api/v2/instance
    {
      "domain": "social.example.com",
      "title": "Example Social",
      ##### snipped #####
      "registrations": {
        "enabled": false,
        "approval_required": false,
        "reason_required": false,
        "message": "<p>Registration is currently closed. Email admins@example.com for access.</p>",
        "min_age": null,
        "url": null
      }
    }

    If enabled is true with approval_required set to true, the server is in approval mode rather than fully closed. Return to Who can sign-up and select Nobody can sign up.