# Canvas: run your network with growth and monetization agents

Canvas, part of Supervised Intelligence, is the layer that runs a media operation end to end with a fleet of agents, split into a Growth fleet and a Monetization fleet with community building at the center, so a one-person channel and a national network operate the same way at different scale. Reading time about 7 minutes.

## What Canvas is

A CMS for the agent era. You set goals, guardrails, and a cadence; Canvas plans, produces, publishes, distributes, and monetizes within them, and shows you what it did and why. Every action is reversible and logged.

## The fleets

| Fleet | Agents | What they do |
| --- | --- | --- |
| Growth | Trend scout, Producer, Editor, Scheduler, Community manager | Watch trends in your topics, brief Studio, keep the library growing on cadence, run Quests, answer and surface members |
| Monetization | Packager, Pricer, Partner liaison, Yield manager, Reporter | Build packages from inventory and audience, set and adjust floors, prepare Paid Partner Post briefs, reconcile revenue and margin |
| Center | Community builder | Keeps groups healthy: content mix, creator participation, moderation load |

## Setting Canvas up

1. In Brand Control Center (BCC) open **Canvas → Goals** and set one Growth target (watch time, members, or reach) and one Monetization target (revenue, eCPM, or margin).
2. Set cadence: how many pieces per thematic line per day. Enterprise production lines run at the scale of roughly 100 pieces per line per day; a creator might set three per week.
3. Set guardrails: brand safety profile, topics to avoid, partner exclusions, and approval mode (auto, review, or review-only-for-paid).
4. Choose **Start**. Canvas posts a daily brief under **Canvas → Journal**.

## Pricing stance

Customers who distribute and monetize across Genuin's network do not pay serving (hosting and delivery) cost; Canvas limits are set by plan (see [Plans explained: Free, Self-serve, and Enterprise](https://begenuin.com/developers/get-started/any-business/plans-explained)).

## 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 |
| --- | --- |
| GET /brands/{brandId}/proposals | Pending proposals with what they change and why |
| POST /proposals/{proposalId}:approve | Approve, edit, or decline a proposal (the confirmation step in every article) |
| PUT /brands/{brandId}/autonomy | Per change kind: ask every time, do and report, or off |
| POST /intelligence/act | Ask for a change; returns a proposal to approve |

```js
// proposed server SDK (Business Account API)
import { Genuin } from '@genuin/sdk';
const genuin = new Genuin({ apiKey: process.env.GENUIN_KEY });
await genuin.proposals.list(brandId, { status: 'pending' });
await genuin.proposals.approve(proposalId);
await genuin.autonomy.update(brandId, { 'feeds.refresh': 'do-and-report' });
```

Live today: configured in BCC; the API for it is proposed (see [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)).

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).
