The most commonly used / expected method for providing an API is using REST/(JSON). It essentially consists of providing an endpoint, that maps to the requested data. eg:
https://example.com/api/(product-name)/(size)
where the client makes a request
https://example.com/api/widget/large
and you then return json object with the specs for the widget size large. If the client wants data on gadget size small, they then make a request with those params.
Here is an article which explains it in more detail.
[
stackoverflow.blog...]
The article use express.js for the server side, but you can easily find tutorials online for PHP.
As for security and user authentication, this is typically done using a system of keys/tokens, see: [
jwt.io....]
implementing this can be complicated, and it can be also be done wrong, with little to no warning.
An easy (less secure) solution to start out would be to use a subdomain for each client, then limit access to the subdomain to single or few IP addresses that only the client uses.
Caveats:
Whatever you do you will need to rate limit what the client can access. Otherwise your client can in a very short time access all the data, store it, and then cancel the contract and then have access to your data forever more. Even if your client doesn't act nefariously, the additional requests on your system, if too frequent, could cause you problems.