You mentioned you're using google's directions API, what is this doing differently than the walking directions in maps? Doesn't that include bike paths, passages etc?
The bike directions prioritize streets with bike lanes and low traffic bike boulevards. With walking, really any street with a side walk will do.