¿Por qué usar una clave API y un secreto?

Encontré muchas API que le dan al usuario una APIllave y unsecreto. Pero mi pregunta es: ¿cuál es la diferencia entre ambos?

En mis ojos, una llave puede ser suficiente. Digamos que tengo una clave y solo yo y el servidor lo sabemos. Creo un hash HMAC con esta clave y hago una llamada a la API. En el servidor, creamos el hash HMAC nuevamente y lo comparamos con el hash enviado. Si es lo mismo, se autentica la llamada.

Entonces, ¿por qué usar dos teclas?

Editar: ¿O esa clave de API se usa para buscar el secreto de la API?

Respuestas a la pregunta(4)

Su respuesta a la pregunta