To understand the use of making the api throw Runtime exception. Please follow this link. It is nice http://onjava.com/onjava/2003/11/19/exceptions.html
One quote from above link says
Never let implementation-specific checked exceptions escalate to the higher layers. For example, do not propagate SQLException from data access code to the business objects layer. Business objects layer do not need to know about SQLException. You have two options:
Convert SQLException into another checked exception, if the client code is expected to recuperate from the exception.
Convert SQLException into an unchecked exception, if the client code cannot do anything about it.
Most of the time, client code cannot do anything about SQLExceptions. Do not hesitate to convert them into unchecked exceptions.
I think this clearly explains the benefit of runtime exceptions