---
title: "Create an organization"
method: POST
path: "/organizations"
tags: ["Organization"]
---

# Create an organization

`POST /organizations`

## Request

- Base URL: `https://api.palisade.email`
- URL: `https://api.palisade.email/organizations`
- Auth: one of:
  - HTTP bearer
  - HTTP basic

## Headers

- `Palisade-Version` '2025-04-30' | 'unstable', required

## Request body

- object
  - `name` string, required
  - `invite_email` string, email, nullable, required: If provided, an invitation will be sent to this email to join the organization as an admin.
  - `referer` string, nullable: This field should be omitted or kept null when using an API key.
  - `pricing_type` 'free' | 'it_teams' | 'msp': Self-serve plan to provision. Only honored when PLG is enabled; otherwise the default plan is used.
  - `attribution_id` string, uuid: Opaque first-party journey id carried from palisade.email. Ignored for non-self-serve creation.

## Response `200`

Success

- CreatedOrganization
  - `id` string, required
  - `name` string, required
  - `logo_url` string, nullable, required
  - `email` string, nullable, required
  - `phone_number` string, nullable, required
  - `website` string, nullable, required
  - `is_active` boolean, required
  - `require_mfa` boolean, required: Whether every member must complete multi-factor authentication to sign in to this organization. A member who has not set up an authenticator is asked to at their next sign-in.
  - `settings` object, nullable
    - `email_notifications` object: Email notification preferences for the organization. Controls which types of emails are sent.
      - `domain_drifted` boolean: Send notifications when domain DNS records drift from expected configuration.
      - `domain_failed` boolean: Send notifications when a domain fails DMARC validation checks.
      - `domain_setup` boolean: Send notifications when a domain DMARC configuration is successfully set up.
      - `tasks_digests` boolean: Send daily digest of new and pending tasks.
      - `setup_reminders` boolean: Send reminders to finish adding and verifying a first domain.
      - `first_report` boolean: Send an email when a newly set-up domain's first DMARC data arrives, and its first report a week later.
      - `invitation_reminders` boolean: Remind invitees about an unaccepted invitation, and tell the inviter which invitations are about to expire.
      - `billing_notices` boolean: Send plan-usage notices, such as passing the Free plan monthly email allowance.
      - `hosted_spf_live` boolean: Send a one-time email when a domain's Hosted SPF setup finishes and starts serving.
      - `delegation_missing` boolean: Send a notification when a domain never delegated to a record Palisade hosts for it, so the hosted record is not serving. Controlled separately from domain_drifted.
    - `onboarding_dismissed_at` string, date-time, nullable: When someone dismissed or finished the onboarding wizard for this organization. Absent or null means nobody has, and the wizard is still offered to an organization with no domains.
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required
  - `support_provider` 'palisade' | 'sherweb', required
  - `has_domains` boolean
  - `invitation_failure` OrganizationInvitationFailure: Present only when invite_email was given and the identity provider returned an error while creating that invitation. The organization itself was created. The message says whether the invitation was created anyway, was not created, or could not be checked; list the organization's invitations before inviting the address again, since a retry creates a second invitation.
    - `code` 'upstream_failure', required
    - `message` string, required

---

[API](https://skmtc.dev/palisade/apis/palisade-api.md) · [All operations](https://skmtc.dev/palisade/apis/palisade-api/llms.txt) · [OpenAPI document](https://skmtc.dev/palisade/apis/palisade-api/revisions/37b4ae5a7766?raw)
