---
title: "Change a document"
method: PATCH
path: "/collections/{id}/documents/{docId}"
tags: ["Data"]
---

# Change a document

`PATCH /collections/{id}/documents/{docId}`

## Request

- Base URL: `https://api.hypamoon.com/api/v1`
- URL: `https://api.hypamoon.com/api/v1/collections/{id}/documents/{docId}`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://app.hypamoon.com/oauth/authorize`, token URL `https://api.hypamoon.com/oauth/token`, scopes: `data:write`)

Send data to replace the whole document, or merge to change some fields (JSON Merge Patch, RFC 7396: a field you send replaces that field, null removes it, an object is merged field by field). Not both. The result must match the schema of the collection. Triggers do not fire on a change.

## Path parameters

- `id` string, required
- `docId` string, uuid, required

## Request body

- DocumentUpdate: Change a document: send data to replace it, or merge to change some fields. Not both.
  - `data` object: The document: any JSON object, at most 64 kB.
  - `merge` object: Merged into the document as a JSON Merge Patch (RFC 7396): a field you send replaces that field, null removes it, an object is merged field by field.

## Response `200`

The document as it is now.

- Document: A document in a collection.
  - `id` string, uuid, required: The id of the document.
  - `collection_id` string, uuid, required: The id of its collection.
  - `data` object, required: The document itself: a JSON object.
  - `source` 'api' | 'public', required: api: added with an API key. public: sent from a form on a website.
  - `created_at` string, date-time, required: When the document was added.
  - `updated_at` string, date-time, required: When the document last changed.
  - `test` boolean, required: true for a document of a test project. No email was sent for it.

## Other responses

- `400`: Bad Request: invalid_json.
- `401`: Unauthorized: unauthorized, missing_api_key, invalid_api_key, api_key_revoked, project_deleted.
- `403`: Forbidden: project_not_enabled, key_mode_mismatch, missing_scope, verification_required.
- `404`: Not Found: not_found.
- `422`: Unprocessable Content: validation_failed, schema_mismatch, document_too_large.
- `429`: Too Many Requests: rate_limited.
- `500`: Internal Server Error: internal_error.
- `503`: Service Unavailable: service_unavailable.

---

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