"Normal" puede ser la elección incorrecta de las palabras para su pregunta. La verdadera pregunta es ... "¿Es seguro?"
Rompiendo la pregunta en diferentes partes, aquí tengo mi respuesta:
1. ¿Es seguro que un sitio me proporcione una clave API?
No es un problema proporcionarle su propia clave API, ya que es su clave su . Esto es cierto siempre y cuando la página se sirva utilizando https. Servir la página sin cifrar permitiría que cualquier persona entre usted y el servidor web también vea su clave API.
2. ¿Se puede pasar una clave API a través de la URL y seguir siendo secreta?
No. Pasar una clave API a través de la URL significa que la clave se almacena en los registros del servidor, en el historial de un navegador, visible para las extensiones del navegador, copiado / pegado accidentalmente por un usuario, etc. Ya no es un secreto. Esto es cierto incluso si la página se sirve a través de https.
3. ¿Una clave de API debe mantenerse en secreto?
Esta pregunta puede ser buena para explorar. Tal vez el servicio al que te refieres proporciona una clave API y una clave secreta. La clave API se puede exponer a través de la URL, pero la clave secreta debe usarse para calcular un encabezado determinado que también debe acompañar la solicitud.
Otro ejemplo podría ser una API que se espera que se llame a través de JavaScript. En este caso, cualquier cosa en el código será expuesta al cliente. Nuevamente, el servicio proporcionado puede esperar que una clave que se derive de su clave secreta se pase a través del servicio.
De forma alternativa, tal vez ninguna de las claves sea secreta, pero el servicio utiliza la lista de direcciones IP para asegurar que el servidor solo pueda utilizar las claves. También podrían realizar la comprobación del nombre de host y permitirle especificar nombres de host válidos en su cuenta para los que se permite el uso de la clave.
Summary
En última instancia, la técnica que un servicio elige utilizar para proteger sus claves y claves secretas debe coincidir con la necesidad de mantenerlos en secreto o la necesidad de proteger a los usuarios no autorizados de llamar al servicio. En algunos casos, no importa si alguien usa sus llaves para llamar al servicio.