Knowledge Base/How does Massive handle ticker changes and acquisitions?

How does Massive handle ticker changes and acquisitions?

The data stays as it was published, so a renamed company has history under both symbols and Massive does not stitch them together. Pass a date to the ticker endpoints to ask who held a symbol then, and use the ticker events endpoint to find the rename.

A trade printed under FB in 2015 was printed under FB, and rewriting it to META would put a symbol on the tape that nobody quoted that day. So the two halves of a renamed company's history sit under two symbols, and the tools for crossing that seam are a date parameter on the ticker endpoints and the ticker events endpoint. A rename and an acquisition look quite different in the data, and telling them apart is the first thing to do.

Applies to

  • Plans: reference data is included with every plan, including the free Basic tier.
  • Endpoints: date on /v3/reference/tickers and /v3/reference/tickers/{ticker}, /vX/reference/tickers/{ticker}/events for the symbol history, and the ordinary data endpoints for each symbol's own history.
  • Asset classes: US stocks.

How to ask who held a symbol on a past date

Both ticker endpoints take a date, and it answers point in time rather than today. This is the fastest way to settle "the data under this symbol is not the company I expected":

curl -X GET "https://api.massive.com/v3/reference/tickers?ticker=META&date=2022-01-03&apiKey=YOUR_API_KEY"

Response

{
  "results": [
    { "ticker": "META", "name": "Roundhill Ball Metaverse ETF", "market": "stocks", "active": true }
  ],
  "status": "OK"
}

On 3 January 2022 META was an ETF. The same request with no date returns Meta Platforms. Run the same query the other way and FB on 2015-06-01 is FACEBOOK INC CL A COM STK (DE), while FB today is a ProShares ETF.

Two details to hold on to. active and delisted_utc are reported as of the date you asked about, so active: true on a past date is not evidence the symbol is still listed. And these endpoints default to active=true, which is why a plain search=Twitter returns nothing today: the record is there, it is just filtered out. Either pass a date inside the company's life, or pass active=false to search what has been delisted.

How to find the rename itself

curl -X GET "https://api.massive.com/vX/reference/tickers/META/events?apiKey=YOUR_API_KEY"

Response

{
  "results": {
    "name": "Meta Platforms, Inc. Class A Common Stock",
    "events": [
      { "type": "ticker_change", "date": "2022-06-09", "ticker_change": { "ticker": "META" } },
      { "type": "ticker_change", "date": "2012-05-18", "ticker_change": { "ticker": "FB" } }
    ]
  },
  "status": "OK"
}

Events come back newest first. A ticker that has never been renamed still returns one event rather than an empty array, dated at whichever is later of the start of our history and the day the symbol came into use, so test for more than one event rather than for any. Start from the symbol you currently hold: the endpoint answers for whoever holds it now, and reused symbols are common. PARA today returns Banzai International, which took the symbol in 2026, not Paramount.

A rename shows up as a ticker_change whatever caused it: XYZ carries one from SQ in 2025. There is no merger, acquisition, spin-off or delisting event type, so the type field will always say ticker_change, and the reason is never in the response.

Do not expect every merger to leave a trail here, though. RTX returns a single event dated 2020-04-03, which is indistinguishable from a ticker that was never renamed, and UTX, the symbol it replaced, returns 404 by ticker. So the events endpoint answered for RTX alone would tell you nothing happened.

An acquisition does not look like a rename

An acquisition does not look like a rename in the data, and that is why the events endpoint alone is not enough. When a company is acquired for cash, its symbol does not become another symbol. It stops.

Twitter is the clean example. Its last daily bar is 27 October 2022, closing at 53.70 against a 54.20 per share cash offer, on about five times its normal volume. After that:

What you askWhat you get
/vX/reference/tickers/TWTR/eventsHTTP 404
/v3/reference/tickers/TWTR with no dateHTTP 404
/v3/reference/tickers?ticker=TWTR&active=falseHTTP 200, with delisted_utc
/v3/reference/tickers/TWTR?date=2022-10-26HTTP 200, Twitter, Inc., as it stood that day

