API = アプリケーションプログラミングインタフェース です。
wikipedia の アプリケーションプログラミングインタフェース を引用すると
アプリケーションプログラミングインタフェース(API、英: Application Programming Interface)とは、広義の意味ではソフトウェアコンポーネントが互いにやりとりするのに使用するインタフェースの仕様である。
今回の質問は、 Web API と呼ばれるものに対してだと思いますが、一般的な Web API は「責任分界点の構築」を意図して、インターフェイスを作成し、内部資産を外部から利用させます。
言い換えると、内部の資産を安全/確実に容易に使用してもらうための手続きを共通化し、ブラックボックス化して、使用者に内部処理を意識させない形で提供することを目的とします。
API でできることは提供者によって制限されているので、API を利用できない場面も当然発生します。その場合は、内部処理に直接働きかける必要があり、内部の処理と密に連携する必要が発生します。
API を利用するもしないも本質的には自由ですが、プログラマーから見たときにはその「コンポーネント化」された処理による利便性を評価し、適当であれば使用します。また、契約的にも一般的な Web API は利用規約が定められているため、その内容を評価し、利用するしないを判断します。
たとえば、twitter では
・フォロワーの tweet を取得
は API を利用することで実現できますが
・twitter から退会
することは、API の利用では出来ません。
この場合、twitter 退会処理を実現するためには、twitter の本体のプログラムと連携する必要があります。
また、tweet を秒間 10万件取得する必要があるような要件があれば、それは API を使用することが出来ないので、個別に契約を行う必要が発生します。
つらつらと思いつくままに記述したので、ちょっと読みにくいかもしれませんが参考まで。