I've had a client approach me to develop an application that would interface with an existing web API.

Normally my perspective is that the freelancer shouldn't bill the client for any time spent learning common tools. However, the existing web API the client wants to access is a specialty API and is only useful in specialty applications. I don't expect I would ever need the API again, and I am highly doubtful that the client will find another freelancer that is already familiar with the API.

What is the normal thing to do in such a situation? Do I include the time spent learning specialty tools in my proposal for the project, silently bump up the rate, or something else?

3 Answers 3


I would say that if it's a special API that is very restrictive in who has access, and the client is dead-set on using it, they need to pay for it.

Notice I included a few rules for that... The CLIENT needs to say they need to use it, and that no other common API would meet their needs. If this is the case, then absolutely, you should charge for that time. But how?

Just tell them. Explain that if it's a custom API with limited access to documentation, that it takes extra time away from other clients you may have to learn it, or get something working. The client then has two choices, either hire you for a potentially higher cost (learning time shouldn't be free in this case), or get another freelancer, and hope they don't know they have to learn it for free.

I'm not a fan of giving away large blocks of time or expertise for free. If they want you to learn the API, and build and support other products for them, suggest they put you on a retainer as well. This guarantees they will use you, and make the cost of learning the API less and less with each project. So, are they in it for the long haul, or just for this single program?

  • The client definitely needs a special-purpose API. There may be more than one option, but they are all similar in scope and usefulness outside of this project. I don't imagine they'll need another app that uses the same API, but I suppose I can suggest it to maximize their investment if they take issue with the cost outline I come up with. Thanks!
    – user45623
    Sep 30, 2015 at 18:22

If you were a carpenter and your client wanted you to build unique chair which to your understanding would not be required by any other client. Would you charge him for the new tools you require to build his chair only?

It is often difficult when you do not have an absolute relation where you could say an apple cost x $ so should the other apple. In development, time is your tool and if used to gain expertise or build an application, it should be charge accordingly. However charging it as "learning" would not be the best practice so I would suggest you add the time in the development period.


I would simply list these hours and charge them, as they belong to the scope of the project.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.