---
title: "Create Membership"
method: POST
path: "/communities/{community_id}/memberships"
tags: ["Communities::Membership"]
---

# Create Membership

`POST /communities/{community_id}/memberships`

## Request

- Base URL: `https://myworkspace.myclickfunnels.com/api/v2`
- URL: `https://myworkspace.myclickfunnels.com/api/v2/communities/{community_id}/memberships`
- Auth: one of:
  - HTTP bearer
  - OAuth 2
    - Authorization code: `https://accounts.myclickfunnels.com/oauth/authorize`
    - Token URL: `https://accounts.myclickfunnels.com/oauth/token`
- TypeScript: <https://skmtc.dev/myclickfunnels/apis/clickfunnels-api/docs/communities/:community_id/memberships/post.ts> (a function with typed inputs; its response is checked against the schema)

Add a contact as a member of a community

## Path parameters

- `community_id` string, required

## Request body

- object
  - `communities_membership` CommunitiesMembershipParameters: Communities::Membership
    - `contact_id` string, required: Public ID of the Contact to add as a member
    - `moderator` boolean, nullable: Whether this member should have moderator privileges
    - `space_ids` string[], nullable: Array of Space public IDs the member should belong to. The membership form syncs the member's Space memberships to exactly this list — Spaces not in the list are removed, Spaces in the list are added.

## Response `201`

Created

- CommunitiesMembershipAttributes: Communities::Membership
  - `id` integer: Membership ID
  - `public_id` string, nullable: Membership public ID
  - `community_id` integer: ID of the Community this membership belongs to
  - `moderator` boolean, nullable: Whether this member has moderator privileges in the community
  - `created_at` string, date-time: Created at
  - `updated_at` string, date-time: Updated at
  - `contact` object, nullable: The member Contact (null if the contact has been removed)
    - `id` integer: Contact ID
    - `public_id` string, nullable: Contact public ID
    - `email_address` string, nullable: Contact email address
    - `first_name` string, nullable: Contact first name
    - `last_name` string, nullable: Contact last name
    - `phone_number` string, nullable: Contact phone number

## Other responses

- `401`: Unauthorized
- `403`: Forbidden — this request's workspace is closed to it. Three cases return this: * The access token is limited to specific workspaces (see the workspace selection made when the key was provisioned, or the workspaces approved on the OAuth consent screen) and the request acts on a workspace outside that set. * The access token is limited to specific workspaces and the request's workspace could not be determined at all. The gate is fail-closed, so a workspace-limited token is denied rather than allowed through when the target workspace is ambiguous. * The workspace's team has no active ClickFunnels subscription: it was canceled, is paused, or is locked out after failed payments. Reads and writes are both refused until the subscription is reactivated, and the body carries `"code": "subscription_inactive"`. A token with no workspace restriction never receives the first two.
- `422`: Unprocessable Entity

## Changes

- **2026-11-03** `511d88b30aea`: 4 info
  - for the `path` request parameter `community_id`, the type was generalized from `integer` to `string`
  - added the non-success response with the status `403`
  - added the optional property `hint` to the response with the `401` status
  - added the optional property `hint` to the response with the `422` status

[Operation history](https://skmtc.dev/myclickfunnels/apis/clickfunnels-api/changes/communities/:community_id/memberships/post.md)

---

[API](https://skmtc.dev/myclickfunnels/apis/clickfunnels-api.md) - [All operations](https://skmtc.dev/myclickfunnels/apis/clickfunnels-api/llms.txt) - [OpenAPI document](https://skmtc.dev/myclickfunnels/apis/clickfunnels-api/revisions/511d88b30aea?raw)
