Ok so in my country (English is a 2nd language for many people), it's pretty common to say either one. But recently, a friend pointed out that "at only $5" is wrong. And the mistake probably originates from the usage "starting at (price)", he said. And when I googled, it seems that only people from my country use "at only" before prices.
To give context, example of sentences would be as below:
a)Enjoy a three-course meal for/at only $11.99
b)Monthly rent for/at only $200/mth
c)Enjoy 10GB data, plus unlimited calls and SMS for/at only $20/mth
Would love to hear your thoughts on which one is more grammatically correct, and why. Thank you very much in advance.