@jbudd Try this flow. Just add your client ID & client secret.
[{"id":"138e060b5da2f1af","type":"http request","z":"03cd1d2be26baaa9","name":"API call","method":"use","ret":"obj","paytoqs":"query","url":"","tls":"","persist":false,"proxy":"","insecureHTTPParser":false,"authType":"","senderr":false,"headers":[],"x":400,"y":400,"wires":[["ad4905267f9f1c5b"]]},{"id":"ad4905267f9f1c5b","type":"function","z":"03cd1d2be26baaa9","name":"format data","func":"let fullArray = msg.payload.features[0].properties.timeSeries\nfullArray = fullArray.slice(0, 37)\nconst tempArray = []\nvar code\nvar lookupTable = {\n 0: \"Clear night\",\n 1: \"Sunny day\",\n 2: \"Partly cloudy (night)\",\n 3: \"Partly cloudy (day)\",\n 4: \"Not used\",\n 5: \"Mist\",\n 6: \"Fog\",\n 7: \"Cloudy\",\n 8: \"Overcast\",\n 9: \"Light rain shower (night)\",\n 10: \"Light rain shower (day)\",\n 11: \"Drizzle\",\n 12: \"Light rain\",\n 13: \"Heavy rain shower (night)\",\n 14: \"Heavy rain shower (day)\",\n 15: \"Heavy rain\",\n 16: \"Sleet shower (night)\",\n 17: \"Sleet shower (day)\",\n 18: \"Sleet\",\n 19: \"Hail shower (night)\",\n 20: \"Hail shower (day)\",\n 21: \"Hail\",\n 22: \"Light snow shower (night)\",\n 23: \"Light snow shower (day)\",\n 24: \"Light snow\",\n 25: \"Heavy snow shower (night)\",\n 26: \"Heavy snow shower (day)\",\n 27: \"Heavy snow\",\n 28: \"Thunder shower (night)\",\n 29: \"Thunder shower (day)\",\n 30: \"Thunder\"\n}\n\nfor (let i = 0; i < fullArray.length; i++) {\n let a = (fullArray[i])\n let weatherCode = (lookupTable[a.significantWeatherCode])\n const ts = new Date(a.time).getTime()\n const tempData = {\n measurement: \"metoffice\",\n fields: {\n temperature: a.screenTemperature,\n maxTemp: a.maxScreenAirTemp,\n minTemp: a.minScreenAirTemp,\n feelsLike: a.feelsLikeTemperature,\n windGust: Math.round(a.windGustSpeed10m / 1609.344 * 3600),\n windSpeed: Math.round(a.windSpeed10m / 1609.344 * 3600),\n rainProb: a.probOfPrecipitation,\n rainPrecip: a.totalPrecipAmount,\n weatherCode: weatherCode,\n uvIndex: a.uvIndex\n },\n tags: {\n tag1: 'weather',\n tag2: 'metoffice'\n },\n timestamp: ts\n }\n tempArray.push(tempData)\n}\n\nmsg.payload = tempArray\nreturn msg","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":570,"y":400,"wires":[["298c8848b85db6eb"]]},{"id":"4d3234f2043a477e","type":"change","z":"03cd1d2be26baaa9","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"{\"excludeParameterMetadata\":true,\"includeLocationName\":true,\"latitude\":53.105019,\"longitude\":-3.912304}","tot":"json"},{"t":"set","p":"headers","pt":"msg","to":"{\"accept\":\"application/json\",\"x-ibm-client-secret\":\"client secret here\",\"x-ibm-client-id\":\"client id here\"}","tot":"json"},{"t":"set","p":"url","pt":"msg","to":"https://api-metoffice.apiconnect.ibmcloud.com/metoffice/production/v0/forecasts/point/hourly","tot":"str"},{"t":"set","p":"method","pt":"msg","to":"GET","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":275,"y":400,"wires":[["138e060b5da2f1af"]],"l":false,"info":"[https://metoffice.apiconnect.ibmcloud.com/metoffice/production/api](https://metoffice.apiconnect.ibmcloud.com/metoffice/production/api)"},{"id":"a8b5e205fd9fdd2a","type":"inject","z":"03cd1d2be26baaa9","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":180,"y":400,"wires":[["4d3234f2043a477e"]]},{"id":"298c8848b85db6eb","type":"debug","z":"03cd1d2be26baaa9","name":"debug 19","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":740,"y":400,"wires":[]}]
EDIT - Sorry, re-read your last post & you already have it working!