# What you can build

> The apps and automations teams build on the MockFlow API, each with an example and the steps it takes.

Source: https://mockflow.com/developers/what-you-can-build

The MockFlow API lets your own code do what you do in MockFlow by hand: make boards, put things on them, read them, share them and ask Mida, the AI assistant, to build them. Your code can be a script, a server, an internal tool or an AI agent.

## Ideas at a glance

- [**Show data from other tools as boards**](#show-data-from-other-tools-as-boards)**:** your tasks, numbers or plans, drawn as a kanban, chart, table or timeline.
- [**Let Mida build boards for you**](#let-mida-build-boards-for-you)**:** describe a board in a sentence and get it built.
- [**Use board content in other places**](#use-board-content-in-other-places)**:** a board as text for an AI agent, or as an image for a report.
- [**Get told when boards change**](#get-told-when-boards-change)**:** your server hears when a board is created, shared or trashed.
- [**Set up spaces and sharing automatically**](#set-up-spaces-and-sharing-automatically)**:** a space for each new client, class or project, with the right people in it.
- [**Build an app other people connect**](#build-an-app-other-people-connect)**:** your app works on their boards, with their permission.

## Keys, OAuth apps and webhooks

Every idea below calls the API with an API key, or with an OAuth app's token when other people's accounts are involved, and some add a webhook to hear about changes. [API keys, OAuth apps and webhooks](/developers/concepts/keys-apps-and-webhooks) explains what each one is and when to use it.

## Show data from other tools as boards

**Example:** every Monday, a script reads the open tasks from your issue tracker and builds a sprint board, with one kanban column per team.

1. [Create the board](/developers/reference/boards/create-board) with `POST /boards`.
2. [Add a kanban](/developers/reference/items/create-item) with the tasks with `POST /boards/{boardId}/items`. To add many items in one go, [send them as a batch](/developers/reference/items/batch-items) with `POST /boards/{boardId}/items:batch`.
3. Share the board's `url` from the response with the team.

The same pattern draws this week's sales as [charts](/developers/reference/item-types/chart), a course plan as a [timeline](/developers/reference/item-types/timeline), or an event schedule as a [Gantt chart](/developers/reference/item-types/gantt). Each [item type](/developers/reference/item-types) page shows the data it takes.

**You need:** an API key with the [scope](/developers/concepts/scopes) `boards:write`. Every plan can do this; Basic allows three boards.

## Let Mida build boards for you

**Example:** when a client fills in a brief on your website, a first workshop board is ready for your team a minute later.

1. [Create the board](/developers/reference/boards/create-board) with `POST /boards` and a `prompt` that describes it, for example "A launch plan with a timeline, a task kanban and a mind map of risks".
2. Mida builds the board in the background. The response includes a `job`.
3. [Check the job](/developers/reference/jobs/get-job) with `GET /jobs/{jobId}` until it says `succeeded`, or add a [callbackUrl](/developers/concepts/webhooks#callbackurl-hear-when-a-job-finishes) and MockFlow tells your server when it is done.

To get the same kind of board every time, [apply a skill](/developers/reference/skills/apply-skill): saved instructions Mida follows. Mida can also [review a board](/developers/reference/ai/ai-review) you already have with `POST /boards/{boardId}/ai/review`, scoring it against what you ask for, such as "completeness of the launch plan".

**You need:** an API key with `boards:write`, plus `ai:generate` for reviews and skills. Plus or Max, and generation uses the workspace's [AI credits](/developers/reference/me/get-credits).

## Use board content in other places

**Example:** an internal assistant answers "what did we decide for the Q3 launch?" by reading the team's planning board.

1. [Find the board](/developers/reference/search/search) by its title with `GET /search`.
2. [Read it as text](/developers/reference/boards/get-board-outline) with `GET /boards/{boardId}/outline`: sections, the items in them in reading order, and how items connect.
3. Hand that text to your AI agent, search index or summary.

To show a board somewhere else, [export it as an image](/developers/reference/boards/export-board) with `POST /boards/{boardId}/export`: a PNG of the whole board, one frame or one item, ready for a status page, a report or a slide.

**You need:** an API key with `boards:read`. Every plan.

## Get told when boards change

**Example:** each new board in the marketing space appears as a row in your project tracker, and as a message in your team channel when it is shared.

1. [Add a webhook](/developers/concepts/webhooks#add-a-webhook) in the [developer console](/developers/console/?tab=webhooks), with your server's address and the [events](/developers/concepts/webhooks#events) you want, such as `board.created` and `member.added`.
2. MockFlow sends a signed POST to your server each time one happens.
3. Your server [checks the signature](/developers/concepts/webhooks#check-the-signature) and does its work.

Webhooks cover boards being created, renamed, locked, moved, trashed and restored, people gaining or losing access, and jobs you started finishing. They do not fire for each edit to the items on a board.

**You need:** an API key with `boards:read` to manage webhooks. Every plan.

## Set up spaces and sharing automatically

**Example:** when a new client signs, a script creates a space named after them and shares it with the account team as editors and the client as reviewers.

1. [Create the space](/developers/reference/spaces/create-space) with `POST /spaces`.
2. [Share it with each person](/developers/reference/spaces/add-space-member) by email and role with `POST /spaces/{spaceId}/members`.
3. [Create the client's first boards](/developers/reference/boards/create-board) in it with `POST /boards` and its `spaceId`.

**You need:** an API key with `boards:write` and `members:write`. Basic has one space, so this suits Plus and Max.

## Build an app other people connect

**Example:** a planning tool where each customer clicks "Connect MockFlow" and your tool then creates boards in their own account.

1. [Register an OAuth app](/developers/concepts/oauth-apps#register-an-app) in the [developer console](/developers/console/?tab=oauth).
2. Each person signs in to MockFlow and approves your app.
3. Your app gets a token that works on that person's boards, with the scopes they approved, and calls the same endpoints as above.

**You need:** an OAuth app instead of an API key, because an API key only acts as you.

## Where to start

Follow the [Quickstart](/developers/quickstart) to create a key and your first board in a few minutes. For complete projects you can download and run, see the [API examples](/developers/examples/api) and the [OAuth app examples](/developers/examples/oauth). Every endpoint is in the [API reference](/developers/reference).
