First of all, every API request must go through https.
Then you can "secure" user-specific APIs by giving each user a unique token which must be sent at every request.
It is as well possible to check the host or useragent of the user which requests the API and allow only specific custom useragents (depending on your needs).
Other than that:
If you need a JSON response while the user is logged in on the same server, you can check if a given cookie or session is set and can be related to that one specific user.
If you do server to server requests for that API, you could check if the server hostname is valid and matches the one(s) who are allowed to have access.
You can as well use encryption to secure your API response (here as well: depending on your needs). If this is true, you can use a private/public key encryption similar to GPG/PGP. Of course, only the one who should have access to the API should be allowed to decrypt the response.
GUID (Globally Unique Identifier) may be an option if you don't care if anyone could find out the path to your API. GUID URLs could look like this:
example.com/api/v1/c9a646d3-9c61-4cb7-bfcd-ee2522c8f633