If the API is setup on a webserver using TLS ( https ) the query parameters will be encrypted and would not be visible to an outside attacker. You must ensure that the API is only reachable via https to ensure that an attacker cannot perform a https downgrade attack and force the webserver to expose the API over http.
The logs for the API webserver will contain the query parameters so logs will needs to be treated as PII data.
To solve the log issue, you could either run all logs through some sort of "scrubbing" program to remove the PII. Or depending on how MSISDNs are used and stored in your business systems, its possible that you could run the MSISDN through a cryptographic hash function such as one of the SHA-2 variants or BLAKE3 and store the resulting hash in your database along with the product record.
For example, assuming the MSISDN is 447123456789. Prepend a random "key" to the MSISDN. I will use the string "6aVYWFwUpYJNDyl7oRfC" for the example. Prepend the key to the MSISDN and run it through a cryptographic hash function.
echo -n '6aVYWFwUpYJNDyl7oRfC447123456789' | sha256sum
a24ef48d72bf43e085866cfa3677d6061b8a5654c864bdee91de01a5173ba8d4
Now you can store the hash result, "a24ef48d72bf43e085866cfa3677d6061b8a5654c864bdee91de01a5173ba8d4" in the database as part of the product records. The API can then use the hashed version of the MSISDN to perform the search. Since the hash cannot be converted back to a MSISDN the webserver logs will not contain the MSISDN.
The "key" would have to be known to all users of the API, since it is required to calculate the MSISDN lookup hash. If the API is only of internal use, this could work. If its going to be a public API it would not be practical since you don't want the public to know the value of the "key".
------------------------------
David Robinson
Ingenuity Solutions, Inc.
------------------------------