API call by property update date

Hello,

We would like to ingest the Engagement activities history into our internal BI system.

For example, for the calls we would like to display when the status changes (among others changes).

Right now, based on the Calls API we would write the ETL on python as follow:

hubspot_api_response = hubspot_client.crm.objects.calls.basic_api.get_page(limit=10, properties=["hs_call_status", "hs_activity_type ", "hubspot_owner_id", "hs_call_disposition", "hs_timestamp", "hs_call_body", "hs_call_direction"], properties_with_history=["hs_call_status"], archived=False)

I think I might be missing it, but is there any way to filter the callS (or any other engagement) based on the properties_with_history last update date (i.e. data for the last week updates)?

Hey, @pruedas :waving_hand: Welcome to our community! Have you looked into using the Search API? It offers filtering options along with being able to set the properties you want returned in the request body.

Have fun testing! — Jaycee

Thank you Jaycee!

We have been trying the search API as mentioned above. It worked well to get an snapshot of the historical data, but we found an small issue: we have are tracking more than one property, so when looking at the data we can’t really know which one was updated (without looking the previous data).

We were wondering, Is there a changelog variable for the changes on properties? For example, if we get that a deal changed at 13:00, we get if it was a change on the status or other property.

Lot of thanks again in advance!

Hi @pruedas You’re not missing a hidden filter. The calls endpoint can return history, but you can’t natively filter by “the last time this specific property changed.”

In practice, teams now do one of two things in 2025: pull deltas with Search API on hs_lastmodifieddate to keep the window small, then inspect propertiesWithHistory in-code to identify which property flipped (https://developers.hubspot.com/docs/api-reference/search/guide ).

Or, better, use HubSpot’s CRM Audit Logs API to stream change events with occurredAt, propertyName, and old/new values so your ETL knows exactly which field changed without comparing snapshots
(https://developers.hubspot.com/docs/api-reference/account-audit-logs-v3/activity/get-account-info-v3-activity-audit-logs )

If you only care about calls, you can scope the audit query to the calls object; if you’re tracking multiple engagements, the audit feed becomes your single changelog. One quick question: do you need near real time, or would minute-level batching be fine? When this hinges on reliable two-way sync, Stacksync handles the mapping and timing so records stay consistent without manual patches.