Skip to main content
GET
/
cms
/
v3
/
blogs
/
posts
/
{objectId}
/
revisions
/
{revisionId}
Retrieve a previous version of a blog post
curl --request GET \
  --url https://api.hubapi.com/cms/v3/blogs/posts/{objectId}/revisions/{revisionId} \
  --header 'Authorization: Bearer <token>'
import requests

url = "https://api.hubapi.com/cms/v3/blogs/posts/{objectId}/revisions/{revisionId}"

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers)

print(response.text)
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

fetch('https://api.hubapi.com/cms/v3/blogs/posts/{objectId}/revisions/{revisionId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://api.hubapi.com/cms/v3/blogs/posts/{objectId}/revisions/{revisionId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"net/http"
"io"
)

func main() {

url := "https://api.hubapi.com/cms/v3/blogs/posts/{objectId}/revisions/{revisionId}"

req, _ := http.NewRequest("GET", url, nil)

req.Header.Add("Authorization", "Bearer <token>")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.get("https://api.hubapi.com/cms/v3/blogs/posts/{objectId}/revisions/{revisionId}")
.header("Authorization", "Bearer <token>")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.hubapi.com/cms/v3/blogs/posts/{objectId}/revisions/{revisionId}")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
{
  "id": "<string>",
  "object": {
    "abTestId": "<string>",
    "archivedAt": 123,
    "archivedInDashboard": true,
    "attachedStylesheets": [
      {}
    ],
    "authorName": "<string>",
    "blogAuthorId": "<string>",
    "campaign": "<string>",
    "categoryId": 123,
    "contentGroupId": "<string>",
    "created": "2023-11-07T05:31:56Z",
    "createdById": "<string>",
    "currentlyPublished": true,
    "domain": "<string>",
    "dynamicPageDataSourceId": "<string>",
    "dynamicPageDataSourceType": 123,
    "dynamicPageHubDbTableId": "<string>",
    "enableDomainStylesheets": true,
    "enableGoogleAmpOutputOverride": true,
    "enableLayoutStylesheets": true,
    "featuredImage": "<string>",
    "featuredImageAltText": "<string>",
    "folderId": "<string>",
    "footerHtml": "<string>",
    "headHtml": "<string>",
    "htmlTitle": "<string>",
    "id": "<string>",
    "includeDefaultCustomCss": true,
    "layoutSections": {},
    "linkRelCanonicalUrl": "<string>",
    "mabExperimentId": "<string>",
    "metaDescription": "<string>",
    "name": "<string>",
    "pageExpiryDate": 123,
    "pageExpiryEnabled": true,
    "pageExpiryRedirectId": 123,
    "pageExpiryRedirectUrl": "<string>",
    "password": "<string>",
    "postBody": "<string>",
    "postSummary": "<string>",
    "publicAccessRules": [
      {}
    ],
    "publicAccessRulesEnabled": true,
    "publishDate": "2023-11-07T05:31:56Z",
    "publishImmediately": true,
    "rssBody": "<string>",
    "rssSummary": "<string>",
    "slug": "<string>",
    "state": "<string>",
    "tagIds": [
      123
    ],
    "themeSettingsValues": {},
    "translatedFromId": "<string>",
    "translations": {},
    "updated": "2023-11-07T05:31:56Z",
    "updatedById": "<string>",
    "url": "<string>",
    "useFeaturedImage": true,
    "widgetContainers": {},
    "widgets": {}
  },
  "updatedAt": "2023-11-07T05:31:56Z",
  "user": {
    "email": "<string>",
    "fullName": "<string>",
    "id": "<string>"
  }
}
{
"message": "Invalid input (details will vary based on the error)",
"correlationId": "aeb5f871-7f07-4993-9211-075dc63e7cbf",
"category": "VALIDATION_ERROR",
"links": {
"knowledge-base": "https://www.hubspot.com/products/service/knowledge-base"
}
}

Supported products

Authorizations

Authorization
string
header
required

The access token received from the authorization server in the OAuth 2.0 flow.

Path Parameters

objectId
string
required

The ID of the blog post.

revisionId
string
required

The ID of the revision to retrieve

Response

successful operation

id
string
required
object
object
required

Model definition for a Blog Post.

updatedAt
string<date-time>
required
user
object
required

Model definition for a version user. Contains addition information about the user who created a version.

Last modified on March 30, 2026