@Abdul Azeez it wouldn't be unreasonable to expect to pay some money up front to get several bids. Once you establish a relationship with a contractor you like they probably won't continue charging you to give estimates based on the fact that they are most likely going to be given the work. If you are looking for ballpark estimates I would suggest educating yourself on the cost of construction. This education may include paying a contractor a couple hundred bucks to walk through a property with you, take notes and ask questions.
If you expect us to be the architect, the designer, the inspector, and the contractor I think a small fee is pretty fair.
Giving the right estimate has nothing to do with it, contractors have different overhead costs (more professional ones may have an office staff, professional office/warehouse, ect.), different labor costs,
It really all comes down to you get what you pay for. If you are given a free estimate there is probably a reason for it: contractor is out of work and needs the business, he is a new contractor trying to get his foot in the door, etc. On the other hand a reputable contractor who has a good reputation and a steady flow of work doesn't necessarily need your project to stay "alive" and therefore is probably going to charge for their time.