---
title: "Create a new organization membership"
method: POST
path: "/organizations/{organization_id}/memberships"
tags: ["Organization Memberships"]
---

# Create a new organization membership

`POST /organizations/{organization_id}/memberships`

Adds a user as a member to the given organization.
Only users in the same instance as the organization can be added as members.

This organization will be the user's [active organization] (https://clerk.com/docs/organizations/overview#active-organization)
the next time they create a session, presuming they don't explicitly set a
different organization as active before then.

## Path parameters

- `organization_id` string, required

## Request body

- object
  - `user_id` string, required — The ID of the user that will be added as a member in the organization. The user needs to exist in the same instance as the organization and must not be a member of the given organization already.
  - `role` string, required — The role that the new member will have in the organization.
  - `public_metadata` object, nullable — Metadata saved on the organization membership, that is visible to both your frontend and backend.
  - `private_metadata` object, nullable — Metadata saved on the organization membership that is only visible to your backend.

## Response `200`

Success

- OrganizationMembership — A user's membership in an organization
  - `id` string, required
  - `object` 'organization_membership', required — String representing the object's type. Objects of the same type share the same value.
  - `role` string, required
  - `role_name` string
  - `permissions` string[], required
  - `public_metadata` object, required — Metadata saved on the organization membership, accessible from both Frontend and Backend APIs
  - `private_metadata` object — Metadata saved on the organization membership, accessible only from the Backend API
  - `organization` Organization, required
    - `object` 'organization', required
    - `id` string, required
    - `name` string, required
    - `slug` string, required
    - `image_url` string
    - `has_image` boolean, required
    - `members_count` integer
    - `missing_member_with_elevated_permissions` boolean
    - `pending_invitations_count` integer
    - `max_allowed_memberships` integer, required
    - `admin_delete_enabled` boolean, required
    - `public_metadata` object, required
    - `private_metadata` object
    - `created_by` string
    - `created_at` integer, required — Unix timestamp of creation.
    - `updated_at` integer, required — Unix timestamp of last update.
    - `last_active_at` integer — Unix timestamp of last activity.
    - `role_set_key` string, nullable — The key of the [role set](https://clerk.com/docs/guides/organizations/control-access/role-sets) assigned to this organization.
  - `public_user_data` OrganizationMembershipPublicUserData — An organization membership with public user data populated
    - `user_id` string, required
    - `first_name` string, nullable, required
    - `last_name` string, nullable, required
    - `profile_image_url` string, nullable, required
    - `image_url` string, required
    - `has_image` boolean, required
    - `identifier` string, nullable
    - `username` string, nullable
    - `banned` boolean
    - `deprovisioned` boolean
  - `created_at` integer, required — Unix timestamp of creation.
  - `updated_at` integer, required — Unix timestamp of last update.

## Other responses

- `400` — Request was not successful
- `403` — Authorization invalid
- `404` — Resource not found
- `422` — Invalid request parameters

---

[API](https://skmtc.net/clerk/apis/clerk-backend-api.md) · [All operations](https://skmtc.net/clerk/apis/clerk-backend-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/clerk/clerk-backend-api/versions/cf036e7951d3/schema)
