# Read the column locks in force for the caller

What the CALLER's own seat gets on one record page: the columns whose cells will be stripped out of their rows, and the columns their writes will be refused on. Any seat may ask, and it is cheap enough for a board to ask on every load instead of guessing per cell. It is an ANSWER, not the enforcement — a client that never calls it still receives stripped rows and still has those writes refused.

Access class: `def:read`.

## Endpoint

`GET /v1/definitions/{key}/column-policies/effective`

## Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| key | path | string | Yes |
| body | query | null | No |
| params | query | object | No |
| query | query | object | No |

## Responses

### 200

the action's answer

Content type: `application/json`.

```json
{
  "data": {
    "hidden": [
      "string"
    ],
    "readOnly": [
      "string"
    ]
  }
}
```

### default

a refusal: `{"error": "<what a person needs to read>"}`. 401 no credential, 402 the plan does not include this, 403 the seat does not, 404 the thing does not exist or is not yours to see.

Content type: `application/json`.

```json
{
  "error": "string"
}
```
