---
title: "Get a contract's emails"
method: GET
path: "/contract/emails"
tags: ["Contracts"]
---

# Get a contract's emails

`GET /contract/emails`

## Request

- Base URL: `https://apisign.io/api`
- URL: `https://apisign.io/api/contract/emails`
- Auth: API key in header `x-api-key`

Every email sent about a contract, newest first, with its delivery status: signing requests, completed-contract copies, and decline notices.

## Query parameters

- `contract_id` string, required

## Response `200`

Emails

- object
  - `emails` ContractEmail[]
    - `id` string
    - `kind` 'signing_request' | 'contract_completed' | 'contract_declined': `signing_request`: the link a signer signs with. `contract_completed`: the signed PDF, to a signer (with `signer_id`) or to your organization. `contract_declined`: the notice to your organization that a signer declined.
    - `signer_id` string, nullable
    - `test_mode` boolean
    - `status` 'sent' | 'deferred' | 'delivered' | 'bounced' | 'rejected' | 'complained' | 'failed': `sent`: handed to the email provider, no outcome reported yet. `deferred`: temporary failure, still retrying. `delivered`: the recipient's mail server accepted it (it may still land in spam). `bounced`: the recipient's server refused it, at send time or later. `rejected`: never attempted, for example because the address bounced or complained before. `complained`: the recipient marked it as spam. `failed`: the send itself failed.
    - `recipient` string, email: The address the email went to. In test mode, this is your organization's address, not the signer's.
    - `sent_at` string, date-time
    - `status_updated_at` string, date-time: When the current status was reported
    - `detail` string, nullable: Why it bounced, was deferred, rejected or failed, e.g. `550 5.1.1 mailbox does not exist`
    - `events` object[]: Delivery events reported for this email, oldest first
      - `type` string: e.g. `email.delivered`, `email.bounced`
      - `occurred_at` string, date-time

## Other responses

- `400`: Invalid request, or the action is not allowed in the resource's current state
- `401`: Missing, invalid, expired or deleted API key. Body: `{ "error": "Unauthorized" }`
- `404`: Resource not found in this organization
- `500`: Internal server error (also returned for a request body that is not valid JSON)

---

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