active=false is the one to reach for, because it hands you the answer rather than a boundary to bisect:

curl -X GET "https://api.massive.com/v3/reference/tickers?ticker=TWTR&active=false&apiKey=YOUR_API_KEY"

Response

{
  "results": [
    { "ticker": "TWTR", "name": "Twitter, Inc.", "market": "stocks",
      "active": false, "delisted_utc": "2022-10-31T04:00:00Z" }
  ],
  "status": "OK"
}

delisted_utc is the field you want, and it is not the last trading day: Twitter's last bar is 27 October and delisted_utc is 31 October. Use the bar for when trading stopped and delisted_utc for when the listing ended. There is no event to read for any of this, because nothing was renamed.

How to build a continuous series

  1. Call the events endpoint for the symbol you hold and read the dates. If it 404s, ask /v3/reference/tickers?ticker=<symbol>&active=false: a record with a delisted_utc means a delisting or an acquisition rather than a rename.
  2. Request each symbol's data for the window in which it was that symbol: the old one up to the change date, the new one from it.
  3. Join on the change date. Trades and quotes need no adjustment, because both sides are already as-published.
  4. Decide what to do about splits separately. Aggregate bars are split-adjusted by default, and a split near a symbol change will move prices on one side of your join.

Why the records are not rewritten

The records are not rewritten because the published record is the fact. Rewriting a 2015 FB print to META would break any reconciliation against a broker statement, a regulatory filing or another vendor, and it would change history retroactively every time a company renamed itself. That is the same reason dividends are stored as paid rather than restated.

The cost of that choice is that continuity is your side of the line, which is why date and the events endpoint exist.

If you see an error

{"status":"NOT_FOUND","message":"No events found for given ID"} with HTTP 404 from the events endpoint does not mean the symbol never existed. It means nothing holds it now. TWTR answers this way and was a real company for nine years. Ask /v3/reference/tickers/{ticker}?date= for a date inside its life instead.

A single event means the symbol has never been renamed. Its date is the day it came into use, or 2003-09-10 for anything already trading when our history starts, so do not read that date as a rename.

Data that stops on a date and never resumes is a delisting or an acquisition, not a gap. Ask /v3/reference/tickers?ticker=<symbol>&active=false and read delisted_utc. Expect it to be a few days after the last bar rather than on it: Twitter's last bar is 27 October 2022 and its delisted_utc is 31 October.

A series with a step in it, and data continuing on both sides, is usually a split rather than anything to do with the symbol. Check /stocks/v1/splits for the same window. A series that steps and then ends is the acquisition case above, and no split record will explain it.

Related


Was this article helpful?

Modernizing Wall St.

Reimagining financial market data for the 21st century.

Schedule a demo

Talk with our market data experts

Recommended

Can't find the answer you're looking for? Contact our team.
  • Title
    Are all indices available through the basic subscription tier?
    Data Coverage Category

    Data Coverage

    Indices Category

    Indices

    Description
    No, and the ones it withholds are the famous ones: SPX, DJI, RUT and VIX all need a paid Indices tier. Basic still reaches more than 10,000 of the 13,000-odd indices Massive publishes, and NDX and the Nasdaq Composite are among them.
  • Title
    Does Massive offer dark pool data?
    Data Coverage Category

    Data Coverage

    Stocks Category

    Stocks

    Description
    Yes. Off-exchange prints, which include dark pool executions, arrive on the ordinary trades feed and are identified by an exchange ID of 4. There is no separate dark pool endpoint, and no way to tell which individual venue a print came from.
  • Title
    Does Massive offer pre-market and after-hours data?
    FAQ Category

    FAQ

    Stocks Category

    Stocks

    Description
    Yes. Every extended-hours trade and quote is published, from 04:00 to 20:00 Eastern. There is no session parameter, so you select a session with timestamps, and expect far fewer aggregate bars outside regular hours because many extended-hours trades are odd lots that cannot set a price.