(1) Would something like this help. The idea would be to run your API as is but then get your data in a format that's easier to work with and then (2) run an efficient Query on it.
response = {meta -> {request -> {granularity -> Daily,
startdate -> 2018 - 01 - 27, enddate -> 2018 - 01 - 31,
limit -> Null}, status -> Success,
last_updated -> 2018 - 07 - 31},
value -> {{date -> 2018 - 01 - 27,
value -> 1.48229^7}, {date -> 2018 - 01 - 28,
value -> 1.42697^7}, {date -> 2018 - 01 - 29,
value -> 1.67565^7}, {date -> 2018 - 01 - 30,
value -> 1.91857^7}, {date -> 2018 - 01 - 31,
value -> 1.9082^7}}}
Now turn your data into hierarchical Associations. Note the right composition of operator forms.
response2 = (Association /* MapAt[Association, Key@meta] /*
MapAt[Association, {Key@value, All}])[response]
And now run the appropriate Query.
Query[Key@value, All, Key@value][response2]
The result is the list {15.7229, 12.0477, 37.0922, 95.6849, 92.1228}, which is I believe what you want.
The advantage of this method is that once the data is in a nice form, you can use the panoply of Wolfram Language functionality. The only disadvantage I see is bandwidth. If all you really need is that last number and that's all you are ever going to need, then fiddling with the API query might be a better way to go.
I wrongly assumed based on your question that things like meta were symbols rather than the string "meta". Can you provide the InputForm of the response you are getting. The reason we are getting different numbers is that Mathematica is parsing the ^ as an power operator rather than meaning 10 to the 7th power. I am confident your goal can be met pretty easily once we have the data in InputForm.