I am trying to create a macOS shortcut (with the Shortcuts app) that fetches some stock quotes.
According to this web page, here is how to use the JSON structure:
- Open the Shortcuts app
- Click on the
+
sign to create a new shortcut - Add action
Get contents of URL
- Insert desired URL
- Add action
Get dictionary from input
(which automatically gets the dictionary from the URL) - Add action
Get dictionary value
- In field
key
insertfact
- Add
Show result
which will automatically set the variable name toDictionary Value
- Add action
Show result
- Then click on the play button
- Authorise access
- A pop-up message appears.
I looked up how Yahoo! Finance the API looks like thanks to this other web page which reveals the following API structure:
{
"quoteSummary": {
"result": [
{
"financialData": {
"maxAge": 86400,
"currentPrice": {
"raw": 144.49,
"fmt": "144.49"
},
"targetHighPrice": {
"raw": 214,
"fmt": "214.00"
},
"targetLowPrice": {
"raw": 122,
"fmt": "122.00"
},
"targetMeanPrice": {
"raw": 176.69,
"fmt": "176.69"
},
"targetMedianPrice": {
"raw": 176,
"fmt": "176.00"
},
"recommendationMean": {
"raw": 1.9,
"fmt": "1.90"
},
"recommendationKey": "buy",
"numberOfAnalystOpinions": {
"raw": 41,
"fmt": "41",
"longFmt": "41"
},
"totalCash": {
"raw": 48304001024,
"fmt": "48.3B",
"longFmt": "48,304,001,024"
},
"totalCashPerShare": {
"raw": 3.036,
"fmt": "3.04"
},
"ebitda": {
"raw": 130541002752,
"fmt": "130.54B",
"longFmt": "130,541,002,752"
},
"totalDebt": {
"raw": 132480000000,
"fmt": "132.48B",
"longFmt": "132,480,000,000"
},
"quickRatio": {
"raw": 0.709,
"fmt": "0.71"
},
"currentRatio": {
"raw": 0.879,
"fmt": "0.88"
},
"totalRevenue": {
"raw": 394328014848,
"fmt": "394.33B",
"longFmt": "394,328,014,848"
},
"debtToEquity": {
"raw": 261.446,
"fmt": "261.45"
},
"revenuePerShare": {
"raw": 24.317,
"fmt": "24.32"
},
"returnOnAssets": {
"raw": 0.21214001,
"fmt": "21.21%"
},
"returnOnEquity": {
"raw": 1.75459,
"fmt": "175.46%"
},
"grossProfits": {
"raw": 170782000000,
"fmt": "170.78B",
"longFmt": "170,782,000,000"
},
"freeCashflow": {
"raw": 90215251968,
"fmt": "90.22B",
"longFmt": "90,215,251,968"
},
"operatingCashflow": {
"raw": 122151002112,
"fmt": "122.15B",
"longFmt": "122,151,002,112"
},
"earningsGrowth": {
"raw": 0.048,
"fmt": "4.80%"
},
"revenueGrowth": {
"raw": 0.081,
"fmt": "8.10%"
},
"grossMargins": {
"raw": 0.43310001,
"fmt": "43.31%"
},
"ebitdaMargins": {
"raw": 0.33105,
"fmt": "33.11%"
},
"operatingMargins": {
"raw": 0.30289,
"fmt": "30.29%"
},
"profitMargins": {
"raw": 0.2531,
"fmt": "25.31%"
},
"financialCurrency": "USD"
}
}
],
"error": null
}
}
And here are the steps I made to get today's AAPL stock valuation:
- Open the Shortcuts app
- Click on the
+
sign to create a new shortcut - Add action
Get contents of URL
- Insert URL
https://query1.finance.yahoo.com/v11/finance/quoteSummary/AAPL
- Add action
Get dictionary from input
(which automatically gets the dictionary from the URL) - Add action
Get dictionary value
- In field
key
insertfinancialData
- Add action
Set variable
- Set field
Variable Name
tofinancialDataVar
- Add action
Get dictionary value
- In field
key
insertcurrentPrice
- Add action
Set variable
- Set field
Variable Name
tocurrentPriceVar
- Add action
Get dictionary value
- In field
key
insertraw
- Add action
Set variable
- Set field
Variable Name
torawVar
- Add action
Text
- In the text field, add on under the other:
financialDataVar
,currentPriceVar
, andrawVar
- Add action
Show alert
- Instead of
Do you want to continue?
insertText
Clicking on the play button shows a pop-up window, but, unfortunately, without any content.
My questions:
- What steps do I have to do in order to get AAPL current stock price when I click on the play button?
- Is there a way to ask the user to input their own ticker (say MSFT, or TSLA, etc.)?