Skip to main content
Glama

Resolve Companies by Identifier (Batch)

companies_resolve_create
Read-onlyIdempotent

Reconcile a list of your identifiers against our coverage in one request.

Each row may carry any mix of isin, lei, cik, ticker and name, plus an optional opaque ref echoed back so you can join results to your source rows. Results are returned in input order.

Resolution order — ISIN, LEI, CIK, ticker, venue ticker, name. First hit wins, but every identifier you supply is evaluated: if two of them resolve to different companies the row comes back ambiguous with identifier_conflict and both in candidates, rather than us silently picking one.

A name alone never returns matched. No matter how close the match, a name-only row caps at ambiguous and hands you candidates to choose from. Names are not identifiers, and asserting a match on one is how filings end up attached to the wrong issuer.

Venue-ticker matches are qualified, not asserted. A ticker that only resolves through our security-listing data is cross-checked against the name you supplied. If they disagree you get ambiguous + name_disagrees; if you supplied no name we cannot corroborate at all, so you get matched carrying security_listing_unverified — trust that bucket accordingly.

Billing — one request is one call against your quota, whatever the row count. Rows we do not cover are not billed differently from rows we do.

Maximum 500 rows per request. Up to 50 rows per request reach the name lookup; beyond that a row carrying only a name returns not_covered with `name_t...

When to use this tool: Use when the user hands you a list of identifiers — a spreadsheet column, a portfolio, a peer set — and you need FinancialFilings IDs for all of them. One request covers up to 500 rows and costs one call against quota regardless of row count, so it is far cheaper than a companies_list search per name. Pass an opaque ref per row to join the results back to the user's own rows. Act only on rows whose status is matched; for ambiguous, ask the user to choose from candidates rather than picking one yourself.

When NOT to use this tool: Don't use for a single company — companies_list (name/ticker) or isins_retrieve (ISIN) is one hop and returns richer match context. Don't send more than 50 name-only rows in one request: rows past that cap return not_covered with name_tier_skipped, so split name-heavy batches.

Examples:

  • Here are 40 tickers from my portfolio — pull their latest filings -> rows=[{"ref": "row-1", "ticker": "GOOG", "name": "Alphabet Inc."}, ...] (Resolve every ID in one call, then fan out to filings_list per matched row)

  • Do you cover these ISINs? -> rows=[{"isin": "US5949181045"}, {"isin": "US0378331005"}] (not_covered means no coverage — say so; never substitute a near match)

[Server current date: 2026-10-09 — treat this as today.]

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
rowsYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

Score is being calculated.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.