# Communities and groups: structure your social experience for relevance

A community is the home of one brand's content, members, and rules, and its groups are the topic feeds that [Maya](https://begenuin.com/developers/get-started/any-business/supervised-intelligence-what-it-does-and-where-to-start#maya-genuin-s-orchestrator) matches to placements, so community structure is the single most important input to relevance. Reading time about 5 minutes.

## Design rules that hold up

- One community per brand, not per campaign. Campaigns are Quests or Paid Partner Posts inside groups.
- Groups mirror how your audience thinks about your content, not your org chart: *Episodes*, *Clips*, *Behind the scenes* beats *Marketing*, *Product*.
- Each group carries a context that exists on the grid (see [Register your placements on the Hierarchical Grid](https://begenuin.com/developers/get-started/any-business/register-placements)). A group with no matching placement context is never shown onsite; it only reaches the network.
- Five to twelve groups is the healthy range for most brands; a retailer mirrors its top-level categories and lets Maya narrow by product taxonomy.

## Visibility and posting

| Setting | Options |
| --- | --- |
| Community visibility | Public · Members (auto login required) · Invite only |
| Group posting | Brand only · Approved creators · Any member |
| Group discovery | Listed in community · Hidden (reachable by placement only) |

## Moving content

Content can belong to more than one group. Moving or adding a group re-ranks the video across placements within minutes and keeps its history.

## Multi-brand Business Accounts

Agencies and holding companies run several brands in one Business Account, each with its own communities; the brand switcher moves between them and roles can be scoped per brand (see [Invite your team and assign roles](https://begenuin.com/developers/get-started/any-business/invite-team-assign-roles)). Partner brands you accept (see [Accept partner content into your ecosystem](https://begenuin.com/developers/get-started/any-business/accept-partner-content-into-your-ecosystem)) keep their own community and appear as guests in your groups.

## How it runs

What this article describes is built from your brand context and the crawl, shown rendered, and applied on your confirmation; later changes arrive as proposals in the same shape.

**Support.** Help is available 24/7 from Brand Control Center and from every page of these docs. Ask in plain language; when a person is needed, an account manager, developer, or Ops engineer joins the same thread and stays on it until it is resolved. Every Business Account owner has this on every plan (see [24/7 Octo support: how Octo brings in account managers, developers, and Ops](https://begenuin.com/developers/get-started/any-business/24-7-octo-support-how-octo-brings-in-account-managers-developers-and-ops)).

## API & SDK

Access: the calls in the table are the proposed Business Account API (see [Business Account API: provisioning, OAuth, and the resource map](https://begenuin.com/developers/get-started/any-business/business-account-api-provisioning-oauth-and-the-resource-map)), authenticated with a key scoped to the account and a role or an OAuth client acting for it; every confirmation in this article becomes a proposal you can approve by API (`POST /proposals/{proposalId}:approve`). Live today, the server API under `/api/thirdparty` authenticates with a `gn-access-token` (see [Generate an access token](https://begenuin.com/developers/developer-resources/api/generate-access-token-using-authentication-api)), and [Live API today and the Business Account API roadmap](https://begenuin.com/developers/developer-resources/guides/live-api-today-and-the-business-account-api-roadmap) maps what is live to what is proposed.

| Call | Purpose |
| --- | --- |
| POST /brands/{brandId}/communities | Create a community (or accept the proposed one) with groups and tags |
| POST /communities/{communityId}/groups | Add a group with its keywords, topics, and categories |
| PATCH /communities/{communityId} | Rename, merge, change visibility, guidelines, or tags |
| POST /videos/{videoId}:classify | Re-run classification or set community, group, keywords, topics, categories |

```js
// proposed server SDK (Business Account API)
import { Genuin } from '@genuin/sdk';
const genuin = new Genuin({ apiKey: process.env.GENUIN_KEY });
await genuin.communities.create(brandId, { name, groups: [...], tags });
await genuin.groups.create(communityId, { name, keywords, topics, categories });
await genuin.communities.update(communityId, { visibility: 'members' });
```

Live today: [Create a community](https://begenuin.com/developers/developer-resources/api/create-a-community-programmatically-using-community-api) · [Create a group in a community](https://begenuin.com/developers/developer-resources/api/create-a-group-programmatically-within-community-using-create-group-api) · [Post a video to a group](https://begenuin.com/developers/developer-resources/api/post-and-share-a-video-within-a-group-using-the-post-video-api).

SDKs: Web SDK (see [Embed the Genuin Web SDK on your website](https://begenuin.com/developers/developer-resources/sdk/how-do-you-embed-and-configure-the-genuin-web-sdk-on-your-website)), iOS SDK (see [Integrate the Genuin iOS SDK](https://begenuin.com/developers/developer-resources/sdk/developer/genuin-sdk/native-compatibility/ios/how-to-integrate-and-power-your-brand-community-in-ios-apps)), Android SDK (see [Integrate the Genuin Android SDK](https://begenuin.com/developers/developer-resources/sdk/how-to-integrate-and-power-your-brand-community-in-android-apps)), React Native (see [Integrate the Genuin SDK with React Native apps](https://begenuin.com/developers/developer-resources/sdk/how-do-you-integrate-the-genuin-react-native-sdk-into-your-application)), and Flutter (see [Integrate the Genuin SDK with Flutter apps](https://begenuin.com/developers/developer-resources/sdk/how-do-you-integrate-the-genuin-flutter-sdk-into-your-application)) render Genuin and sign members in; the Node (`@genuin/sdk`) and Python (`genuin`) server SDKs are proposed with [Business Account API: provisioning, OAuth, and the resource map](https://begenuin.com/developers/get-started/any-business/business-account-api-provisioning-oauth-and-the-resource-map).
