あるプラットフォーム(OSやミドルウェア)向けのソフトウェアを開発する際に使用出来る命令や関数の集合のこと。また、それらを利用するためのプログラム上の手続きを定めた規約の集合。個々のソフトウェアの開発者がソフトウェアの持つすべての機能をプログラミングするのは困難で無駄が多いため、多くのソフトウェアで共通して利用する機能はOSやミドルウェアなどの形でまとめて提供されている。個々の開発者は規約に従って祖の機能を“呼び出す”だけで自分でプログラミングすることなくその機能を利用したソフトウェアを作成する事ができます。