---
title: "Create (and optionally send) an agreement"
method: POST
path: "/agreements"
tags: ["Agreements"]
---

# Create (and optionally send) an agreement

`POST /agreements`

## Request

- Base URL: `https://dataroom.corgi.com/api/v1`
- URL: `https://dataroom.corgi.com/api/v1/agreements`
- Auth: HTTP bearer

Create from a reusable template (`fromAgreementId`) or from documents. With `send: true` it emails recipients their signing links immediately. Omit `recipients` (or pass `[]`) without `send` to create a draft — the response's `webUrl` opens the Dataroom editor to add signers and place fields. Scope: `envelopes:write`.

## Request body

- object
  - `title` string, required
  - `recipients` object[]: Optional for drafts; required to send
    - `email` string, email, required
    - `name` string
    - `role` 'SIGNER' | 'APPROVER' | 'IN_PERSON' | 'CC' | 'VIEWER'
    - `order` integer
  - `fromAgreementId` string: Start from this reusable agreement template (id from GET /templates)
  - `documents` object[]
    - `id` string
    - `position` integer
  - `message` string
  - `expiresAt` string, date-time
  - `signingOrder` 'SEQUENTIAL' | 'PARALLEL'
  - `send` boolean

## Response `201`

Created — `webUrl` opens the agreement in Dataroom (the editor while it's a draft)

## Other responses

- `400`: Validation error
- `402`: Plan limit / feature

---

[API](https://skmtc.dev/corgi/apis/dataroom-api.md) - [All operations](https://skmtc.dev/corgi/apis/dataroom-api/llms.txt) - [OpenAPI document](https://skmtc.dev/corgi/apis/dataroom-api/revisions/73f75ef04a00?raw)
