`GET /v1/orgs/{org}/policies/{policy_id}/versions`.
GET
/v1/orgs/{org}/policies/{policy_id}/versions
const url = 'https://api.updawg.net/v1/orgs/example/policies/example/versions';const options = {method: 'GET'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://api.updawg.net/v1/orgs/example/policies/example/versionsNewest first, each entry carrying what that version changed rather than
what it contained. A history page is a list of changes; the text of any one
version is a ?version= away.
Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”org
required
string
Organization slug.
policy_id
required
string
The pol_… id.
Responses
Section titled “Responses”Append-only history, newest first.
Media typeapplication/json
object
total
required
Every version there has ever been, however many are in versions.
integer format: int64
versions
required
Array<object>
What one version changed.
object
added
required
integer
author
string | null
diff
required
A unified diff against the version before this one, or against nothing
for the first. Empty when a save changed the text not at all — which is
a real thing somebody does, and a diff of "" says so more clearly than
an absent field.
string
removed
required
integer
version
required
integer format: int32
written_at
required
string format: date-time
Examplegenerated
{ "total": 1, "versions": [ { "added": 1, "author": "example", "diff": "example", "removed": 1, "version": 1, "written_at": "2026-04-15T12:00:00Z" } ]}No session.
Media typeapplication/json
object
detail
string | null
status
required
integer format: int32
title
required
string
type
required
string
Examplegenerated
{ "detail": "example", "status": 1, "title": "example", "type": "example"}No such policy here.
Media typeapplication/json
object
detail
string | null
status
required
integer format: int32
title
required
string
type
required
string
Examplegenerated
{ "detail": "example", "status": 1, "title": "example", "type": "example"}Over the organization’s request limit. Retry-After says when to try again; RateLimit-Limit is the burst.
Media typeapplication/json
object
detail
string | null
status
required
integer format: int32
title
required
string
type
required
string
Examplegenerated
{ "detail": "example", "status": 1, "title": "example", "type": "example"}