Tag that reads HTTP periodically

Hi! I have API's and essentially want a tag version to represent a piece of data from each one. Lets say all my API's have a dint and I want to assign that dint to a tag every few seconds or so, which is easy enough to do in a script

url = "http://**/api/get_dint"
client = system.net.httpClient()
response = client.get(url)

but there's no such thing as a script tag and I wouldn't know how to get this info to a tag without using the change value or something along those lines and of course this isn't really possible using an expression as far as I know.

My goal is too just read from the API every few seconds or so, is there anyone who has had a similar situation and has an idea?

Put your HTTP calls into a timer script that writes the results into memory tags?

I thought of that but I thought it wouldn't be dynamic enough in terms of adding/removing API's (although its doable) but mostly if I wanted this tag to be part of UDT - that would also be difficult right

Put your entire API call logic into the project script library (in your gateway scripting project). Use an expression tag with runScript to run your API call function and output the result to that tag, inside the UDT. Optionally, parameterize which function gets called in runScript via your UDT.