# read_document **Read a protected document** Fetch the decrypted contents of a document this organisation already owns, so you can review it and then describe it with annotate_document. Use it for files nobody classified at upload time, for example ones a person uploaded through the web app. ⚠️ Requires the documents:content scope, which agent keys do NOT get by default: an admin grants it deliberately, because it is the difference between a key that sees metadata and one that reads documents. Every read is recorded in the customer's audit log. Staged files cannot be read here. This server is hosted, so the bytes travel through immut to reach you. Read-only. - Access: read-only ## Arguments | Name | Type | Required | Description | |---|---|---|---| | `documentId` | string | **yes** | The document to read | ## Tool contract ```json { "name": "read_document", "title": "Read a protected document", "description": "Fetch the decrypted contents of a document this organisation already owns, so you can review it and then describe it with annotate_document. Use it for files nobody classified at upload time, for example ones a person uploaded through the web app. ⚠️ Requires the documents:content scope, which agent keys do NOT get by default: an admin grants it deliberately, because it is the difference between a key that sees metadata and one that reads documents. Every read is recorded in the customer's audit log. Staged files cannot be read here. This server is hosted, so the bytes travel through immut to reach you. Read-only.", "access": "read", "destructive": false, "hostedOnProduction": true, "restEndpoint": null, "arguments": { "documentId": { "type": "string", "required": true, "description": "The document to read" } } } ```