Authentication with only API access

our app just provides its users with API to call and there is no user interface, is there any way to authorize our application for access or a way for the users to directly provide me with access token within the API call to my application?

This is exactly what the OAuth 2.0 Authorization Code Grant is for. You get a one time authorization then you have to maintain the access token by refreshing it periodically. Once the user authorizes you to access their data then you can potentially perpetually refresh indefinitely without approval again.