Track symbol quotes in an Airtable table
A Twelve Data + Airtable agent flow
A spreadsheet of tickers is easy to start and miserable to maintain by hand. Someone has to look up each close, type it into the right cell, and remember to do it again tomorrow. Hand that loop to an agent. It calls GetQuote for each symbol, reads the open, high, low, close, volume, and change, and writes a row per symbol per run with create_record. Twelve Data responds to the call and nothing more, so the agent runs on a schedule you set, daily after close or hourly during the session, and a symbol it has already recorded for that timestamp is left alone. Airtable's views then do the sorting and filtering you'd otherwise do by hand.
The flow
GetQuoteReturns the latest quote (open, high, low, close, volume, change) for a symbol.
create_recordCreate a new record in a table with the given field values.
Step by step
- Quote each symbol
The agent walks your symbol list and calls GetQuote once per name. Each response carries the full OHLC set, volume, and the change for that one symbol.
- Check for an existing row
Before writing, the agent uses search_records to see whether this symbol already has a row for the current run window, so an overlapping schedule doesn't duplicate the entry.
- Append the row
create_record adds a record with the symbol, the OHLC values, volume, change, and a captured-at timestamp. One call per new quote.
Tell your agent
On a 30-minute cadence during market hours, call GetQuote for each symbol in my list and add an Airtable row with open, high, low, close, volume, change, and the time captured. Don't write a row that already exists for this interval.
Setup
This flow needs both servers connected to your agent. Follow each install guide:
Worth knowing
- GetQuote is single-symbol, so the agent loops the list. Twelve Data meters by API credits per minute on lower tiers, so a wide list needs the agent to pace requests rather than burst them.
- create_record adds a row every call with no native dedupe. Search by symbol plus the interval timestamp first, or an overlapping schedule writes the same quote twice.
- The quote is the latest available, which during off-hours is the prior session. Store the trading timestamp the quote carries, not just your run time, so a row logged at 6pm is correctly tagged to the 4pm close.
Questions
- How is this different from logging a daily close?
- GetQuote returns whatever the latest quote is, so running it intraday captures the moving picture, not only the settled close. If you only want end-of-day, run it once after the bell and it behaves like a daily snapshot.
- Can it pull dozens of symbols cheaply?
- Each symbol is its own GetQuote call and its own credit, so a large list during a tight interval can hit your plan's per-minute limit. Either widen the interval, trim the list, or batch the writes while spacing the reads.