---
title: "Sign the complaint of an agent-filed case, where the county requires the owner to. Only while the case waits for the signature in `filing_approved`; 409 `not_required` otherwise, and 409 `not_agent_filed` for any other case. The filing is queued once. Where the filing is an affidavit sworn by electronic verification (`sworn` on the GET), only the named affiant signs, `accept: true` is the oath, `signerName` must be the affiant's name as printed (case and spacing aside; 422 `affiant_name_mismatch`), and `documentHashes` must be the `sworn.documents` hashes read (409 `documents_changed` when the affidavit changed since, for example on a new day): those documents become the filing"
method: POST
path: "/v1/cases/{id}/signatures/complaint"
---

# Sign the complaint of an agent-filed case, where the county requires the owner to. Only while the case waits for the signature in \`filing_approved\`; 409 \`not_required\` otherwise, and 409 \`not_agent_filed\` for any other case. The filing is queued once. Where the filing is an affidavit sworn by electronic verification (\`sworn\` on the GET), only the named affiant signs, \`accept: true\` is the oath, \`signerName\` must be the affiant's name as printed (case and spacing aside; 422 \`affiant_name_mismatch\`), and \`documentHashes\` must be the \`sworn.documents\` hashes read (409 \`documents_changed\` when the affidavit changed since, for example on a new day): those documents become the filing

`POST /v1/cases/{id}/signatures/complaint`

## Request

- Base URL: `https://api.evictionsapi.com`
- URL: `https://api.evictionsapi.com/v1/cases/{id}/signatures/complaint`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer

## Path parameters

- `id` string, required

## Request body

- object
  - `signerName` string, required
  - `accept` true, required
  - `documentHashes` string[]

## Response `201`

The signature.

- Signature: A signature the owner just gave. The IP address it was given from is kept only as a hash, and is not shown.
  - `id` string, required
  - `kind` 'authorization' | 'complaint', required
  - `textVersion` string, required
  - `signerName` string, required
  - `signerTitle` string, nullable, required
  - `signedAt` string, date-time, required

## Other responses

- `400`: The request is invalid.
- `401`: The credential is missing or invalid.
- `403`: The credential is not allowed to do this (`forbidden`). For a signed-in session: `permission_denied`, the person's role in the organization lacks the permission this needs (ask an owner); `no_organization`, the person belongs to no organization yet (start one with `POST /v1/me/organizations` or accept an invitation).
- `404`: Not found.
- `409`: The request conflicts with the current state: for a case, it is not in a state that allows this, or its details were erased (`erased`); for an API key, a limit or the key in use.
- `422`: The case did not pass a check.

---

[API](https://skmtc.dev/evictionsapi/apis/evictions-api.md) · [All operations](https://skmtc.dev/evictionsapi/apis/evictions-api/llms.txt) · [OpenAPI document](https://skmtc.dev/evictionsapi/apis/evictions-api/revisions/28459213a1a3?raw)
