Nun, wenn ich die API nicht für Browser, sondern für Server bereitstelle, dann kann ich den API-Key an die IP des anfragenden Servers (= Client der API) binden.
Wenn ich die API für Browser (also Endutzer) bereit stelle, dann kann ich ein Login vorsehen und statt der Keys das Bestehen einer Session voraus setzen.
Beides bitte nur mit https…