How to get recent deleted contacts




I’m developing a 2 way sync integration between hubspot and a 3rd party platform and i’m basic the sync algorithm on the get recent contacts endpoint.

The problem is that this endpoint only informs when contacts are created and updated. How can i see which contacts were deleted in the same way?

Thank you,
Emanuel Silva


@emanuelbsilva In order to watch for deleted contacts you will need to set up a webhook that will let you know that a contact has been deleted in HubSpot.


@pmanca Thank you for taking the time to answer my question.

I was afraid you were going to say that. What happens if for some reason my server cannot get the hook (ie. server is down or network issues) ? Is there a way to recover from what might have been missed hooks?

Thank you,
Emanuel Silva


@emanuelbsilva That is a great question and use case. The redundancy of your servers will have to be handled on your side. You will have to create a fail over/backup server or leverage a load balancer of some-sort to maintain that IT infrastructure on your side.


Ok @pmanca, that’s fair.

I’ve looked at the documentation and saw that the API also tries multiple times if it fails, which is cool. Thank you for your answers and have a great year.


I have the same question, but unfortunately we cannot utilize the webhook solution because our stitch integration relies on and can only utilize the Hubspot REST apis. Is there a good reason we can't have a property isDeleted on the contact like we have for deals?


I'm with you on this one.

There are a few work-arounds (not so great) to this one....

  1. Build a little custom side job that runs daily and pulls a list of all deal ids, and all contact ids from hubspot. Then delete the extra rows from the stitch data tables... not so great.
  2. Try and train your users to NOT delete things - too bad there are no user level permissions that prevent deleting. (Too bad permissions are not managed at the group level....) - and train them to set a custom property like 'Delete This Record Yes/No' - and have a secondary integration delete them through an api call.

#1 is preferred I suppose, but it's really frustrating to us that to get a simple list of all vids we have to write all kinds of looping api code, get next page of ids, etc. and in this day and age we are limited to retrieving 100 ids at a time. That's 1,200 api calls just to get a list of vids from hubspot.

How about a GetAllContactVids api endpoint or something?