A valid request URL is required to generate request examples{
"document": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"environment_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"slug": "<string>",
"title": "<string>",
"enforcement": "required",
"archived_at": "2023-11-07T05:31:56Z",
"segment_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"versions": 123,
"acceptances": 123,
"current_version": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"version": 123,
"summary": "<string>",
"effective_at": "2023-11-07T05:31:56Z",
"published_at": "2023-11-07T05:31:56Z",
"requires_reacceptance": true,
"acceptances": 123
},
"draft": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"version": 123,
"summary": "<string>",
"requires_reacceptance": true,
"updated_at": "2023-11-07T05:31:56Z"
},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
},
"versions": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"document_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"version": 123,
"body_markdown": "<string>",
"summary": "<string>",
"requires_reacceptance": true,
"effective_at": "2023-11-07T05:31:56Z",
"accept_by": "2023-11-07T05:31:56Z",
"published_at": "2023-11-07T05:31:56Z",
"in_force": true,
"acceptances": 123,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
]
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}Read one document and its history
Requires legal:manage. The document, plus every version it ever had — newest first, without the bodies: a document with forty versions is forty legal texts, and the list shows a number, a date and a summary. One version’s text is GET /v1/organization/legal/{id}/versions/{versionId}.
in_force is derived rather than left to the reader, and it is not the same as published_at being set: a version published with a future effective_at is published and not yet governing anybody.
A valid request URL is required to generate request examples{
"document": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"environment_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"slug": "<string>",
"title": "<string>",
"enforcement": "required",
"archived_at": "2023-11-07T05:31:56Z",
"segment_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"versions": 123,
"acceptances": 123,
"current_version": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"version": 123,
"summary": "<string>",
"effective_at": "2023-11-07T05:31:56Z",
"published_at": "2023-11-07T05:31:56Z",
"requires_reacceptance": true,
"acceptances": 123
},
"draft": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"version": 123,
"summary": "<string>",
"requires_reacceptance": true,
"updated_at": "2023-11-07T05:31:56Z"
},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
},
"versions": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"document_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"version": 123,
"body_markdown": "<string>",
"summary": "<string>",
"requires_reacceptance": true,
"effective_at": "2023-11-07T05:31:56Z",
"accept_by": "2023-11-07T05:31:56Z",
"published_at": "2023-11-07T05:31:56Z",
"in_force": true,
"acceptances": 123,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
]
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}Authorizations
A staff session token, uk_st_…. Minted by sign-up, sign-in or the two-factor exchange. Only a 401 means it is spent; not_a_member (403) is about the organization named in X-Organization-Id and leaves the token good for the others.
Headers
The organization the caller is acting on — the org_… code that appears in the panel URL. It identifies; the membership JOIN is what authorizes, so a forged code reads nothing: the answer is not_a_member (403), which does not mean the session is over. Absent, the session's default organization answers, or — if that membership was revoked while the session was open — any other one the caller still holds.