Skip to content
Palanor is in early release, with our founding customers.Become a founding customer →
PalanorPalanor

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

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

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.

GETapi.palanor.com/v1/signals

List the public signals catalog. Paginated, filterable by category.

curl -H "Authorization: Bearer $TOKEN" \
  "https://api.palanor.com/v1/signals?limit=20&category=macro"
GETapi.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"
GETapi.palanor.com/v1/signals/{slug}/observations

A 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"
GETapi.palanor.com/v1/latest

The 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"
GETapi.palanor.com/v1/search

Find 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"
GETapi.palanor.com/v1/foresight/{slug}Pro+ only

Palanor 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"
GETapi.palanor.com/v1/screens/{id}Pro+ only

Run 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"
GETapi.palanor.com/v1/indices

Palanor Custom Indices — methodology, components, current readings.

curl -H "Authorization: Bearer $TOKEN" \
  "https://api.palanor.com/v1/indices"
GETapi.palanor.com/v1/currents

The world’s named macro motions, with Momentum / Belief / Maturity reads.

curl -H "Authorization: Bearer $TOKEN" \
  "https://api.palanor.com/v1/currents"
GETapi.palanor.com/v1/almanac

Council 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"
GETapi.palanor.com/v1/wirePro+ only

The 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"
POSTapi.palanor.com/v1/charts

Render 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"
GETapi.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.

  1. 01 · Install

    pip install "palanor[pandas] @ https://palanor.com/developers/python/palanor-0.2.1-py3-none-any.whl"
    export PALANOR_API_KEY="plnr_..."
  2. 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"
  3. 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 graph
  4. 04 · 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)

  1. Download the manifest: palanor.com/excel/manifest.xml.
  2. 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/wef and restart Excel.
  3. Open Home → Palanor, paste your API key and press Save.
  4. 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.
  5. 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.

  1. In your spreadsheet, open Extensions → Apps Script.
  2. 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.
  3. 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")      ' Pro

The 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
Get a free key →

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
Upgrade to Pro →

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
Talk to the team →

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.

  1. 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.

  2. 02 · Call the API

    export PALANOR_TOKEN="plnr_..."
    curl -H "Authorization: Bearer $PALANOR_TOKEN" \
      "https://api.palanor.com/v1/indices"
  3. 03 · Read a signal series

    curl -H "Authorization: Bearer $PALANOR_TOKEN" \
      "https://api.palanor.com/v1/signals/bls_cpi_college_tuition?history=90"
  4. 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.

Cookies

We only use essential cookies to keep you signed in and remember your theme. No analytics, no tracking, no ads. See the Privacy Policy for the full read.