Add members to a community

Add existing accounts or phone numbers to a community, or approve a pending join request, from your own systems.

Use this endpoint to onboard members from a CRM, a signup flow, or a campaign, the way Manage > Users does in Brand Control Center. Members gain access to the community's groups and videos as soon as the call returns. The account behind your access token does the adding, so it has to be an active member of the community. Your brand's owner account is a moderator of every community created under the brand. See Generate an access token for the token.

Endpoint

POST /api/thirdparty/community/add_users

EnvironmentBase URL
Productionhttps://api.begenuin.com
QAhttps://api.qa.begenuin.com

Send the token as a bearer token in the Authorization header, and the fields as a JSON body with the Content-Type: application/json header.

Parameters

ParameterTypeRequiredDescription
communitiesarray of stringsRequiredUUIDs of the communities to add to. Duplicates are removed.
usersarrayRequiredWho to add, each {"user_id": "<uuid>"} or {"phone_number": "<digits>"}. See Identify users.
invite_membersbooleanOptionaltrue adds the users as members on your behalf. This is the mode for server integrations.
join_request_approvedbooleanOptionaltrue approves one pending join request to one private community: exactly one community and one user_id.
onboarding_communitiesbooleanOptionalApp onboarding mode: the token's own account joins public communities and is marked as onboarded.

Send at most one of the three flags. With none of them, the call runs in single-tap mode: the token's own account joins one public community, and nobody else can be added.

Add many users to one community, or one user to many communities. Many users to many communities returns 412.

Identify users

  • user_id is the UUID of an existing Genuin account. Deleted accounts are skipped.
  • phone_number is digits only with the country code first and no plus sign, such as 14155552671. A number without an account gets a pending account with that number; the person takes it over when they sign up with the same number. Pending members are added with an inactive status and become active on signup.

Accounts that are already active members are left as they are and don't appear in members_added. A member who left earlier is reinstated.

Returns

With invite_members, returns 200 OK and the member objects that were added. Each new member gets a "you were invited" notification, and the community's member count updates.

With join_request_approved, returns 200 OK with empty data, and the member gets an approval notification.

With onboarding_communities or no flag, returns 200 OK with is_loop_creation_allowed, which says whether the joined community lets this member create groups, and welcome_loop_id when the community has a welcome group.

Request

cURL
bash
curl -X POST https://api.begenuin.com/api/thirdparty/community/add_users \
  -H "Authorization: Bearer {{GN_ACCESS_TOKEN}}" \
  -H "Content-Type: application/json" \
  -d '{
    "communities": ["{{COMMUNITY_ID}}"],
    "invite_members": true,
    "users": [
      { "user_id": "{{USER_ID}}" },
      { "phone_number": "14155552671" }
    ]
  }'

Response

Response
json
{
  "code": 200,
  "message": "XXXX-[Members Added]",
  "data": {
    "members_added": [
      {
        "member_id": "c2fd91a1-faf8-48a8-9b3e-b2248c8acf21",
        "name": "Avery Chen",
        "bio": null,
        "nickname": "averyc",
        "phone": "14155550111",
        "is_brand_system_user": false,
        "is_avatar": true,
        "profile_image": "alien",
        "profile_image_s": "",
        "profile_image_m": "",
        "profile_image_l": ""
      },
      {
        "member_id": "bd7608b7-5c0b-4fcc-9799-5944de1b6f5d",
        "name": null,
        "bio": null,
        "nickname": null,
        "phone": "14155552671",
        "is_brand_system_user": false,
        "is_avatar": true,
        "profile_image": "smiling_face_with_horns",
        "profile_image_s": "",
        "profile_image_m": "",
        "profile_image_l": ""
      }
    ]
  }
}

member_id is the account's UUID; use it for later calls such as Add moderators to a community. A pending account created from a phone number has null for name and nickname and an avatar name in profile_image until the person signs up. An account with an uploaded photo has CDN URLs in profile_image and the _s, _m, and _l sizes.

Errors

Every error response carries an HTTP status, a string code, a message, and a data object. Match on code.

HTTP statuscodeCauseFix
412 Precondition Failed5166The request breaks a rule: a missing or non-UUID community, an empty users list, more than one flag, many users to many communities, a join_request_approved call without exactly one private community and one user_id, a single-tap call that adds someone other than the token's account, or the token's account isn't an active member (for a private community, leader or moderator) of every listed community. Message: XXXX-[Invalid Use of API].Send one community or one user, one flag, and make sure your account is a member of the community.
404 Not Found5218The community doesn't exist or is deleted. Message: The community you are looking for is no longer available.Check the UUID.
400 Bad Request1099The server couldn't process the request.Retry once. If it persists, contact the Genuin team with the request timestamp.

Limitations

  • One-to-many only: One community with many users, or one user with many communities, per call.
  • No roles: Everyone is added as a member. Use Add moderators to a community for admins.
  • No removal: There's no third-party endpoint to remove a member from a community. Remove members in Brand Control Center under Manage > Users.
  • Rate limit: There's no rate limit on this endpoint.

See also

TRUST AND COMPLIANCE

© 2026 Genuin Inc.

Genuin Footer