# Who opened a share link, and when `GET /share-links/{id}/access-log` **Required scope:** `documents:read` Use it to tell an owner which invited people have actually looked, and which never did. ## Parameters | Name | In | Required | Description | |---|---|---|---| | `id` | path | yes | id of the target record | ## Responses | Status | Meaning | |---|---| | `200` | Success Returns: entries [{email, action, at}], invited, neverOpened, isActive, expiresAt. meta.identifies states plainly that this is the VERIFIED EMAIL and not the device: IP address and user agent are deliberately not recorded, and the log is capped at 200 entries. | | `400` | BadRequest | | `401` | Unauthorized | | `403` | Forbidden | | `429` | RateLimited | ## Example ```bash curl -X GET "https://backend.immut.io/api/v1/share-links//access-log" \ -H "Authorization: Bearer $IMMUT_API_KEY" ``` ## OpenAPI fragment ```json { "/share-links/{id}/access-log": { "get": { "operationId": "getsharelinksidaccesslog", "summary": "Who opened a share link, and when. Use it to tell an owner which invited people have actually looked, and which never did.", "description": "Who opened a share link, and when. Use it to tell an owner which invited people have actually looked, and which never did.", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" }, "description": "id of the target record" } ], "responses": { "200": { "description": "Success Returns: entries [{email, action, at}], invited, neverOpened, isActive, expiresAt. meta.identifies states plainly that this is the VERIFIED EMAIL and not the device: IP address and user agent are deliberately not recorded, and the log is capped at 200 entries." }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/Forbidden" }, "429": { "$ref": "#/components/responses/RateLimited" } }, "x-required-scope": "documents:read" } } } ```