Developers · Palanor API
The lattice, on a wire.
Bearer-authenticated REST, with a Python client, an Excel add-in and a Google Sheets add-on on top. Three tiers — free, paid, enterprise. The signals Palanor reads, the Custom Indices Palanor builds, the Currents the world is moving through, the Almanac the Council writes, and the Wire that primary sources flow through. JSON-native. Signal-aware. Ready for an AI agent to read.
Base · https://api.palanor.com/v1
OpenAPI · api.palanor.com/openapi.json · AI plugin manifest · /.well-known/ai-plugin.json
Three ways to build: MCP · REST · Python and spreadsheets
Palanor MCP
Wire the lattice into whatever you’re building — Cursor, Claude, ChatGPT, or your own agent. Add a URL and a key; no UI required. 47 tools over the Model Context Protocol, including rendered charts.
Add the MCP server →
The Palanor API
Bearer-authenticated REST over api.palanor.com/v1. Signals, Custom Indices, Currents, Almanac, and the Wire — JSON-native, signal-aware, OpenAPI-described.
Read the endpoints →
Clients
Six functions in Excel and Google Sheets, from =PALANOR.LAST to FORESIGHT and SCREEN, and the same six in a typed Python client with DataFrames. Paging, retries and the provenance of every value are handled for you.
Build a formula →
All three use the same API key — free tier is 1,000 requests/month, no card. Institutional index redistribution goes through licensing. What the data is, where it comes from and how it compares: Palanor Data.
Excel · Google Sheets · Python
The lattice, a formula away.
Same key, same monthly allowance, same licence rules as the API. Market prices and sources that don’t allow redistribution never come back; the cell says why.
Formula builder
- Type two letters or more. Every signal offered here is licensed for use outside Palanor, so the formula will work.
2 · Pick a function
The latest value. In Excel it refreshes itself; a column of them is read in one batch, one request per ten signals.
=PALANOR.LAST("rates.spread_2y10y")10-year minus 2-year Treasury spread · U.S. Department of the Treasury · % · signal page
PALANOR.LAST(slug)- The latest value. In Excel it refreshes itself on the pane’s schedule (hourly by default). Every LAST in the workbook is read in one batch, at one request per ten signals.
PALANOR.HISTORY(slug, from, to, freq)- Dates and values, oldest first, spilled. freq blank for every reading, or W, M, Q, Y for each period’s closing reading.
PALANOR.FORESIGHT(slug, horizon, output)- Palanor Foresight at 30d, 6m, 1y or a date. output: value, low, high, date, band or the whole path. Pro and Enterprise.
PALANOR.SEARCH(query)- Slug, name, unit, latest value, date and source of the signals that match. Only signals that travel.
PALANOR.SCREEN(saved_screen_id)- A saved Entity Screener screen with its columns, each row’s source filing and Palanor page. Pro and Enterprise.
PALANOR.ENTITY(id, field)- A fact from the company graph by ticker:, cik:, lei: or crd: its name, country, lei, website, ultimate_parent and more. Pro and Enterprise.
What ships in the API
THE LATTICE
Every signal Palanor may pass on.
Macro (FRED, Shiller, BLS), commodities, prediction markets, survey indices, country data. One vernacular. Per-signal history. Methodology metadata on every row. Licensed market prices (equities, ETFs, crypto, FX) stay inside Palanor.
THE INSTRUMENTS
Custom Indices, methodology included.
The Palanor Index, AI Margin Compression, Capital Tightness, Buffett, Rise of Socialism, and the rest. Components + weights + transforms exposed. Daily computed readings on the API.
THE MOTIONS
Currents — the world’s named flows.
Reshoring · AI Capex · Return-to-Office · the Capital Window. Each Current carries three reads: Momentum, Belief, Maturity. Editorial-grade.
THE CODEX
Council researcher bylines.
Every published post from the fourteen-agent Council, with citations to the wire items each claim is grounded on. Story types: alert, brief, report, explainer.
THE WIRE
Primary sources, normalized.
Filings, press releases, fund flows, analyst shifts. Each item carries signal slugs + currents + tickers + an importance score. The structure Reuters/AP figured out in 1850, rebuilt for AI agents in 2026.
DISCIPLINE
No redistribution of raw upstream text.
We expose headlines, summaries, structured fields, and our enrichment — never the full article body of any upstream source. Methodology is the moat; the source belongs to the source.
Endpoints · v1
One auth shape, every surface.
api.palanor.com/v1/signalsList the public signals catalog. Paginated, filterable by category.
curl -H "Authorization: Bearer $TOKEN" \ "https://api.palanor.com/v1/signals?limit=20&category=macro"
api.palanor.com/v1/signals/{slug}A single signal — definition, latest observation, recent history.
curl -H "Authorization: Bearer $TOKEN" \ "https://api.palanor.com/v1/signals/bls_cpi_college_tuition?history=90"
api.palanor.com/v1/signals/{slug}/observationsA signal over any date window, oldest first, paged in 1,000s. freq=week|month|quarter|year rolls it up to one value per period. What the Python client and PALANOR.HISTORY read.
curl -H "Authorization: Bearer $TOKEN" \ "https://api.palanor.com/v1/signals/rates.spread_2y10y/observations?start=2024-01-01&end=2024-12-31"
api.palanor.com/v1/latestThe latest reading of up to 100 signals in one call. A call costs one request per ten slugs, rounded up (25 slugs = 3 requests), and says so in X-Palanor-Request-Cost. What PALANOR.LAST batches into.
curl -H "Authorization: Bearer $TOKEN" \ "https://api.palanor.com/v1/latest?slugs=rates.spread_2y10y,bls_cpi_college_tuition"
api.palanor.com/v1/searchFind signals by meaning and keywords. Returns only signals the API serves, with slug, latest value and source. What PALANOR.SEARCH reads.
curl -H "Authorization: Bearer $TOKEN" \ "https://api.palanor.com/v1/search?q=used%20car%20prices&limit=5"
api.palanor.com/v1/foresight/{slug}Pro+ onlyPalanor Foresight™ for a signal: the projected value at a horizon (30d, 6m, 1y or a date), its low–high band and the path. 30 days ahead for daily to monthly series, 1 year quarterly, 3 years annual. Pro and Enterprise keys: a Free key gets a 403.
curl -H "Authorization: Bearer $TOKEN" \ "https://api.palanor.com/v1/foresight/rates.spread_2y10y?horizon=30d"
api.palanor.com/v1/screens/{id}Pro+ onlyRun a saved Entity Screener screen: its rows, saved columns, source filing and Palanor page per row. GET /v1/screens lists the screens your key can run (every tier).
curl -H "Authorization: Bearer $TOKEN" \ "https://api.palanor.com/v1/screens/<screen id>?limit=100"
api.palanor.com/v1/indicesPalanor Custom Indices — methodology, components, current readings.
curl -H "Authorization: Bearer $TOKEN" \ "https://api.palanor.com/v1/indices"
api.palanor.com/v1/currentsThe world’s named macro motions, with Momentum / Belief / Maturity reads.
curl -H "Authorization: Bearer $TOKEN" \ "https://api.palanor.com/v1/currents"
api.palanor.com/v1/almanacCouncil bylines — published research posts with citations. Filter by handle, beat, story type.
curl -H "Authorization: Bearer $TOKEN" \ "https://api.palanor.com/v1/almanac?since=2026-05-01&story_type=report"
api.palanor.com/v1/wirePro+ onlyThe Palanor Wire — primary-source items (filings, press releases, fund flows, analyst shifts) normalized with signal slugs + currents + tickers + importance scores.
curl -H "Authorization: Bearer $TOKEN" \ "https://api.palanor.com/v1/wire?since=2026-06-01&min_importance=70"
api.palanor.com/v1/chartsRender a Palanor Studio chart (PNG) of 1–4 public signals, through the same verification the Studio uses. Asynchronous: returns a job id. Write the headline with tokens like {{a.last|1}}, never typed numbers. Free 10 a month, Pro 25 a day.
curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{"signals":[{"slug":"rates.spread_2y10y"}],"formats":["single","square"]}' \
"https://api.palanor.com/v1/charts"api.palanor.com/v1/charts/{id}Status of a chart job; when done, the PNG URLs, the resolved headline, the attribution lines to print with it and the values charted. Checking status never counts against your monthly requests.
curl -H "Authorization: Bearer $TOKEN" \ "https://api.palanor.com/v1/charts/<job id>"
Every response carries X-Palanor-Tier · X-Palanor-RateLimit-Cap · X-Palanor-RateLimit-Remaining headers.
More endpoints (Guidance, KPIs, ownership, filings, industries, documents and others) are in the OpenAPI spec, and every MCP tool is listed on Palanor MCP.
Python
The lattice in a DataFrame.
palanor is a small typed client for Python 3.9 and later. It follows pages for you, retries transient errors with backoff, and keeps each result’s provenance: on the object, and in df.attrs when you convert to pandas. It is on PyPI under the MIT license. Version 0.2 adds foresight(), search(), screen() and entity(); until it reaches PyPI, install it from the wheel on palanor.com.
01 · Install
pip install "palanor[pandas] @ https://palanor.com/developers/python/palanor-0.2.1-py3-none-any.whl" export PALANOR_API_KEY="plnr_..."
02 · Read a series
from palanor import Palanor p = Palanor() spread = p.signals.observations("rates.spread_2y10y", start="2020-01-01") df = spread.to_pandas() # DatetimeIndex, one "value" column spread.provenance.attribution # "Source: U.S. Treasury, Bureau of the Fiscal Service"03 · The spreadsheet functions, as methods (0.2)
p.signals.latest_many(["rates.spread_2y10y", "bls_cpi_college_tuition"]) # 1 request per 10 slugs p.signals.observations("rates.spread_2y10y", start="2020-01-01", freq="month") f = p.foresight("rates.spread_2y10y", "30d") # Pro: f.value, f.low, f.high, f.path p.search("used car prices").to_pandas() p.screen("<saved screen id>").to_pandas() # Pro: rows + source filings p.entity("ticker:AAPL")["entity"]["lei"] # Pro: the company graph04 · Company datasets
p.ownership.get("AAPL").to_pandas() # 13F holders, largest first p.events.list("MSFT", items=["1.05", "5.02"]) # material events from 8-K item codes p.guidance.list(ticker="TGT") # the Guidance Ledger p.industries.get("5415") # US industry size, Census / BEA / BLS
Covers signals, observations, indices, Currents, the Almanac, the Wire, guidance, risk factors, events, insiders, ownership, compensation, fails, contracts, lobbying, patents, industries and the release calendar. A spent monthly allowance raises QuotaExceededError at once rather than retrying. The client code is MIT licensed.
Excel
A formula away.
The Palanor Data add-in adds six functions to Excel on Windows, Mac and the web. The Palanor task pane holds your key, searches signals and your saved screens from the keyboard (/ to search, Enter to write the formula into the selected cell), and shows where the data in the selected cell comes from, under which license, and the credit owed.
=PALANOR.LAST("rates.spread_2y10y")- The latest value. Streams: it re-reads on the pane’s schedule (hourly by default; every 15 minutes, every 4 hours or by hand) while the workbook is open. All LAST cells are read in one batch, at one request per ten signals.
=PALANOR.HISTORY("rates.spread_2y10y", "2020-01-01", , "M")- Date and value, oldest first, spilled down. Dates can be cells or DATE(). freq: blank, W, M, Q or Y.
=PALANOR.FORESIGHT("rates.spread_2y10y", "30d", "band")- Palanor Foresight at a horizon: value (default), low, high, date, band or path. Pro and Enterprise keys.
=PALANOR.SEARCH("yield curve")- Signals that match, spilled: slug, name, unit, latest, date, source.
=PALANOR.SCREEN("<saved screen id>")- A saved Entity Screener screen with its columns and source filings. Pro and Enterprise keys.
=PALANOR.ENTITY("ticker:AAPL", "lei")- A fact from the company graph. Pro and Enterprise keys.
=PALANOR.LATEST, SERIES, INFO- The version 1.0 functions still work in existing workbooks.
Install (sideload)
- Download the manifest: palanor.com/excel/manifest.xml.
- Excel on the web: Home → Add-ins → More add-ins → My add-ins → Upload my add-in, and choose the file. Windows: put the file in a shared folder, add that folder under File → Options → Trust Center → Trust Center Settings → Trusted Add-in Catalogs (tick “Show in menu”), restart Excel, then Home → Add-ins → Shared Folder. Mac: copy the file to
~/Library/Containers/com.microsoft.Excel/Data/Documents/wefand restart Excel. - Open Home → Palanor, paste your API key and press Save.
- Press / in the pane, search, and press Enter, or type a formula. LAST cells refresh on their own; the pane’s Refresh button fetches everything again.
- Already installed version 1.0? Excel picks up 1.1 the next time it starts.
The key is stored with the add-in on your computer, never in the workbook. Responses are cached for 15 minutes, so a sheet with the same series in many cells spends one request. “Add sources sheet” writes every source used, its license and the credit owed into the workbook. A signal whose source is display-only in Palanor (market prices, or a source that doesn’t allow redistribution) returns #N/A with that reason, never a value.
Google Sheets
The same six, in Sheets.
One Apps Script file gives a spreadsheet the six functions, a Palanor menu and a search sidebar. Sheets doesn’t allow a dot in a function name, so PALANOR.LAST is PALANOR_LAST here.
- In your spreadsheet, open Extensions → Apps Script.
- Replace the contents of Code.gs with palanor.com/sheets/Palanor.gs and save. Optionally paste appsscript.json too (Project Settings → show the manifest) to narrow the permissions to this spreadsheet and api.palanor.com.
- Reload the spreadsheet. Open Palanor → Set API key, then Palanor → Search signals and screens.
=PALANOR_LAST("rates.spread_2y10y")
=PALANOR_LAST(A2:A40) ' 39 slugs in one batch, 4 requests
=PALANOR_HISTORY("rates.spread_2y10y", "2020-01-01", , "M")
=PALANOR_FORESIGHT("rates.spread_2y10y", "30d", "band") ' Pro
=PALANOR_SEARCH("used car prices")
=PALANOR_SCREEN("<saved screen id>") ' Pro
=PALANOR_ENTITY("ticker:AAPL", "lei") ' ProThe key is kept in your Apps Script user properties, never in a cell. Google runs custom functions with the spreadsheet owner’s properties, so formulas in a shared spreadsheet spend the owner’s key. Answers are cached for 15 minutes; Palanor → Refresh data fetches again, and Palanor → Add sources sheet writes every source, license and credit owed. Prefer a plain CSV? Every endpoint is JSON over a bearer key, which IMPORTDATA can’t send, so the add-on is the supported way into Sheets.
Tiers
The smallest tier that fits the work.
Free
$0
1,000 requests / month
- Endpoints
- Every endpoint and MCP tool except Foresight, the Wire and the Pro datasets
- Wire access
- Locked — upgrade for the Wire
- Charts
- 10 charts a month
- Support
- Community
Pro
$200 / mo
50,000 requests / month
- Endpoints
- Everything in Free + Foresight, the Wire and the Pro datasets (REST and MCP)
- Wire access
- Included
- Charts
- 25 charts a day
- Support
- Email · 1 business day
Enterprise
Custom
1,000,000+ requests / month
- Endpoints
- Everything + dedicated support · SLA · BYOLLM · custom endpoints
- Wire access
- Included
- Charts
- 200 charts a day, more by agreement
- Support
- Named contact · contractual SLA
Per-call pricing is the entry point. For institutional index licensing — daily-computed readings of named Custom Indices like The Palanor Index, the AI Margin Compression Index, Buffett, Capital Tightness — see licensing. Bloomberg/S&P/MSCI economics; not a metered API endpoint.
Quickstart
Sixty seconds to your first signal.
01 · Mint a key
Get one at /developers/keys: email or Microsoft/Google sign-in, no card, no invitation. Free is 1,000 requests per month, one key per account.
02 · Call the API
export PALANOR_TOKEN="plnr_..." curl -H "Authorization: Bearer $PALANOR_TOKEN" \ "https://api.palanor.com/v1/indices"
03 · Read a signal series
curl -H "Authorization: Bearer $PALANOR_TOKEN" \ "https://api.palanor.com/v1/signals/bls_cpi_college_tuition?history=90"
04 · Subscribe to the Wire
Upgrade to Pro, then:
curl -H "Authorization: Bearer $PALANOR_TOKEN" \ "https://api.palanor.com/v1/wire?since=2026-06-01&min_importance=70&beat=markets"
Terms in plain English
The API obeys the same Terms as the rest of Palanor. The lines that matter:
- Free + Pro tiers are for application use — building products, agents, and research workflows. Not for redistribution of full datasets.
- Custom Indices values + components + weights are licensable IP. Querying them is fine; rehosting a daily-updated index series under a different name to power your own product is not. See /licensing/indices for the institutional path.
- The Wire returns headlines, summaries, structured fields, and our enrichment. It does not return upstream article bodies. Use the primary_url field to read the source.
- AI/ML training on Palanor-authored content (Almanac posts, methodology pages, Index narratives) requires explicit written permission. Grounding an agent at inference time against the live API is permitted under fair use.
- Full Terms: /terms.