Get a group of products by ID
curl --request GET \
--url https://api.hubapi.com/crm-objects/v1/change-log/productsimport requests
url = "https://api.hubapi.com/crm-objects/v1/change-log/products"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.hubapi.com/crm-objects/v1/change-log/products', 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/crm-objects/v1/change-log/products",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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/crm-objects/v1/change-log/products"
req, _ := http.NewRequest("GET", url, nil)
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/crm-objects/v1/change-log/products")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hubapi.com/crm-objects/v1/change-log/products")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body[
{
"timestamp": 1525297495553,
"changeType": "CHANGED",
"objectId": 1645187,
"changes": {
"changedProperties": [
"hs_lastmodifieddate",
"price",
"recurringbillingfrequency"
],
"newAssociations": [],
"removedAssociations": [],
"newListMemberships": [],
"removedListMemberships": []
}
},
{
"timestamp": 1525297514887,
"changeType": "CHANGED",
"objectId": 1642796,
"changes": {
"changedProperties": [
"hs_lastmodifieddate",
"content",
"status"
],
"newAssociations": [],
"removedAssociations": [],
"newListMemberships": [],
"removedListMemberships": []
}
},
{
"timestamp": 1525298220133,
"changeType": "CHANGED",
"objectId": 1688960,
"changes": {
"changedProperties": [
"hs_lastmodifieddate",
"price",
"name"
],
"newAssociations": [],
"removedAssociations": [],
"newListMemberships": [],
"removedListMemberships": []
}
},
{
"timestamp": 1525298357009,
"changeType": "CREATED",
"objectId": 1645342,
"changes": {
"changedProperties": [
"hs_lastmodifieddate",
"name",
"description",
"price",
"recurringbillingfrequency"
],
"newAssociations": [],
"removedAssociations": [],
"newListMemberships": [],
"removedListMemberships": []
}
}
]v1
Get a group of products by ID
Create a new product. The request body should be a list of product properties you want to set for the new product, with each entry being the internal name of the property to be set, and the value of that property.
GET
/
crm-objects
/
v1
/
change-log
/
products
Get a group of products by ID
curl --request GET \
--url https://api.hubapi.com/crm-objects/v1/change-log/productsimport requests
url = "https://api.hubapi.com/crm-objects/v1/change-log/products"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.hubapi.com/crm-objects/v1/change-log/products', 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/crm-objects/v1/change-log/products",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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/crm-objects/v1/change-log/products"
req, _ := http.NewRequest("GET", url, nil)
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/crm-objects/v1/change-log/products")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hubapi.com/crm-objects/v1/change-log/products")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body[
{
"timestamp": 1525297495553,
"changeType": "CHANGED",
"objectId": 1645187,
"changes": {
"changedProperties": [
"hs_lastmodifieddate",
"price",
"recurringbillingfrequency"
],
"newAssociations": [],
"removedAssociations": [],
"newListMemberships": [],
"removedListMemberships": []
}
},
{
"timestamp": 1525297514887,
"changeType": "CHANGED",
"objectId": 1642796,
"changes": {
"changedProperties": [
"hs_lastmodifieddate",
"content",
"status"
],
"newAssociations": [],
"removedAssociations": [],
"newListMemberships": [],
"removedListMemberships": []
}
},
{
"timestamp": 1525298220133,
"changeType": "CHANGED",
"objectId": 1688960,
"changes": {
"changedProperties": [
"hs_lastmodifieddate",
"price",
"name"
],
"newAssociations": [],
"removedAssociations": [],
"newListMemberships": [],
"removedListMemberships": []
}
},
{
"timestamp": 1525298357009,
"changeType": "CREATED",
"objectId": 1645342,
"changes": {
"changedProperties": [
"hs_lastmodifieddate",
"name",
"description",
"price",
"recurringbillingfrequency"
],
"newAssociations": [],
"removedAssociations": [],
"newListMemberships": [],
"removedListMemberships": []
}
}
]Scope requirements
Scope requirements
Response
200 - application/json
Successful response - Create a new product
The response is of type object.
Last modified on March 16, 2026
Was this page helpful?
⌘I