---
title: "Create a letter draft and quote. Nothing is printed or charged."
method: POST
path: "/v1/drafts"
---

# Create a letter draft and quote. Nothing is printed or charged.

`POST /v1/drafts`

## Request

- Base URL: `https://paperagent.dev`
- URL: `https://paperagent.dev/v1/drafts`
- Auth: one of:
  - OAuth 2 (authorization code, authorization URL `https://paperagent.dev/oauth/authorize`, token URL `https://paperagent.dev/oauth/token`, scopes: `letters:write`)
  - API key in header `X-Api-Key`
  - HTTP bearer

## Request body

- object
  - `to` object, required
    - `name` string, required
    - `line1` string, required
    - `line2` string
    - `city` string, required
    - `state` string, required
    - `zip5` string, required
    - `zip4` string
  - `body` object, required
    - `kind` 'text' | 'markdown' | 'pdf', required
    - `content` string, required
  - `tier` 'standard' | 'proof_of_mailing' | 'certified' | 'certified_err' | 'registered'
  - `colour` boolean
  - `from_address_id` string
  - `extras` string[]

## Response `201`

Success

- object
  - `draft` object, required
    - `draft_id` string, required
    - `livemode` boolean, required
    - `status` string, required
    - `to` object, required
      - `name` string, required
      - `address` object, nullable, required
        - `line1` string, required
        - `line2` string
        - `city` string, required
        - `state` string, required
        - `zip5` string, required
        - `zip4` string
        - `deliverable` boolean, required
        - `dpv` object
          - `confirmed` 'Y' | 'N' | 'S' | 'D', required
          - `vacant` boolean
          - `cmra` boolean
    - `from_address_id` string, nullable, required
    - `body_kind` string, required
    - `tier` string, required
    - `colour` boolean, required
    - `extras` string[], required
    - `page_count` number, nullable, required
    - `sheet_count` number, nullable, required
    - `created_at` string, required
    - `updated_at` string, required
    - `expires_at` string, required
  - `quote` object, required: A priced letter. State total.display to the user before sending, and pass total.amount_cents as confirm_total_cents.
    - `quote_id` string, required: Identifier for this quote, for support and receipts.
    - `expires_at` string, required: ISO 8601 instant after which this total is re-computed from the live price card. Call preview_draft for a fresh quote before sending if it has passed.
    - `version` string, required: The published price card this total came from.
    - `subtotal` object, required: What the letter costs, before sales tax.
      - `amount_cents` integer, required: The amount in whole US cents.
      - `currency` 'USD', required
      - `display` string, required: The amount formatted for a person, with a currency symbol.
    - `tax` object, required
      - `collected` object, required: New York sales tax on this letter. We mail from New York, so a few cents apply wherever the letter goes, and more when it is going to New York.
        - `amount_cents` integer, required: The amount in whole US cents.
        - `currency` 'USD', required
        - `display` string, required: The amount formatted for a person, with a currency symbol.
      - `destination_state` string, required
    - `total` object, required: Subtotal plus sales tax. This is the number send_letter requires in confirm_total_cents.
      - `amount_cents` integer, required: The amount in whole US cents.
      - `currency` 'USD', required
      - `display` string, required: The amount formatted for a person, with a currency symbol.
  - `note` string, required

## Other responses

- `default`: A stable error code and actionable message. 401: authenticate; 403: permission or policy; 404: unavailable object; 409: conflict; 422: domain refusal; 429: quota; 5xx: retry or contact support.

---

[API](https://skmtc.dev/paperagent/apis/paperagent-rest-api.md) · [All operations](https://skmtc.dev/paperagent/apis/paperagent-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/paperagent/apis/paperagent-rest-api/revisions/388148938051?raw)
