# Boards

A board is a table in Specter — its columns, and a row for each record. From outside the app you
can **add rows** to a board and **read** it back.

## Pick the way in

| You have | Use |
| --- | --- |
| A form on your website | [A Specter form](/forms/overview) — no key |
| A server, script or vendor sending records | [A board key](/boards/create-a-key) (`sbk_…`) and [the two board routes](/boards/read-and-write) |
| An integration inside the Specter app | [The API reference](/api-reference) — a signed-in session, not a key |

<Callout type="warning" title="A key never goes in a browser">
  A board key writes to your board, and anything shipped to a visitor's device can be read. A form
  on a web page posts to a Specter form, not to the key routes.
</Callout>

## The two board routes

| Route | Scope | Does |
| --- | --- | --- |
| `GET /v1/ingest/board` | `read` | The board's columns, its rows, and exactly what a new row takes |
| `POST /v1/ingest/rows` | `rows:write` | Adds one row, or up to 500 at once |

A key made on one of the workspace's own pages — Leads, Deals — uses the same two routes, and also
takes `external_id` so a retry never makes a duplicate.
