One way, (other than Event System, etc) to do this would be to get a list of Publish Transactions and then iterate through them to get the the item(s) that your interested in and check that the transaction is an unpublish action.
The following code may help as a starter:
PublishTransactionsFilterData transactionFilter = new PublishTransactionsFilterData
StartDate = new DateTime(2017, 12, 22, 00, 00, 00),
EndDate = new DateTime(2018, 01, 22, 20, 00, 00),
PublishTransactionState = PublishTransactionState.Success,
var returnedTransactions = Client.GetSystemWideList(transactionFilter);
foreach (var transaction in returnedTransactions)
PublishTransactionData tx = (PublishTransactionData)transaction;
if (tx.ListInfo.PublishAction == 1) . //Check that it's an unpublish action. Publish=0. Unpublish=1.
//You can then check whether the tx.Items array contains the TcmId of the item you're interested in
bool containsTcmId = tx.Items.Any(i => String.Equals(i.IdRef, "tcm:0-1234-64", StringComparison.CurrentCulture));
As Velu says though, this will not work if the Publish Transaction has been deleted. Also, any subsequent unpublish (or publish) of the item will remove the earlier Publish Transactions relating to it.