✅
Demo to preview the plugin:
Introduction
The Financial Data PRO - Polygon.io plugin allows you to connect your Bubble app to Polygon.io, a powerful financial market data provider. Whether you're building a financial dashboard, stock tracker, or real-time analytics app, this plugin gives you access to stocks, forex, and crypto data with historical and live snapshots, quotes, trades, and more.
Key Features
- Real-Time Market Snapshots: Get live snapshots of stocks, including gainers and losers.
- Historical Aggregates: Access OHLCV bars, previous closes, and grouped daily bars.
- Quotes & Trades: Fetch the latest quotes and trades per ticker.
- Ticker Lookup: Search for tickers and retrieve detailed company information.
- Market Status: Check if markets are currently open or closed.
- Multi-Market Support: Access data from stock, crypto, and forex markets.
Prerequisites
Before using the plugin, ensure you:
- Create a Polygon.io Account
Sign up at: https://polygon.io
- Get Your API Key
- Go to your Polygon dashboard
- Copy your API key from the "API Keys" section.
- Paste the API Key in Bubble
- In the Bubble editor, go to the Plugins tab.
- Click on Financial Data PRO - Polygon.io Plugin.
- Paste your API Key into the field provided.
How to setup
Step 1: Installation
- Go to the Plugin Tab
- Open your Bubble Editor.
- Navigate to the Plugins tab on the left panel.
- Add Plugins
- Once in the Plugins tab, click the Add Plugins button.
- Search for the Plugin
- Use the search bar to type Financial Data PRO - Polygon.io.
- Locate the plugin in the search results.
- Install/Buy
- If the plugin is free, click Install to add it to your application.
- For a paid plugin, click Buy and follow the purchase instruction.
- Payment Information (For Paid Plugins)
- If the plugin is a paid one, fill in your payment details and make payment.
- Charges will be added to your Bubble billing account.
- Remember, if you unsubscribe from the plugin shortly after installation, charges will be prorated based on the days used.
- Plugin Installed
- Once installed, the plugin will appear under the Installed Plugins list in your Bubble Editor.Example:
Step 2: Get Your API Key from Polygon.io
- Create an Account
- Sign up at https://polygon.io
- Copy Your API Key
- After signing in, navigate to your Dashboard.
- Copy the API Key from the “API Keys” section.
- Paste API Key in Bubble
- Go back to the Bubble Editor → Plugins tab.
- Open Financial Data PRO - Polygon.io Plugin.
- Paste the API Key into the appropriate input field.
Step 3: Example Use Case – Display Real-Time Stock Snapshot
Let’s walk through a simple example: Displaying a real-time stock snapshot for Apple Inc. (AAPL) on your Bubble page.
- Design the UI in Bubble
- Go to your Design tab and add:
- Input → for the user to enter a stock ticker (e.g.,
AAPL
)
- Button GET (Details) → to trigger the API call
- Group/Text elements → to display values like:
- Name: Apple Inc.
- Market: stocks
- Locale: US
- Market Cap: $3.15T
- Description: Apple is among the largest companies in the world...
- Address, Employees, Ticker details, etc.
- Set Up the Workflow
Now that your UI is ready, let’s connect the input and button to the API call so the data can be displayed when a user searches for a stock ticker.
- Open the Workflow Tab
- In your Bubble Editor, click on the Workflow tab at the top.
- Create a New Workflow Event
- Select the Button element directly from the Design tab - "When Button GET (Details) is clicked"
- Add an Action to Display Data
- Click "Click here to add an action"
- Choose: Element Actions → Display data
- Configure the Display Data Action
- Element: Select the Group Ticker Details (the group where you want the data to appear).
- Data to display: Choose "Get data from an external API"
- Set the API Call
- API Provider: Select
Polygon.io - Get Ticker Details
- Path Parameter – stockTicker: Set it to
Input Stocks Ticker's value
This setup allows your app to call Polygon.io for ticker details based on user input (e.g., "AAPL") and display the results in the group.
Plugin Data Calls
Aggregates (Bars)
Description:
Aggregates (Bars) refer to the grouping and visualization of stock data over a time window, useful for rendering bar chart data.
Inputs:
Name | Description | Type |
Api_key | Your API Key | Text |
StocksTicker | The ticker symbol of the stock/equity. | Text |
Multiplier | The size of the timespan multiplier. | Text |
Timespan | The size of the time window. | Text |
From | The start date (YYYY-MM-DD) or timestamp for the aggregate window. | Text |
To | The end date (YYYY-MM-DD) or timestamp for the aggregate window. | Text |
Adjusted | Whether the results are adjusted for splits. Defaults to true. | Text |
Sort | Sort results by timestamp: asc for oldest first, desc for newest first. | Text |
Limit | Limits number of results (Max: 50,000; Default: 5,000). | Text |
Return Values:
Return type: JSON
json{ "ticker": "text", "queryCount": "number", "resultsCount": "number", "adjusted": "yes/no", "results": { "v": "number", "vw": "number", "o": "number", "c": "number", "h": "number", "l": "number", "t": "number", "n": "number" }, "status": "text", "request_id": "text", "count": "number" }
Grouped Daily (Bars)
Description:
Organizes data into daily groupings for multiple tickers on a given date.
Inputs:
Name | Description | Type |
Date | The date for the grouped data (YYYY-MM-DD). | Text |
Api_key | Your API Key | Text |
Adjusted | Whether to adjust results for splits. Defaults to true. | Text |
Include_otc | Include OTC securities. Defaults to false . | Text |
Return Values:
Return type: JSON
json{ "queryCount": "number", "resultsCount": "number", "adjusted": "yes/no", "results": { "T": "text", "v": "number", "vw": "number", "o": "number", "c": "number", "h": "number", "l": "number", "t": "number", "n": "number", "otc": "yes/no" }, "status": "text", "request_id": "text", "count": "number" }
Daily Open/Close
Description:
Fetches the daily open and close prices for a stock on a specified date.
Inputs:
Name | Description | Type |
Api_key | Your API Key | Text |
StocksTicker | The stock ticker symbol. | Text |
Date | The date for open/close prices (YYYY-MM-DD). | Text |
Adjusted | Whether to adjust for splits. Defaults to true. | Text |
Return Values:
Return type: JSON
json{ "status": "text", "from": "text", "symbol": "text", "open": "number", "high": "number", "low": "number", "close": "number", "volume": "number", "afterHours": "number", "preMarket": "number" }
Previous Close
Description:
Returns the price of an asset at the end of the previous trading day.
Inputs:
Name | Description | Type |
Api_key | Your API Key | Text |
StocksTicker | The stock ticker symbol. | Text |
Adjusted | Whether to adjust for splits. Defaults to true. | Text |
Return Values:
Return type: JSON
json{ "ticker": "text", "queryCount": "number", "resultsCount": "number", "adjusted": "yes/no", "results": { "T": "text", "v": "number", "vw": "number", "o": "number", "c": "number", "h": "number", "l": "number", "t": "number", "n": "number" }, "status": "text", "request_id": "text", "count": "number" }
Market Holidays
Description:
Returns dates when financial markets are closed (holidays).
Inputs:
Name | Description | Type |
Api_key | Your API Key | Text |
Return Values:
Return type: JSON
json{ "date": "undefined", "exchange": "text", "name": "text", "status": "text", "close": "text", "open": "text" }
Market Status
Description:
Provides real-time market status across exchanges and asset groups.
Inputs:
Name | Description | Type |
Api_key | Your API Key | Text |
Return Values:
Return type: JSON
json{ "afterHours": "yes/no", "currencies crypto": "text", "currencies fx": "text", "earlyHours": "yes/no", "exchanges nasdaq": "text", "exchanges nyse": "text", "exchanges otc": "text", "indicesGroups s_and_p": "text", "indicesGroups societe_generale": "text", "indicesGroups msci": "text", "indicesGroups ftse_russell": "text", "indicesGroups mstar": "text", "indicesGroups mstarc": "text", "indicesGroups cccy": "text", "indicesGroups nasdaq": "text", "indicesGroups dow_jones": "text", "market": "text", "serverTime": "text" }
Exchanges
Description:
Lists exchanges by locale or asset class.
Inputs:
Name | Description | Type |
Locale | Filter by locale (e.g., us ). | Text |
Api_key | Your API Key | Text |
Asset_class | Filter by asset class (e.g., stocks ). | Text |
Return Values:
Return type: JSON
json{ "results": { "id": "text", "type": "text", "asset_class": "text", "locale": "text", "name": "text", "acronym": "text", "mic": "text", "operating_mic": "text", "participant_id": "text", "url": "text" }, "status": "text", "request_id": "text", "count": "number" }
Simple Moving Average (SMA)
Description:
Calculates the simple moving average (SMA) for a stock over a specific time window.
Inputs:
Name | Description | Type |
Api_key | Your API Key | Text |
StockTicker | The stock ticker symbol. | Text |
Timespan | The size of the aggregate time window (e.g., day ). | Text |
Return Values:
Return type: JSON
json{ "underlying url": "text", "values": { "timestamp": "number", "value": "number" }, "status": "text", "request_id": "text", "next_url": "text" }
Tickers Details
Description:
Provides detailed information about a specific stock ticker.
Inputs:
Name | Description | Type |
Api_key | Your API Key | Text |
StockTicker | The stock ticker symbol. | Text |
Return Values:
Return type: JSON
json{ "request_id": "text", "ticker": "text", "name": "text", "market": "text", "locale": "text", "primary_exchange": "text", "type": "text", "active": "yes/no", "currency_name": "text", "cik": "text", "composite_figi": "text", "share_class_figi": "text", "market_cap": "number", "phone_number": "text", "address address1": "text", "address city": "text", "address state": "text", "address postal_code": "text", "description": "text", "sic_code": "text", "sic_description": "text", "ticker_root": "text", "homepage_url": "text", "total_employees": "number", "list_date": "text", "branding logo_url": "text", "branding icon_url": "text", "share_class_shares_outstanding": "number", "weighted_shares_outstanding": "number", "round_lot": "number", "status": "text" }
Search Active Tickers
Description:
Fetches a list of active stock tickers matching the search query.
Inputs:
Name | Description | Type |
Api_key | Your API Key | Text |
Search | The search term or partial symbol. | Text |
Return Values:
Return type: JSON
json{ "results": { "ticker": "text", "name": "text", "market": "text", "locale": "text", "primary_exchange": "text", "type": "text", "active": "yes/no", "currency_name": "text", "cik": "text", "composite_figi": "text", "share_class_figi": "text", "last_updated_utc": "text" }, "status": "text", "request_id": "text", "count": "number", "next_url": "text" }
Tickers News (All)
Description:
Fetches the latest market-wide news articles.
Inputs:
Name | Description | Type |
Api_key | Your API Key | Text |
Limit | Number of news articles to return. | Text |
Return Values:
Return type: JSON
json{ "results": { "id": "text", "publisher name": "text", "publisher homepage_url": "text", "publisher logo_url": "text", "publisher favicon_url": "text", "title": "text", "author": "text", "published_utc": "text", "article_url": "text", "tickers": "undefined", "amp_url": "text", "image_url": "text", "description": "text", "keywords": "undefined" }, "status": "text", "request_id": "text", "count": "number", "next_url": "text" }
Tickers News (Individual)
Description:
Returns recent news specific to a given ticker (e.g., AAPL, MSFT).
Inputs:
Name | Description | Type |
Api_key | Your API Key | Text |
Ticker | The ticker symbol (e.g., AAPL ). | Text |
Limit | Number of articles to retrieve. | Text |
Order | desc (default) or asc by time. | Text |
Return Values:
Return type: JSON
json{ "results": { "id": "text", "publisher name": "text", "publisher homepage_url": "text", "publisher logo_url": "text", "publisher favicon_url": "text", "title": "text", "author": "text", "published_utc": "text", "article_url": "text", "tickers": "undefined", "amp_url": "text", "image_url": "text", "description": "text", "keywords": "undefined" }, "status": "text", "request_id": "text", "count": "number", "next_url": "text" }
Changelogs
Update 07.07.25 - Version 1.7.0
- Bubble Plugin Page Update (Docs).
Update 07.07.25 - Version 1.6.0
- Bubble Plugin Page Update (Docs).
Update 07.07.25 - Version 1.5.0
- Bubble Plugin Page Update (Description).
Update 31.05.25 - Version 1.4.0
- Minor update (Marketing update).
Update 17.02.25 - Version 1.3.0
- Minor update(Marketing update).
Update 17.02.25 - Version 1.2.0
- Acquired by Zeroqode.
Update 23.08.24 - Version 1.1.0
- Updated Description.
Update 10.04.24 - Version 1.0.3
- Updated Description.
Update 01.02.24 - Version 1.0.2
- Quick Fix.
Update 01.02.24 - Version 1.0.1
- Added Documentation.
Update 30.01.24 - Version 1.0.0
- First Commercial Release.
✅