{"openapi":"3.1.0","info":{"title":"Fugle Market Data (BYOK) API","version":"0.1.0","description":"Fugle Market Data (BYOK) lets an AI assistant read your own Fugle Market Data data through the Fugle Market Data API with a key you supply (Fugle Market Data API key). Read-only: 9 tools (list_tickers, get_ticker, get_quote, get_movers, get_historical_candles, get_52_week_stats, get_sma, get_dividend_events, get_institutional_trades). The BYOK key travels with each request, is used for that one...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-fugle.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-fugle/docs"},"termsOfService":"https://connectorbay.com/byok-fugle/terms"},"servers":[{"url":"https://byok-fugle.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-fugle/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/list_tickers":{"post":{"operationId":"list_tickers","summary":"List Taiwan tickers of one type (stocks, indices, warrants or odd-lot), optionally filtered by exchange, market, industr","description":"List Taiwan tickers of one type (stocks, indices, warrants or odd-lot), optionally filtered by exchange, market, industry or status such as attention or disposition stocks. Use for \"Which Taiwan stocks are currently on the attention list\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"type":{"description":"Ticker type: EQUITY, INDEX, WARRANT or ODDLOT.","enum":["EQUITY","INDEX","WARRANT","ODDLOT"],"title":"Type","type":"string"},"exchange":{"anyOf":[{"enum":["TWSE","TPEx"],"type":"string"},{"type":"null"}],"default":null,"description":"Exchange: TWSE or TPEx.","title":"Exchange"},"market":{"anyOf":[{"enum":["TSE","OTC","ESB","TIB"],"type":"string"},{"type":"null"}],"default":null,"description":"Market: TSE, OTC, ESB or TIB.","title":"Market"},"industry":{"anyOf":[{"maxLength":4,"type":"string"},{"type":"null"}],"default":null,"description":"Industry code (two digits, for example '24' for semiconductors).","title":"Industry"},"is_attention":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to list only attention stocks (then only stocks are returned).","title":"Is Attention"},"is_disposition":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to list only disposition stocks (then only stocks are returned).","title":"Is Disposition"},"is_halted":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to list only stocks with trading halted (then only stocks are returned).","title":"Is Halted"}},"required":["type"],"title":"list_tickersArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_ticker":{"post":{"operationId":"get_ticker","summary":"Get the basic data of one ticker: name, market, industry, previous close, reference price, price limits and day-trade fl","description":"Get the basic data of one ticker: name, market, industry, previous close, reference price, price limits and day-trade flags. Use for \"What are today's limit-up and limit-down prices for 2330\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"symbol":{"description":"Taiwan stock, ETF or index code, for example '2330' (TSMC) or '0050'.","maxLength":12,"title":"Symbol","type":"string"}},"required":["symbol"],"title":"get_tickerArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_quote":{"post":{"operationId":"get_quote","summary":"Get the intraday quote of one ticker: open, high, low, last price, change, average price, best bid and ask levels and cu","description":"Get the intraday quote of one ticker: open, high, low, last price, change, average price, best bid and ask levels and cumulative volume and value. Use for \"What is the current price of Taiwan stock 2330\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"symbol":{"description":"Taiwan stock, ETF or index code, for example '2330' (TSMC) or '0050'.","maxLength":12,"title":"Symbol","type":"string"}},"required":["symbol"],"title":"get_quoteArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_movers":{"post":{"operationId":"get_movers","summary":"Rank stocks of a market by price change or percentage change, up or down, with open, high, low, close and volume (needs ","description":"Rank stocks of a market by price change or percentage change, up or down, with open, high, low, close and volume (needs a Fugle Developer or Advanced plan). Use for \"Which stocks rose the most today on the Taiwan main board\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"market":{"description":"Market: TSE (listed), OTC (over the counter), ESB (emerging general board) or TIB (innovation board).","enum":["TSE","OTC","ESB","TIB"],"title":"Market","type":"string"},"direction":{"description":"up for gainers, down for decliners.","enum":["up","down"],"title":"Direction","type":"string"},"change":{"description":"Rank by percent (change percentage) or value (price change).","enum":["percent","value"],"title":"Change","type":"string"},"type":{"anyOf":[{"enum":["ALLBUT0999","COMMONSTOCK"],"type":"string"},{"type":"null"}],"default":null,"description":"ALLBUT0999 for stocks, special shares and ETFs, or COMMONSTOCK for common stock only.","title":"Type"}},"required":["market","direction","change"],"title":"get_moversArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_historical_candles":{"post":{"operationId":"get_historical_candles","summary":"Get historical candles for a stock or index: daily, weekly, monthly or minute bars, optionally split-adjusted. The date ","description":"Get historical candles for a stock or index: daily, weekly, monthly or minute bars, optionally split-adjusted. The date range must be shorter than one year. Use for \"Show the daily closing prices of 2330 for the last month\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"symbol":{"description":"Taiwan stock, ETF or index code, for example '2330' (TSMC) or '0050'.","maxLength":12,"title":"Symbol","type":"string"},"date_from":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Start date as YYYY-MM-DD.","title":"Date From"},"date_to":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"End date as YYYY-MM-DD.","title":"Date To"},"timeframe":{"anyOf":[{"enum":["1","3","5","10","15","30","60","D","W","M"],"type":"string"},{"type":"null"}],"default":"D","description":"Bar size: 1, 3, 5, 10, 15, 30, 60 (minutes), D (day, default), W (week) or M (month).","title":"Timeframe"},"adjusted":{"anyOf":[{"enum":["true","false"],"type":"string"},{"type":"null"}],"default":null,"description":"true for adjusted prices (daily, weekly and monthly bars only).","title":"Adjusted"},"fields":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated fields: open, high, low, close, volume, average, turnover, change (default open,high,low,close,volume,average).","title":"Fields"},"sort":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":"desc","description":"Date order: desc (default) or asc.","title":"Sort"}},"required":["symbol"],"title":"get_historical_candlesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_52_week_stats":{"post":{"operationId":"get_52_week_stats","summary":"Get the latest trading day's figures and the 52-week high and low of a listed or OTC stock (not emerging stocks or warra","description":"Get the latest trading day's figures and the 52-week high and low of a listed or OTC stock (not emerging stocks or warrants). Use for \"What are the 52-week high and low of 0050\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"symbol":{"description":"Taiwan stock, ETF or index code, for example '2330' (TSMC) or '0050'.","maxLength":12,"title":"Symbol","type":"string"}},"required":["symbol"],"title":"get_52_week_statsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_sma":{"post":{"operationId":"get_sma","summary":"Get the simple moving average of a stock over a period for each bar of a timeframe (a Fugle Developer plan feature, mark","description":"Get the simple moving average of a stock over a period for each bar of a timeframe (a Fugle Developer plan feature, marked beta by the vendor). Use for \"What is the 5-day moving average of 2330\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"symbol":{"description":"Taiwan stock, ETF or index code, for example '2330' (TSMC) or '0050'.","maxLength":12,"title":"Symbol","type":"string"},"timeframe":{"description":"Bar size: 1, 3, 5, 10, 15, 30, 60 (minutes), D, W or M.","enum":["1","3","5","10","15","30","60","D","W","M"],"title":"Timeframe","type":"string"},"period":{"description":"Number of bars averaged, for example 5.","maximum":500,"minimum":1,"title":"Period","type":"integer"},"date_from":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Start date as YYYY-MM-DD; send together with date_to (minute bars always return the last 30 days).","title":"Date From"},"date_to":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"End date as YYYY-MM-DD; send together with date_from.","title":"Date To"}},"required":["symbol","timeframe","period"],"title":"get_smaArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_dividend_events":{"post":{"operationId":"get_dividend_events","summary":"List ex-dividend and ex-rights events of listed and OTC companies in a date range, including future announcements (needs","description":"List ex-dividend and ex-rights events of listed and OTC companies in a date range, including future announcements (needs a Fugle Developer plan). Use for \"Which companies go ex-dividend next week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"start_date":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Start date as YYYY-MM-DD.","title":"Start Date"},"end_date":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"End date as YYYY-MM-DD; a future date shows announced events.","title":"End Date"},"sort":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":"desc","description":"Date order: desc (default) or asc.","title":"Sort"}},"title":"get_dividend_eventsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_institutional_trades":{"post":{"operationId":"get_institutional_trades","summary":"Get daily buy, sell and net shares of foreign investors, investment trusts and dealers for one stock (needs a Fugle Deve","description":"Get daily buy, sell and net shares of foreign investors, investment trusts and dealers for one stock (needs a Fugle Developer plan; range under one year). Use for \"How much did foreign investors net buy of 2330 this month\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"symbol":{"description":"Taiwan stock, ETF or index code, for example '2330' (TSMC) or '0050'.","maxLength":12,"title":"Symbol","type":"string"},"date_from":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Start date as YYYY-MM-DD.","title":"Date From"},"date_to":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"End date as YYYY-MM-DD.","title":"Date To"},"sort":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":"desc","description":"Date order: desc (default) or asc.","title":"Sort"}},"required":["symbol"],"title":"get_institutional_tradesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}