---
title: "Record an access to an entity"
method: POST
path: "/entity_accesses"
tags: ["entity_accesses"]
---

# Record an access to an entity

`POST /entity_accesses`

Records a first-party person read of an Accessable entity (fired by the webui on mount). Gated on the same read permission as the entity's show and deduplicated per user+entity+30min window. Returns 204 No Content.

## Request body

- object
  - `entity_type` string, required — Polymorphic type of the accessed entity, e.g. "Document"
  - `entity_uuid` string, required — <tenant_uuid>_<entity_uuid> or entity UUID
  - `surface` string — Which surface was viewed (e.g. "content", "comment", "changelog"); defaults to "content". Must be one of the resolved entity's accessable_surfaces.

## Response `204`

No Content - the read was recorded (or deduplicated)

## Other responses

- `400` — Bad Request - Invalid parameters or malformed request
- `401` — Unauthorized - Invalid or missing authentication
- `403` — Forbidden - User lacks permission to access this resource
- `404` — Not Found - Resource does not exist
- `422` — Unprocessable Entity - Invalid request parameters or validation errors
- `429` — Too Many Requests - Rate limit exceeded
- `500` — Internal Server Error - Unexpected server error

## Changes

- **2026-08-24** `872ab6a6b84f` — 1 info
  - added the new optional request property `surface`

[Change history](https://skmtc.dev/rhythms/apis/rhythms-params-in-body/changes/entity_accesses/post.md)

---

[API](https://skmtc.dev/rhythms/apis/rhythms-params-in-body.md) · [All operations](https://skmtc.dev/rhythms/apis/rhythms-params-in-body/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/rhythms/rhythms-params-in-body/revisions/925d5943c46b/schema)
