---
title: "Create a new Organization"
method: POST
path: "/organizations"
tags: ["Organizations"]
---

# Create a new Organization

`POST /organizations`

Creates a new Organization and attaches it to the requesting partner's family. This endpoint is restricted to an authorized partner integration — all other callers receive a 403.

## Request body

- OrganizationWriteRequest — Request body for creating an organization.
  - `name` string, required — The name of the organization
  - `description` string, required — A description of the organization
  - `org_size` integer, required — The number of people in the organization
  - `email` string, email, required — The primary contact email for the organization
  - `type` 'NPO' | 'BIZ' | 'FCO' | 'GOV' | 'EDU', required — The organization type. Possible values: `NPO` — Non-profit organization; `BIZ` — Business; `FCO` — Faith-based organization; `GOV` — Governmental; `EDU` — Educational institution.
  - `address` Address, required — An address in Google Maps API format.
    - `lat` number, float
    - `lng` number, float
    - `country` string
    - `locality` string
    - `timezone` string
    - `postal_code` string
    - `country_short` string
    - `locality_short` string
    - `formatted_address` string
    - `postal_code_short` string
    - `administrative_area_level_1` string
    - `administrative_area_level_1_short` string
  - `mission_statement` string, nullable — The mission statement for the organization
  - `website` string, nullable — The website URL for the organization
  - `phone` string, nullable — The primary phone number for the organization

## Response `200`

Returns the newly created organization record, including its generated slug and all default field values. The organization is automatically linked as a child of your partner organization. Note: on success this endpoint returns 200 OK, not 201 Created.

- object
  - `data` OrganizationResource — A VOMO Organization
    - `id` integer — The unique VOMO ID for the organization
    - `name` string — The name of the organization
    - `slug` string — The unique URL slug for the organization
    - `type` 'NPO' | 'BIZ' | 'FCO' | 'GOV' | 'EDU' — The organization type. Possible values: `NPO` — Non-profit organization; `BIZ` — Business; `FCO` — Faith-based organization; `GOV` — Governmental; `EDU` — Educational institution.
    - `description` string, nullable — A description of the organization
    - `email` string, nullable — The primary contact email for the organization
    - `phone` string, nullable — The primary phone number for the organization
    - `website` string, nullable — The website URL for the organization
    - `tax_number` string, nullable — The tax identification number for the organization
    - `org_size` integer, nullable — The approximate number of people in the organization
    - `background_check_expiration` '1_YEAR' | '2_YEARS' | '3_YEARS' | '4_YEARS' | '5_YEARS' | 'ABSOLUTE', nullable — The background check expiration window. Possible values: `1_YEAR` — expires 1 year after the check date; `2_YEARS` — expires 2 years after; `3_YEARS` — expires 3 years after; `4_YEARS` — expires 4 years after; `5_YEARS` — expires 5 years after; `ABSOLUTE` — expires on the fixed calendar date set in background_check_absolute_expiration.
    - `background_check_expiration_mode` 'relative' | 'absolute', nullable — The background check expiration mode. Possible values: `relative` — background checks expire a fixed window after the check date (see background_check_expiration); `absolute` — all background checks expire on the fixed calendar date in background_check_absolute_expiration.
    - `background_check_absolute_expiration` string, nullable — The fixed calendar date on which background checks expire when background_check_expiration_mode is 'absolute'.
    - `invitation_token` string, nullable — The invitation token for joining the organization
    - `address` Address — An address in Google Maps API format.
      - `lat` number, float
      - `lng` number, float
      - `country` string
      - `locality` string
      - `timezone` string
      - `postal_code` string
      - `country_short` string
      - `locality_short` string
      - `formatted_address` string
      - `postal_code_short` string
      - `administrative_area_level_1` string
      - `administrative_area_level_1_short` string
    - `groups_moniker` string, nullable — The display label used for groups in this organization
    - `giving_enabled` boolean, nullable — Whether giving/donations are enabled for this organization
    - `created_at` string — The date and time the organization was created
    - `updated_at` string — The date and time the organization was last updated
    - `deleted_at` string, nullable — The date and time the organization was deleted, or null if active
    - `show_categories` integer — Whether to show category filters on the organization hub
    - `show_rewards` integer — Whether to show the rewards/points feature for this organization
    - `project_moniker` string, nullable — The display label used for projects/opportunities in this organization
    - `campaign_moniker` string, nullable — The display label used for campaigns/initiatives in this organization
    - `user_submitted_projects` integer — Whether volunteers can submit their own projects (0=no, 1=yes)
    - `logo` object, nullable — The organization logo media object, or null if no logo is set
      - `id` integer
      - `type` string
      - `urls` object
        - `l` string — Large image URL
        - `o` string — Original image URL
        - `s` string — Small image URL
      - `flags` string, nullable
      - `mediable_id` integer
      - `mediable_type` string
      - `created_at` string
      - `updated_at` string
      - `deleted_at` string, nullable
    - `child_organizations` OrganizationResource[] — Child organizations of this organization. Present only when the 'childOrganizations' relation is loaded (e.g. on show/store endpoints).
    - `parent_organizations` OrganizationResource[] — Parent organizations of this organization. Present only when the 'parentOrganizations' relation is loaded (e.g. on show/store endpoints).

## Other responses

- `401` — Authentication credentials are missing or invalid.
- `403` — Your API key is not authorized to create organizations. Only approved partner integrations may call this endpoint.
- `422` — One or more request fields failed validation. Check the errors map for details.
- `429` — You have exceeded the rate limit of 30 requests per minute per API key.
- `500` — An unexpected server error occurred.

---

[API](https://skmtc.dev/vomo/apis/vomo-api.md) · [All operations](https://skmtc.dev/vomo/apis/vomo-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/vomo/vomo-api/revisions/1582d52b5f1f/schema)
