Backwork
API Reference

Get policy change feed

Track policy updates and modifications over time, newest first.

Endpoint: GET /api/v1/policies/changes

Availability: Live in production.

Authentication: API key in Authorization: Bearer <key> with the read scope.

Track policy updates and modifications over time, newest first. Useful for monitoring policy changes and keeping systems in sync.

Parameters

  • since (query): Only show changes after this ISO8601 timestamp
  • policy_id (query): Filter to a specific policy
  • change_type (query): Filter by change type
  • policy_type (query): Filter by policy type
  • payer (query): Filter by payer name (partial match)
  • cursor (query): Pagination cursor from the previous response
  • limit (query): Results per page

Example request

curl -X GET "https://backworkhealth.com/api/v1/policies/changes?since=2024-01-01T00%3A00%3A00Z&change_type=created&policy_type=LCD" \
  -H "Authorization: Bearer $BACKWORK_API_KEY"

Example response (200)

{
  "success": true,
  "data": [
    {
      "diff_id": 0,
      "policy_id": "string",
      "policy_title": "string",
      "policy_type": "string",
      "payer_name": "string",
      "old_version": 0,
      "new_version": 0,
      "change_type": "string",
      "change_summary": "string",
      "changed_at": "2026-01-15T10:30:00Z",
      "materiality": "string",
      "materiality_model": "string",
      "materiality_scored_at": "2026-01-15T10:30:00Z",
      "details": {
        "changed_fields": "string",
        "added_codes": "string",
        "removed_codes": "string",
        "modified_criteria": "string"
      }
    }
  ],
  "meta": {
    "request_id": "string",
    "timestamp": "2026-01-15T10:30:00Z",
    "pagination": {
      "cursor": "string",
      "has_more": true,
      "limit": 0
    },
    "filters": {
      "since": "string",
      "policy_id": "string",
      "change_type": "created",
      "policy_type": "string",
      "payer": "string"
    }
  }
}
GET
/policies/changes

Authorization

bearerAuth
AuthorizationBearer <token>

API key in format: bwk_live_xxxxx. Keys issued before the rename (vrt_live_) remain valid. bwk_test_ keys work only on the sandbox.

In: header

Query Parameters

since?string

Only show changes after this ISO8601 timestamp

Formatdate-time
policy_id?string

Filter to a specific policy

Lengthlength <= 256
change_type?string

Filter by change type

Value in

  • "created"
  • "updated"
  • "retired"
  • "codes_changed"
  • "criteria_changed"
  • "metadata_changed"
  • "new_policy"
policy_type?string

Filter by policy type

Value in

  • "LCD"
  • "Article"
  • "NCD"
  • "PayerPolicy"
payer?string

Filter by payer name (partial match)

Lengthlength <= 100
cursor?string

Pagination cursor from the previous response

limit?number

Results per page

Range1 <= value <= 100
Default50

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/policies/changes"
{  "success": true,  "data": [    {      "diff_id": 0,      "policy_id": "string",      "policy_title": "string",      "policy_type": "string",      "payer_name": "string",      "old_version": 0,      "new_version": 0,      "change_type": "string",      "change_summary": "string",      "changed_at": "2019-08-24T14:15:22Z",      "materiality": "string",      "materiality_model": "string",      "materiality_scored_at": "2019-08-24T14:15:22Z",      "details": {        "changed_fields": "string",        "added_codes": "string",        "removed_codes": "string",        "modified_criteria": "string"      }    }  ],  "meta": {    "request_id": "string",    "timestamp": "2019-08-24T14:15:22Z",    "pagination": {      "cursor": "string",      "has_more": true,      "limit": 0    },    "filters": {      "since": "string",      "policy_id": "string",      "change_type": "created",      "policy_type": "string",      "payer": "string"    }  }}

Last updated on