Попробую просто:
API для сайта — это скрипт (как правило), который принимает запросы (по методам GET (site.ru/api.php?a=b), POST) и отдаёт не обычный HTML для браузеров, а результат запроса в определённом формате (XML, JSON, php serialize()-ed).
Соответственно предназначен он не пользователям, а скрипту со стороннего сайта/сервиса/программки, который посылает эти GET/POST запросы, получает результат и как-то использует данные. Посылает он запросы естественно не просто так, а чтобы выполнить определённое действие (напр. как действия которые выполняют пользователи сайта через браузер).
Пользователям-программистам он нужен для интеграции с другими сайтами/сервисами программами, или автоматизации некоторых действий, создав программку для вашего сайта. Соответствено нужен он обычно только очень популярным сайтам/сервисам.