# Create a record on a page (lead, deal, merchant, lender, contact, task)

Creates one record on a page — a lead, a deal, a merchant, a lender, a contact, a task, an offer, a submission, or a row on any pack page by its key — from `cells` keyed by column id; read the page's definition first to learn those ids. The row lands last in the page's order and comes back whole. On the LEADS page this same call is the whole lead intake in one transaction: the duplicate check, the page's default status and the owner. The four money boards (payments, payment-schedules, cash-flows, obligations) refuse — their rows are the ledger's and are written by a lifecycle action, never typed.

Access class: `def:read`.

## Endpoint

`POST /v1/definitions/{key}/rows`

## Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| key | path | string | Yes |

## Request body

Content type: `application/json`.

```json
{
  "body": {
    "cells": {}
  },
  "params": {
    ":key": "string"
  },
  "query": {}
}
```

## Responses

### 201

the action's answer

Content type: `application/json`.

```json
{
  "data": {
    "cells": {
      "<uuid-1>": "string",
      "<uuid-3>": "string"
    },
    "createdBy": "string",
    "id": "",
    "position": 1.5,
    "source": "string"
  }
}
```

### default

a refusal: `{"error": "<what a person needs to read>"}`. 401 no credential, 402 the plan does not include this, 403 the seat does not, 404 the thing does not exist or is not yours to see.

Content type: `application/json`.

```json
{
  "error": "string"
}
```
