curl --request POST \
--url https://api.hubapi.com/webhooks-journal/snapshots/2026-09/crm \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"snapshotRequests": [
{
"objectId": 123,
"objectTypeId": "<string>",
"portalId": 123,
"properties": [
"<string>"
]
}
]
}
'import requests
url = "https://api.hubapi.com/webhooks-journal/snapshots/2026-09/crm"
payload = { "snapshotRequests": [
{
"objectId": 123,
"objectTypeId": "<string>",
"portalId": 123,
"properties": ["<string>"]
}
] }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
snapshotRequests: [
{
objectId: 123,
objectTypeId: '<string>',
portalId: 123,
properties: ['<string>']
}
]
})
};
fetch('https://api.hubapi.com/webhooks-journal/snapshots/2026-09/crm', 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/webhooks-journal/snapshots/2026-09/crm",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'snapshotRequests' => [
[
'objectId' => 123,
'objectTypeId' => '<string>',
'portalId' => 123,
'properties' => [
'<string>'
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.hubapi.com/webhooks-journal/snapshots/2026-09/crm"
payload := strings.NewReader("{\n \"snapshotRequests\": [\n {\n \"objectId\": 123,\n \"objectTypeId\": \"<string>\",\n \"portalId\": 123,\n \"properties\": [\n \"<string>\"\n ]\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.hubapi.com/webhooks-journal/snapshots/2026-09/crm")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"snapshotRequests\": [\n {\n \"objectId\": 123,\n \"objectTypeId\": \"<string>\",\n \"portalId\": 123,\n \"properties\": [\n \"<string>\"\n ]\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hubapi.com/webhooks-journal/snapshots/2026-09/crm")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"snapshotRequests\": [\n {\n \"objectId\": 123,\n \"objectTypeId\": \"<string>\",\n \"portalId\": 123,\n \"properties\": [\n \"<string>\"\n ]\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"snapshotResponses": [
{
"objectId": 123,
"objectTypeId": "<string>",
"portalId": 123,
"snapshotStatusId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
]
}{
"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"
}
}Create CRM object snapshots
Crea un lote de instantáneas de objetos del CRM en HubSpot. Este punto de terminación se usa para capturar el estado actual de los objetos del CRM especificados para consultarlos o analizarlos más tarde. Requiere una carga útil JSON con los detalles de los objetos del CRM de los que se tomará la instantánea. Esta operación está exenta de los límites de solicitudes diarias y de diez segundos.
curl --request POST \
--url https://api.hubapi.com/webhooks-journal/snapshots/2026-09/crm \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"snapshotRequests": [
{
"objectId": 123,
"objectTypeId": "<string>",
"portalId": 123,
"properties": [
"<string>"
]
}
]
}
'import requests
url = "https://api.hubapi.com/webhooks-journal/snapshots/2026-09/crm"
payload = { "snapshotRequests": [
{
"objectId": 123,
"objectTypeId": "<string>",
"portalId": 123,
"properties": ["<string>"]
}
] }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
snapshotRequests: [
{
objectId: 123,
objectTypeId: '<string>',
portalId: 123,
properties: ['<string>']
}
]
})
};
fetch('https://api.hubapi.com/webhooks-journal/snapshots/2026-09/crm', 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/webhooks-journal/snapshots/2026-09/crm",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'snapshotRequests' => [
[
'objectId' => 123,
'objectTypeId' => '<string>',
'portalId' => 123,
'properties' => [
'<string>'
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.hubapi.com/webhooks-journal/snapshots/2026-09/crm"
payload := strings.NewReader("{\n \"snapshotRequests\": [\n {\n \"objectId\": 123,\n \"objectTypeId\": \"<string>\",\n \"portalId\": 123,\n \"properties\": [\n \"<string>\"\n ]\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.hubapi.com/webhooks-journal/snapshots/2026-09/crm")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"snapshotRequests\": [\n {\n \"objectId\": 123,\n \"objectTypeId\": \"<string>\",\n \"portalId\": 123,\n \"properties\": [\n \"<string>\"\n ]\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hubapi.com/webhooks-journal/snapshots/2026-09/crm")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"snapshotRequests\": [\n {\n \"objectId\": 123,\n \"objectTypeId\": \"<string>\",\n \"portalId\": 123,\n \"properties\": [\n \"<string>\"\n ]\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"snapshotResponses": [
{
"objectId": 123,
"objectTypeId": "<string>",
"portalId": 123,
"snapshotStatusId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
]
}{
"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
Supported products
Autorizaciones
The access token received from the authorization server in the OAuth 2.0 flow.
- Authorization URL
- https://app.hubspot.com/oauth/authorize
- Token URL
- https://api.hubapi.com/oauth/v1/token
Cuerpo
Un conjunto de objetos CrmObjectSnapshotRequest, cada uno de los cuales representa una solicitud para crear una instantánea de un objeto específico del CRM. Esta propiedad es obligatoria.
Show child attributes
Show child attributes
Respuesta
successful operation
Un conjunto de respuestas para cada solicitud de instantánea de objeto del CRM. Cada elemento del conjunto es un objeto CrmObjectSnapshotResponse que detalla el resultado de una única solicitud de instantánea.
Show child attributes
Show child attributes