Historical Card Versions

Retrieve current and historical versions of a card for auditing and comparison.

Every time a card is updated and published, Guru increments its version number. The Versions API lets you retrieve current and historical versions of a card, which is useful for auditing changes, displaying previous content, or analyzing how a card has evolved over time.

A few rules govern versions:

  • Version numbers start at 1.
  • The highest version number is always the current version.
  • Historical versions remain accessible via the Versions API.

The version field is the link between the current card and its revision history.

EndpointPurpose
GET /api/v1/cards/{cardId}Get the current card
GET /api/v1/cards/{cardId}/versionsList all versions
GET /api/v1/cards/{cardId}/versions/{version}Get a specific version

Step 1: Get the current version of a card

curl -u $GURU_USER:$GURU_TOKEN https://api.getguru.com/api/v1/cards/{cardId}

Response

Redacted to the fields relevant to versioning; the full response contains many more.

{
  "id": "70e1b31c-8f3e-419f-ab03-b7a86dda1243",
  "version": 3,
  "preferredPhrase": "US Company Holidays",
  "content": "<p>...</p>",
  "verificationState": "TRUSTED",
  "lastModified": "2025-12-19T16:41:28.565+0000"
}
FieldDescription
idUnique identifier for the card.
versionCurrent version number of the card.
preferredPhraseThe card's title.
contentThe card's rendered HTML content.
verificationStateWhether the card is trusted.
lastModifiedTimestamp of the most recent update.

Step 2: List all versions of a card

curl -u $GURU_USER:$GURU_TOKEN https://api.getguru.com/api/v1/cards/{cardId}/versions

Response

[
  {
    "id": "70e1b31c-8f3e-419f-ab03-b7a86dda1243",
    "version": 3,
    "lastModified": "2025-12-19T16:41:28.565+0000"
  },
  {
    "id": "70e1b31c-8f3e-419f-ab03-b7a86dda1243",
    "version": 2,
    "lastModified": "2025-12-19T16:39:40.086+0000"
  },
  {
    "id": "70e1b31c-8f3e-419f-ab03-b7a86dda1243",
    "version": 1,
    "lastModified": "2025-12-11T23:25:23.877+0000"
  }
]

This endpoint is best for determining how many versions exist, identifying the first version, finding the most recent previous version, and supporting auditing or compliance workflows.

Step 3: Retrieve a specific card version

Once you know the version number you want:

curl -u $GURU_USER:$GURU_TOKEN https://api.getguru.com/api/v1/cards/{cardId}/versions/{version}

For example, to get version 2:

curl -u $GURU_USER:$GURU_TOKEN https://api.getguru.com/api/v1/cards/70e1b31c-8f3e-419f-ab03-b7a86dda1243/versions/2

Response

{
  "id": "70e1b31c-8f3e-419f-ab03-b7a86dda1243",
  "version": 2,
  "preferredPhrase": "US Company Holidays",
  "content": "<p>...</p>",
  "verificationState": "TRUSTED",
  "lastModified": "2025-12-19T16:39:40.086+0000"
}

The response uses the same structure as the current card endpoint, but reflects the card exactly as it existed at that version.

Common use cases

View the previous version of a card. Retrieve the current card, read its version field, subtract 1, and fetch that version.

Retrieve the original card content. List all versions, find the entry with version: 1, and fetch it directly.

Compare changes over time. Retrieve multiple versions of the same card and compare the content field across them. Avoid diffing raw HTML when possible.