add URL validation
add API error handling