Hi,
you could use the websocket subscription with AM (aggregated minutes), and then test if 15 minutes past since your last operation.
then you could take the 15 1 minute bars and resample them to 1, 15 minute bar.
if you save them in a dataframe you could do it like this:
df.resample('15T').agg(dict(
open='first',
high='max',
low='min',
close='last',
volume='sum',
))
if you save them as bars, just do the operations described manually