shock based API