Price: $24.99 - $14.50
(as of Nov 01, 2026 09:03:15 UTC – Details)



When Darkslayer Darien Cassel first took human Loren Calla under his wing, he’d made a promise to protect her from anything. And now that she has fallen into a coma, every day a losing battle to return to life, he is determined to save her.

When he hears rumors of the one place in Terra that houses a secret that just might bring her back to him, he drops everything to try it, leaving behind the city he grew up in and the people he calls family. His decision sets his best friend Maximus Reacher onto a road of his own—one no less dangerous than Darien’s as he unearths the secrets of his past, uncovering a multitude of lies and legends better left buried.

Meanwhile, in the historic city of Yveswich, Roman Devlin of the House of Black gets tangled up with a shapeshifting Selkie of the Riptide, a member of a rival Darkslaying house and a thorn in his side. Shay Cousens is a pickpocket with endless tricks up her sleeve—and if Roman isn’t careful, she might succeed at stealing both his wallet and his heart as they work together to find her missing sister. Their path will lead them not just to Angelthene, but also into the dark secrets of the Phoenix Head Society—and the restorative body of water that has the power to cleave their world in two.

Loyalties are tested, and worlds collide in City of Lies and Legends, the third installment in the House of Devils series.

Publisher ‏ : ‎ Independently Published
Publication date ‏ : ‎ March 12, 2024
Language ‏ : ‎ English
Print length ‏ : ‎ 776 pages
ISBN-10 ‏ : ‎ 1998268063
ISBN-13 ‏ : ‎ 978-1998268061
Item Weight ‏ : ‎ 1.96 pounds
Dimensions ‏ : ‎ 5.5 x 1.94 x 8.5 inches
Book 3 of 4 ‏ : ‎ House of Devils
Best Sellers Rank: #23,349 in Books (See Top 100 in Books) #107 in Urban Fantasy (Books) #116 in New Adult & College Fantasy (Books) #780 in Romantic Fantasy (Books)
Customer Reviews: 4.5 4.5 out of 5 stars (8,293) var dpAcrHasRegisteredArcLinkClickAction; P.when(‘A’, ‘ready’).execute(function(A) { if (dpAcrHasRegisteredArcLinkClickAction !== true) { dpAcrHasRegisteredArcLinkClickAction = true; A.declarative( ‘acrLink-click-metrics’, ‘click’, { “allowLinkDefault”: true }, function (event) { if (window.ue) { ue.count(“acrLinkClickCount”, (ue.count(“acrLinkClickCount”) || 0) + 1); } } ); } }); P.when(‘A’, ‘cf’).execute(function(A) { A.declarative(‘acrStarsLink-click-metrics’, ‘click’, { “allowLinkDefault” : true }, function(event){ if(window.ue) { ue.count(“acrStarsLinkWithPopoverClickCount”, (ue.count(“acrStarsLinkWithPopoverClickCount”) || 0) + 1); } }); });