NoSQL or MySQL for storing API usage
Two things.


Use the tool you already know.   This simplifies development, and reduces the desire to prematurely optimize.  
Fit your environment to the requirements.  The hardware required to store 400,000 x 10 byte rows per day is vastly different from 400,000 x 10,000 byte rows.  


Define your requirements by mocking up some sample data in MySQL, along with a sample of the queries you'll run.  See how much space this sample takes up, and do the math to determine the requirements for your data over a 1 month, a year, and so-forth.  This will give you a much better idea of the kind of hardware you'll need.

My answer talks about the requirements for storing billions of rows in SQL Server and shows some of the things to consider.  The other answers on that question are also quite instructive.  As I note in my answer, don't store an IP address as a varchar.  Use an integer.