Create a view with just the fields you want and sync it to a new base. Create an API Token that has read access to that new base. Now anyone with the token will have access to just those fields.
There is a severe drawback to this method, however, which arises due to a lapse of judgement on Airtable's part. Airtable doesn't sync bases that aren't in use, which is fine, but if when you make an API call to this base, it will serve you old data rather than syncing and then delivering you the data. So if the synced database has a "5" in Field X, but you change that value to "7" in your original base, the next API call to the synced database will receive "5" unless someone was active in that base in a web browser. Because of this, any time your clients want to grab data from the synced base, they should first wake the database by sending a simple retrieval, wait 1 minute, and then request again. By now Airtable will have finished its sync, and the database will now provide present data.