Put the chicken in a large resealable bag. Combine the soy sauce, lime juice, canola oil, honey, ginger, pepper flakes, garlic and onions in a large bowl and whisk to blend. Pour the marinade into the resealable bag and massage it into the chicken. Place in the refrigerator to marinate for at least 1 hour but not more than 2 hours total.
Heat a grill to medium heat.
Remove the chicken from the marinade, place on a baking sheet lined with paper towels and pat the chicken dry. Pour the marinade into a small pot and reduce by half over medium-low heat, about 10 minutes. Set aside to brush on the chicken when grilling.
Grill the chicken until the skin gets crispy, about 6 minutes. Flip, brush the cooked side with the reduced marinade and cook for another 6 minutes. Flip and brush again with the reduced marinade. Cook each side until nicely browned and slightly sticky, an additional 2 to 3 minutes per side. Transfer to a serving platter and serve.