interface + api