Quartr Pro MCP

Access financial data, company profiles, earnings events, and documents through the Model Context Protocol.

Getting started#

Connect to the Quartr Pro MCP server from any MCP-compatible client. A Quartr Pro subscription is required. Student plans are not eligible.

The MCP server is for individual subscribers doing their own research workflows. If you are building a product or integration on top of Quartr data, use the Quartr Public API instead — it is designed for teams and programmatic access.

Anthropic Marketplace#

Search for Quartr in the Anthropic Marketplace to install the integration directly.

ChatGPT App Store#

Search for Quartr in the ChatGPT App Store to install the integration directly.

Microsoft 365 Copilot#

Quartr is available in Microsoft 365 Copilot in two ways. Both ask you to sign in with your Quartr account on first use, and both are controlled by your Microsoft 365 admin.

Quartr agent#

A dedicated agent you open or @-mention for Quartr research.

Quartr connector#

A data source Copilot uses in its regular answers, without opening the agent. Works in Copilot Chat, Researcher, Copilot in Excel, and Copilot Cowork.

Perplexity#

In Perplexity, go to Settings → Connectors → Add connector, select Advanced, and add the server URL:

https://mcp.quartr.com/mcp

Claude Desktop#

Add the following to your Claude Desktop configuration:

{
  "mcpServers": {
    "quartr": {
      "type": "streamable-http",
      "url": "https://mcp.quartr.com/mcp"
    }
  }
}

Claude Code#

Run the following command to add the Quartr Pro MCP server:

claude mcp add --transport http quartr https://mcp.quartr.com/mcp --scope user

Then sign in with your Quartr account:

claude mcp login quartr

Alternatively, start claude, run /mcp, select quartr, and choose Authenticate.

Codex#

Run the following command to add the Quartr Pro MCP server:

codex mcp add --transport http quartr https://mcp.quartr.com/mcp

Then sign in with your Quartr account:

codex mcp login quartr

Inside a Codex session, /mcp shows whether the server is connected and authenticated.

Other MCP clients#

Any MCP client that supports the Streamable HTTP transport can connect using:

https://mcp.quartr.com/mcp

Configure this URL as an HTTP MCP server in your client of choice. OAuth authentication is handled automatically on first connection. If your client asks for connection details, use:

Server URL https://mcp.quartr.com/mcp
Transport type Streamable HTTP (also listed as “Streaming HTTP” or “HTTP”), with JSON responses
Sessions Stateless — no session ID required
Authentication OAuth 2.0 with PKCE and client ID metadata documents or dynamic client registration — no manual API key or token

Authentication#

The server uses OAuth 2.0 with PKCE. On first connection, your MCP client will:

Tokens are automatically refreshed. All requests require a valid Bearer token.

Clients can revoke a token at /oauth/revoke (RFC 7009). Revoking a refresh token also revokes its access token.

To connect without write access, tick Read-only access on the consent screen, or have your client request the mcp:read scope. Read-only connections only see the tools marked Read-only below, so the AI can't create, change, or delete watchlists, keywords, saved items, workspaces, or search filters.

Rate limits#

Requests are rate-limited per user, at two levels:

Scope Limit
Per tool 20–100 requests per minute, shown on each tool below
All tools combined100 requests per minute
2,250 requests per hour
8,500 requests per day

If you exceed a combined limit, you will receive a 429 response with a Retry-After header indicating when to retry. If you exceed a per-tool limit, the tool call returns an error result with error: "rate_limited" and retryAfterSeconds.

Rejected requests do not count toward the hourly or daily limits, so a brief burst clears within a minute rather than triggering a longer lockout.

Users#

get_current_user#

60 req/min Read-only

Get information about the currently signed-in user, including name, email, and subscription. Available regardless of subscription status.

No parameters.

Response fields
id number required
url string required
email string required
fullName string | null required
firstName string | null required
lastName string | null required
customer object | null required
customerId number required
customerName string | null required
customerType string | null required
subscription object | null required
subscriptionType string required
subscriptionStatus string required
subscriptionStart string | null required
subscriptionEnd string | null required

Companies#

search_companies#

100 req/min Read-only

Search for companies by name, ticker symbol, CIQ ID, FIGI, or ISIN. Results are paginated (default 5 per page). Use page/perPage params to navigate.

query string required
Company name, ticker, CIQ ID, FIGI, or ISIN (e.g., "Apple", "AAPL", "24937", "BBG000B9XRY4", "US0378331005")
page integer
Page number (default: 1)
perPage integer
Results per page (default: 5, max: 100)
Response fields
query string required
totalCount number required
page number required
perPage number required
totalPages number required
matches object[] required
id number required
url string required
ticker string required
name string required
country string required
gics string | null required
status string required

get_company#

60 req/min Read-only

Get a company's full profile

companyId number required
Company ID
Response fields
id number required
url string required
name string required
ticker string required
country string required
gics string | null required
status string | null required
statusUpdatedAt string | null required
acquiredBy string | null required
acquiredById number | null required
marketCap object[] required
currency string required
value number required

list_companies#

60 req/min Read-only

List companies with optional filters. Results are paginated (default 20 per page). Use page/perPage params to navigate.

gics string[]
GICS sector or industry name
countries string[]
ISO country codes (e.g., US, SE)
status enum[]
Company status filter
Options: active delisted acquired
marketCaps enum[]
Market cap size filter
Options: Nano-Cap Micro-Cap Small-Cap Mid-Cap Large-Cap Mega-Cap
page integer
Page number (default: 1)
perPage integer
Results per page (default: 20, max: 100)
Response fields
totalCount number required
page number required
perPage number required
totalPages number required
companies object[] required
id number required
url string required
ticker string required
name string required
country string required
gics string | null required
status string required

Events#

list_events#

60 req/min Read-only

List events for a company or watchlist. At least one of companyId or watchlistId is required; if both are passed, returns events for either.

companyId number
Filter by company ID. At least one of companyId or watchlistId is required.
watchlistId number
Filter by watchlist ID. At least one of companyId or watchlistId is required.
eventTypes enum[]
Event type names to filter by
Show all 45 options
capital_markets_day cmd annual_general_meeting agm extraordinary_general_meeting egm guidance partnerships_and_collaborations partnership collaboration fireside_chat m_and_a fda_announcement update_and_briefing status_update earnings_call q_1 q_2 q_3 q_4 slides investor_day business_combination analyst_day h_1 h_2 trading_update conference investor_update esg_update document annual_report investor_presentation esg_report corporate_presentation study_update study_result presentation company_presentation scheme_meeting kol_event r_and_d_day pre_close_silent_call registration_filing proxy_filing
limit number
Max results (default 50, max 200)
startDate string
Return events after this date/time, exclusive. ISO 8601 date (YYYY-MM-DD, e.g. "2024-01-01") or, for hour-level cutoffs, datetime with explicit timezone ("2024-01-01T12:00:00Z" or "2024-01-01T12:00:00+02:00").
endDate string
Return events before this date/time, exclusive. ISO 8601 date (YYYY-MM-DD, e.g. "2025-01-01") or, for hour-level cutoffs, datetime with explicit timezone ("2025-01-01T12:00:00Z" or "2025-01-01T12:00:00+02:00").
order enum
Sort order by date (default desc)
Options: asc desc
after string
Opaque cursor from a previous page's pagination.endCursor.
expand enum[] | null required
Allowlist of nested fields to include in each event. Always an array (or null). null = include all nested fields (default). [] = core fields only. [field, ...] = include only the listed fields. Available fields: documents, contentDates, expectedContent, transcript.
Options: documents contentDates expectedContent transcript
Response fields
events object[] required
id number required
url string required
title string required
date string required
fiscalYear string | null required
language string | null required
upcoming boolean required
eventType string | null required
parentEventType string | null required
expectedContent object | null
contentDates object[]
company object required
documents object[]
transcript object
pagination object required
hasNextPage boolean required
endCursor string | null required

get_event#

60 req/min Read-only

Get details for a specific event

eventId number required
Event ID
Response fields
id number required
url string required
title string required
date string required
fiscalYear string | null required
language string | null required
upcoming boolean required
eventType string | null required
parentEventType string | null required
expectedContent object | null
transcript boolean required
report boolean required
slides boolean required
audio boolean required
contentDates object[]
date string | null required
dateLabel string | null required
contentType string | null required
contentStatus string | null required
company object required
id number required
name string required
ticker string | null required
country string | null required
documents object[]
id number required
url string required
documentType string | null required
parentDocumentType string | null required
transcript object
available boolean required
isLive boolean required

list_event_types#

100 req/min Read-only

List all event types

No parameters.

Response fields
eventTypes object[] required
id number required
name string | null required
parentId number | null required
category string | null required
url string required

Conferences#

list_conferences#

60 req/min Read-only

List investor / industry conferences. Conferences group related events from multiple companies (e.g. JPMorgan Healthcare Conference, Citi Tech Conference). Supports filtering by date range, organizer company, and title search. Sorted by start date (newest first). Use get_conference to fetch a conference's events.

startDate string | null
ISO 8601 calendar date — return conferences on/after.
endDate string | null
ISO 8601 calendar date — return conferences on/before.
organizerCompanyId number | null
Filter by organizing company ID (e.g. JPMorgan's company ID for the JPMorgan Healthcare Conference), or null.
query string | null
Free-text title search (e.g. 'healthcare'), or null.
watchlistId number | null
Only conferences where a company in this watchlist presents. 0 for followed companies, or null.
limit number | null
Max results (default 25, max 100).
after string | null
Opaque cursor from a previous page's pagination.endCursor.
Response fields
conferences object[] required
id number required
url string required
title string required
startDate string required
endDate string required
organizer object | null required
numberOfEvents number required
pagination object required
hasNextPage boolean required
endCursor string | null required

get_conference#

60 req/min Read-only

Get a specific conference by id (from list_conferences): its events — the companies that presented, their dates, and one-line summaries — plus title, dates, type, and total event count. Use this to answer who presented at or what happened at a named conference. Returns up to 25 events per call; raise limit (max 100) or pass pagination.endCursor as after to fetch more.

conferenceId number required
Conference (event group) ID
watchlistId number
Only events from companies in this watchlist. 0 for followed companies.
limit number
Max events to return (default 25, max 100).
after string
Opaque cursor from a previous page's pagination.endCursor.
Response fields
id number required
title string required
startDate string required
endDate string required
type string required
numberOfEvents number required
events object[] required
id number required
url string required
title string required
date string required
summary string | null required
company object required
pagination object required
hasNextPage boolean required
endCursor string | null required

Documents#

list_documents#

60 req/min Read-only

List documents for a company

companyId number required
Company ID
documentTypes enum[]
Document types to filter by
Show all 17 options
slide report transcript quarterly_report_10q earnings_release_8k annual_report_10k annual_report_20f annual_report_40f earnings_release_6k interim_report press_release earnings_release_non_us annual_financial_statement shareholder_letter sustainability_esg_report esg_report csr_report
startDate string
Start date (ISO 8601, e.g., "2024-01-01")
endDate string
End date (ISO 8601, e.g., "2025-01-01")
limit number
Max results (default 50, max 200)
after string
Opaque cursor from a previous page's pagination.endCursor.
Response fields
companyId number required
documents object[] required
id number required
url string required
title string required
Event title and document name, e.g. "Q1 2027 - Quarterly report".
documentType string required
filingType string | null required
filingDate string | null required
Day the company published the document (YYYY-MM-DD), or null when the publication date is unknown.
eventDate string required
Event start time. Every document in an event shares it, and the startDate/endDate filters apply to it.
language string | null required
ISO 639-1 language code, e.g. en.
pageCount number | null required
Number of pages, or null for transcripts, which aren't paginated.
eventId number | null required
pagination object required
hasNextPage boolean required
endCursor string | null required

read_document#

20 req/min Read-only

Read a slide deck or report document by `documentId`. Use `read_transcript` for transcripts. `structuredContent.pages[]` contains each page with its `text` and a deep-link `url`. Long documents are returned in chunks — when `nextPage` is set, call again with `startPage: nextPage` to continue.

documentId number required
Document ID (slide or report).
startPage number
Page to start from (1-based, default: 1). Pass the `nextPage` value from a previous call to continue reading a long document.
maxPages number
Maximum pages to return (default: as many as fit the response size limit). When the response is cut short, `nextPage` indicates where to resume.
Response fields
documentId number required
url string required
documentType string | null required
companyId number | null required
eventId number | null required
eventTitle string | null required
companyName string | null required
totalPages number required
returnedPages number required
nextPage number | null required
Next startPage to request when the document was only partially returned, or null when the read reached the end.
sourcePdfUrl string | null
pages object[] required
documentDataId number required
pageNumber number required
url string required
text string

read_transcript#

20 req/min Read-only

Read the transcript for an event. Picks the best available variant automatically (in-house, raw, or live). Pass `eventId`, or `documentId` for a transcript document (resolved to its event, best variant served). Use `section: "qna"` for the Q&A section only. To find a specific statement, figure or guidance, pass `query` to get only the matching paragraphs. Each paragraph has a timestamped deep-link `url`.

eventId number
Event ID to read the transcript for.
documentId number
Transcript document ID. Resolved to its event and served as the best available transcript — not necessarily the exact version referenced. Provide either eventId or documentId.
section enum | null
'full' returns the entire transcript. 'qna' returns only the Q&A section. Defaults to 'full'.
Options: full qna
fromTimestamp number | null
Only return paragraphs that start at or after this seconds offset. Pass the previous response's `nextFromTimestamp` to continue a windowed transcript, or `lastTimestamp` for incremental reads of live transcripts.
query string
Space-separated keywords. Only return paragraphs with a word that starts with one of them, case-insensitive, so 'guid' matches 'guidance' and 'guided'. Include the topic and the other words a speaker might use for it, since speakers rarely repeat the question's wording. Omit to read the whole transcript.
Response fields
eventId number required
companyId number required
isLive boolean required
lastTimestamp number | null
nextFromTimestamp number | null
paragraphs object[] required
paragraphId number | null required
start number required
end number required
text string required
speakerName string
speakerRole string
url string required

search_documents#

30 req/min Read-only

Full-text search across transcripts, slides, and reports

query string required
Keyword search query. Max 10 words and 128 characters per OR-separated sub-query (a quoted phrase counts as one word). Supports: implicit AND, OR, * wildcard, -exclusion, `exact phrase`. Example: "`artificial intelligence` revenue growth"
documentTypes enum[] required
Document types to search
Options: reports slides transcripts
limit number
Max results (default 25, max 100)
startDate string
Filter from this date/time onwards. ISO 8601 date (YYYY-MM-DD) or, for hour-level cutoffs, datetime with explicit timezone (e.g. 2026-06-02T12:00:00Z or 2026-06-02T12:00:00+02:00).
endDate string
Filter up to this date/time. ISO 8601 date (YYYY-MM-DD) or, for hour-level cutoffs, datetime with explicit timezone (e.g. 2026-06-02T12:00:00Z or 2026-06-02T12:00:00+02:00).
filingTypes enum[]
Filing type filter (reports only)
Options: 10-K 10-Q 8-K 20-F 6-K 40-F S-1 F-1
filter string
Typesense filter expression. Fields: companyId, eventId, eventTypeId, country, gics.level1-4, marketCapCategory.name. Transcript-only: speaker.role, speaker.name. Example: country:=[US, SE] && gics.level1:=["Information Technology"]
Response fields
totalCount number required
Total matches in the search index across all sub-searches, before deduplication and the limit cap. An estimate when OR sub-queries overlap.
count number required
Number of hits returned in this response.
hits object[] required
documentType string required
url string required
companyName string required
companyId number required
eventId number required
eventTitle string required
documentId number required
text string | null required
pageNumber number
targetTime number
speakerName string
speakerRole string
failedQueries string[]
OR sub-queries that failed, usually from a timeout. Their hits are missing; retry them on their own or narrow them.

Summaries#

get_document_summary#

20 req/min Read-only

Get a Quartr summary of a document (transcript, report, or slides). `summary` is `null` when no summary exists for the document.

documentId number required
Document ID
Response fields
summary string | null required
Long-form summary, or null when none is available.
url string required
companyId number | null required

get_event_summary#

20 req/min Read-only

Get a Quartr summary of an event, covering all attached documents. `summary` is `null` when no summary exists for the event.

eventId number required
Event ID
Response fields
summary string | null required
Long-form summary, or null when none is available.
url string required
companyId number | null required

Financials#

get_financials#

20 req/min Read-only

Get a company's reported financial figures — revenue, margins, EPS, net income, cash flow — as standardized income statement, balance sheet, and cash flow values, newest period first. Prefer this over transcript or summary tools for any numeric or financial-figure question: the values are standardized and sourced from the company's filing, and each period links to its report on Quartr (`reportUrl`). Quarterly and half-year cash flow values are as filed and are often year-to-date (a US 10-Q's Q3 cash flow covers nine months), so confirm the period in the report before treating one as a single quarter. Pass `metrics` to return only the line items you need.

companyId number required
Company ID
startDate string
Start date (ISO 8601). Defaults to 2 years before endDate (5 for yearly). Pass an explicit startDate, or page backward with endDate, for older history.
endDate string
End date (ISO 8601, e.g., "2025-01-01"), default today
periodType enum
Reporting period granularity
Options: quarterly halfYear yearly periodical
financialType enum
Statement type filter
Options: incomeStatement balanceSheet cashFlowStatement
metrics enum[]
Metric keys to return. Omit to return all metrics. Requested keys that are not reported for the returned periods come back in `unmatchedMetrics` — usually because they belong to a different `financialType`.
Show all 117 options
totalRevenues totalRevenuesChg costOfGoodsSoldTotal grossProfit sellingGeneralAdminExpensesTotal salesMarketingExpenses generalAdministrativeExpenses rdExpenses otherOperatingExpensesTotal operatingIncome netIncome basicEPS ebitda effectiveTaxRate interestExpenseTotal interestAndInvestmentIncome netInterestExpenses incomeLossOnEquityInvest currencyExchangeGainsLoss otherNonOperatingIncomeExpenses ebtExclUnusualItems restructuringCharges mergerRelatedRestructuringCharges impairmentOfGoodwill gainLossOnSaleOfInvestments assetWritedown ebtInclUnusualItems earningsOfDiscontinuedOps incomeTaxExpense extraordinaryItems basicEPSExclExtra dilutedEPS dilutedEPSExclExtra totalSharesOutstanding weightedAvgSharesOutstanding weightedAvgSharesOutstandingDil netIncomeFromContOps netIncomeFromContOpsExclExtra assets.cashAndEquivalents assets.shortTermInvestments assets.totalCashAndShortTermInvestments assets.accountsReceivableTotal assets.otherReceivables assets.totalReceivables assets.inventory assets.otherCurrentAssetsTotal assets.totalCurrentAssets assets.grossPropertyPlantAndEquipment assets.accumulatedDepreciation assets.netPropertyPlantAndEquipment assets.longTermInvestments assets.goodwill assets.otherIntangiblesTotal assets.accountsReceivableLongTerm assets.deferredTaxAssetsLongTerm assets.otherLongTermAssetsTotal assets.totalAssets liabilities.accountsPayableTotal liabilities.accruedExpensesTotal liabilities.shortTermBorrowings liabilities.currentPortionOfLongTermDebt liabilities.currentPortionOfLeases liabilities.currentIncomeTaxesPayable liabilities.unearnedRevenueCurrentTotal liabilities.otherCurrentLiabilities liabilities.totalCurrentLiabilities liabilities.longTermDebt liabilities.longTermLeases liabilities.unearnedRevenueNonCurrent liabilities.deferredTaxLiabilityNonCurrent liabilities.otherNonCurrentLiabilities liabilities.totalLiabilities equity.commonStockTotal equity.retainedEarnings equity.comprehensiveIncomeAndOther equity.totalCommonEquity equity.totalEquity equity.totalLiabilitiesAndEquity operatingActivities.netIncome operatingActivities.depreciationAndAmortization operatingActivities.amortizationOfGoodwillAndIntangibles operatingActivities.totalDepreciationAndAmortization operatingActivities.amortizationOfDeferredCharges operatingActivities.assetWritedownAndRestructuringCosts operatingActivities.stockBasedCompensation operatingActivities.otherOperatingActivitiesTotal operatingActivities.changeInAccountsReceivable operatingActivities.changeInInventories operatingActivities.changeInAccountsPayable operatingActivities.changeInUnearnedRevenues operatingActivities.changeInIncomeTaxes operatingActivities.changeInOtherNetOperatingAssets operatingActivities.cashFromOperations investingActivities.gainLossOnSaleOfInvestments investingActivities.capitalExpenditure investingActivities.cashAcquisitions investingActivities.investmentInMarketableAndEquitySecurities investingActivities.otherInvestingActivitiesTotal investingActivities.cashFromInvesting financingActivities.shortTermDebtIssuedTotal financingActivities.longTermDebtIssuedTotal financingActivities.totalDebtIssued financingActivities.shortTermDebtRepaidTotal financingActivities.longTermDebtRepaidTotal financingActivities.totalDebtRepaid financingActivities.issuanceOfCommonStock financingActivities.repurchaseOfCommonStock financingActivities.commonDividendsPaid financingActivities.commonAndPreferredStockDividendsPaid financingActivities.otherFinancingActivitiesTotal financingActivities.cashFromFinancing freeCashFlow.netChangeInCash freeCashFlow.unleveredFreeCashFlow freeCashFlow.leveredFreeCashFlow freeCashFlow.freeCashFlow freeCashFlow.nopat other.foreignExchangeRateAdjustments
includeNullValues boolean
Include metrics whose value is null (not reported for the period). Off by default to keep responses small. Metrics explicitly requested via `metrics` are always included, null or not.
includeReferenceUrls boolean
Include per-metric page-level citation links (referenceUrl) that deep-link to the exact page and highlight the cited figure in the report on Quartr. Significantly increases response size; enable only when page-level citations are needed.
Response fields
financials object[] required
eventId number required
eventUrl string required
eventTitle string required
eventDate string required
currency string required
financialType enum required
Options: incomeStatement balanceSheet cashFlowStatement
reportUrl string | null required
data object required
unmatchedMetrics string[]

Reference#

list_gics#

100 req/min Read-only

List GICS classification hierarchy

No parameters.

Response fields
classifications object[] required
id number required
parentId number | null required
name string required
code string | null required
level number | null required
url string required

Watchlists#

list_watchlists#

100 req/min Read-only

List the user's watchlists

No parameters.

Response fields
watchlists object[] required
id number required
name string required
companyCount number required
updatedAt string required
url string required

get_watchlist#

100 req/min Read-only

Get a watchlist with its companies

watchlistId number required
Watchlist ID
Response fields
id number required
name string required
companies object[] required
id number required
name string required
ticker string required
country string | null required
url string required

create_watchlist#

40 req/min Write

Create a new watchlist

name string required
Name for the new watchlist
companyIds number[]
Company IDs to add initially
Response fields
id number required
name string required
url string required

rename_watchlist#

60 req/min Write

Rename a watchlist

watchlistId number required
Watchlist ID (cannot rename followed companies list, id 0)
name string required
New name for the watchlist
Response fields
watchlistId number required
name string required
url string required

delete_watchlist#

40 req/min Destructive

Delete a watchlist

watchlistId number required
Watchlist ID to delete (cannot delete followed companies list, id 0)
Response fields
deleted boolean required
watchlistId number required
watchlistName string required
url string required

add_to_watchlist#

60 req/min Write

Add companies to a watchlist

watchlistId number required
Watchlist ID. Use 0 to follow companies.
companyIds number[] required
Company IDs to add
Response fields
watchlistId number required
watchlistName string required
addedCompanyIds number[] required
url string required

remove_from_watchlist#

60 req/min Destructive

Remove companies from a watchlist

watchlistId number required
Watchlist ID. Use 0 to unfollow companies.
companyIds number[] required
Company IDs to remove
Response fields
watchlistId number required
watchlistName string required
removedCompanyIds number[] required
url string required

Keywords#

list_keywords#

100 req/min Read-only

List the user's keyword alerts

No parameters.

Response fields
keywords object[] required
id number required
name string required
companySetting enum required
Options: all followed watchlists companies followedAndWatchlists
watchlists object[] required
companies object[] required
eventTypeIds number[] required
documentTypes enum[] required
Options: slides report transcript
countries string[] required
gics string[] required
marketCapCategories string[] required
monitoring string required
url string required

list_keyword_matches#

60 req/min Read-only

List what the user's keyword alerts matched, newest first. Each match is one document or live call. Matches are pruned weekly to the latest 100 per user, so a missing match does not mean the keyword was never mentioned.

keywordId number
Only return matches for this keyword alert.
companyId number
Only return matches for this company.
limit integer
Max results (default 25, max 100)
after string
Opaque cursor from a previous page's pagination.endCursor.
Response fields
matches object[] required
keyword string required
matchCount number required
How many times the keyword occurs in the content.
description string | null required
Summary of what was said about the keyword, if any.
matchedAt string required
company object required
event object required
document object | null required
The matched document, or null for a match in a live call.
url string required
pagination object required
hasNextPage boolean required
endCursor string | null required

create_keyword#

40 req/min Write

Create a keyword alert. Supports scoping to all companies, followed companies, specific watchlists, specific companies, or followed-plus-watchlists, optionally narrowed by country, industry, or market cap.

name string required
The keyword to monitor
companySetting enum required
Scope of companies to monitor. 'all' = every company. 'followed' = only companies the user follows. 'watchlists' = only companies in the supplied watchlists (requires watchlistIds). 'companies' = only the supplied companies (requires companyIds). 'followedAndWatchlists' = followed companies plus the supplied watchlists (requires watchlistIds).
Options: all followed watchlists companies followedAndWatchlists
watchlistIds number[]
Watchlist IDs. Required when companySetting is 'watchlists' or 'followedAndWatchlists'. Use list_watchlists to find IDs.
companyIds number[]
Company IDs. Required when companySetting is 'companies'. Use search_companies to find IDs.
eventTypeIds number[]
Event type IDs to restrict alerts to. Omit or pass an empty array to monitor all event types — do not list every event type ID to mean 'all'.
documentTypes enum[]
Optional document types to restrict alerts (slides, report, transcript).
Options: slides report transcript
countries string[]
Optional ISO country codes (e.g. US, SE) to restrict alerts to companies in those countries.
gics string[]
Optional industry names to restrict alerts to. Use level 4 names from list_gics; sector and industry group names are rejected.
marketCapCategories enum[]
Optional market cap categories to restrict alerts to.
Options: Nano-Cap Micro-Cap Small-Cap Mid-Cap Large-Cap Mega-Cap
Response fields
id number required
name string required
companySetting enum required
Options: all followed watchlists companies followedAndWatchlists
watchlists object[] required
id number required
name string required
companies object[] required
id number required
name string required
eventTypeIds number[] required
documentTypes enum[] required
Options: slides report transcript
countries string[] required
gics string[] required
marketCapCategories string[] required
monitoring string required
url string required

update_keyword#

60 req/min Destructive

Update a keyword alert. Supports scoping to all companies, followed companies, specific watchlists, specific companies, or followed-plus-watchlists, optionally narrowed by country, industry, or market cap. Replaces the company scope, event types, and document types, so re-supply those to keep them (list_keywords returns them). Omitted countries, gics, and marketCapCategories keep their current values; pass an empty array to clear one.

keywordId number required
Keyword ID to update
name string required
Updated keyword text
companySetting enum required
Scope of companies to monitor. 'all' = every company. 'followed' = only companies the user follows. 'watchlists' = only companies in the supplied watchlists (requires watchlistIds). 'companies' = only the supplied companies (requires companyIds). 'followedAndWatchlists' = followed companies plus the supplied watchlists (requires watchlistIds).
Options: all followed watchlists companies followedAndWatchlists
watchlistIds number[]
Watchlist IDs. Required when companySetting is 'watchlists' or 'followedAndWatchlists'. Use list_watchlists to find IDs.
companyIds number[]
Company IDs. Required when companySetting is 'companies'. Use search_companies to find IDs.
eventTypeIds number[]
Event type IDs to restrict alerts to. Omit or pass an empty array to monitor all event types — do not list every event type ID to mean 'all'.
documentTypes enum[]
Optional document types to restrict alerts (slides, report, transcript).
Options: slides report transcript
countries string[]
Optional ISO country codes (e.g. US, SE) to restrict alerts to companies in those countries.
gics string[]
Optional industry names to restrict alerts to. Use level 4 names from list_gics; sector and industry group names are rejected.
marketCapCategories enum[]
Optional market cap categories to restrict alerts to.
Options: Nano-Cap Micro-Cap Small-Cap Mid-Cap Large-Cap Mega-Cap
Response fields
id number required
name string required
companySetting enum required
Options: all followed watchlists companies followedAndWatchlists
watchlists object[] required
id number required
name string required
companies object[] required
id number required
name string required
eventTypeIds number[] required
documentTypes enum[] required
Options: slides report transcript
countries string[] required
gics string[] required
marketCapCategories string[] required
monitoring string required
url string required

delete_keyword#

40 req/min Destructive

Delete a keyword alert

keywordId number required
Keyword ID to delete
Response fields
deleted boolean required
keywordId number required
keywordName string required
url string required

Saved#

list_saved_items#

100 req/min Read-only

List user's saved items (transcript paragraphs, report pages, etc). Newest first. When the user asks about their own saved items, use visibility private; null also returns teammates' items from team folders. In text, <mark> wraps the words the user highlighted.

folderId number | null
One folder id from list_folders, or null to list across folders (visibility then narrows it).
type enum | null
Only this kind of item, or null for all kinds.
Options: transcript slide report
visibility enum | null
What to list when folderId is null: private = "My items" (the user's own), team = team folders including teammates', null = both.
Options: private team
companyIds number[] | null
Only items from these companies (ids from search_companies), or null for all.
eventTypeIds number[] | null
Only items from events of these types (ids from list_event_types), or null for all.
limit number | null
Max results (default 25, max 50).
after string | null
Opaque cursor from a previous page's pagination.endCursor.
Response fields
items object[] required
id number required
type enum required
Options: transcript slide report
url string required
savedAt string required
savedBy string | null required
folder object | null required
company object required
event object required
documentId number | null required
documentDataId number
page number
startTime number
speaker string | null
text string | null required
pagination object required
totalCount number | null required
hasNextPage boolean required
endCursor string | null required

save_item#

40 req/min Write

Save a transcript paragraph or a slide/report page to the user's saved items. Read the source with read_transcript or read_document first; search results don't carry the ids.

item object required
The transcript paragraph or document page to save.
Option 1
type enum required
Options: transcript
paragraphId number required
paragraphId from read_transcript. Null on live events, which can't be saved.
startTime number required
The paragraph's `start` from read_transcript.
Option 2
type enum required
Options: slide report
documentDataId number required
documentDataId of the page, from read_document.
folderId number | null
Folder to save it into (id from list_folders), or null to leave it unfiled.
Response fields
saved boolean required
savedItemId number required
name string required
url string required

remove_saved_item#

40 req/min Destructive

Remove one item from the user's saved items. Only their own items, not a teammate's.

savedItemId number required
Saved item ID from list_saved_items
Response fields
removed boolean required
savedItemId number required
name string required
url string required

move_saved_items#

40 req/min Write

Move saved items into or out of a folder. Only their own items, not a teammate's.

savedItemIds number[] required
Saved item IDs from list_saved_items
targetFolderId number | null required
Folder to move them into (id from list_folders), or null to move them out of any folder.
Response fields
moved number required
targetFolderId number | null required
name string required
url string required

list_folders#

100 req/min Read-only

List the folders in the user's saved items

No parameters.

Response fields
folders object[] required
id number required
name string required
visibility string required
itemCount number required
url string required

create_folder#

40 req/min Write

Create a folder in the user's saved items

name string required
Folder name
visibility enum
Folder visibility (default: private)
Options: private team
Response fields
id number required
name string required
visibility string required
url string required

rename_folder#

60 req/min Write

Rename a folder in the user's saved items

folderId number required
Folder ID to rename
name string required
New folder name
Response fields
folderId number required
name string required
url string required

delete_folder#

40 req/min Destructive

Delete a folder in the user's saved items

folderId number required
Folder ID to delete
Response fields
deleted boolean required
folderId number required
name string required
url string required

Workspaces#

list_workspaces#

100 req/min Read-only

List the user's workspaces

query string
Search/filter workspaces by name
visibility enum
Filter by visibility. Omit to include both private and team workspaces.
Options: private team
Response fields
workspaces object[] required
id number required
name string required
visibility string required
updatedAt string required
url string required

read_workspace#

100 req/min Read-only

Read a workspace's properties and content

workspaceId number required
Workspace ID to read
Response fields
id number required
name string required
visibility string required
updatedAt string required
taggedCount number required
url string required
content string required

write_workspace#

20 req/min Destructive

Edit a workspace document body from Markdown, either appending content to the end or overwriting it entirely (controlled by mode). The edit lands live for any connected user. A snapshot of the prior state is automatically taken so the user can revert via the workspace's version history.

workspaceId number required
Workspace ID to write to
mode enum required
`append` adds content to the end of the document body. `overwrite` replaces the entire body. Prefer `append` unless the user asked for a full rewrite.
Options: append overwrite
markdown string required
Document content as Markdown — the same format returned by read_workspace. Supports headings, paragraphs, bold/italic/links/inline code, blockquotes, and bullet/ordered/nested lists. To embed a native card (the same card the app inserts on drag), write a fenced block whose language is quartr-<kind> and whose JSON body starts on the line after the opening fence; JSON placed on the fence line itself is not parsed. Kinds and their bodies: quartr-saved-item {"savedItemId": 1} (from list_saved_items), quartr-transcript {"paragraphId": 1} (paragraphId from read_transcript), quartr-slide or quartr-report {"documentDataId": 1} (from read_document), quartr-company {"companyId": 1} (from search_companies), quartr-chart {"title", "type": "line|bar|bar_stacked|pie", "data": [{"x", "y", "field", "unit"}]}, quartr-table {"title", "columns": [{"text"}], "rows": [{"data": [{"value"}]}]}. Blocks returned by read_workspace can be pasted back as they are. Max 200 top-level blocks per call.
Response fields
workspaceId number required
mode enum required
Options: append overwrite
childrenApplied number required
snapshotInserted boolean required
workspaceName string required
url string required

create_workspace#

40 req/min Write

Create a new workspace

name string required
Workspace name
visibility enum
Workspace visibility (default: private)
Options: private team
Response fields
id number required
name string required
visibility string required
url string required

delete_workspace#

40 req/min Destructive

Delete a workspace

workspaceId number required
Workspace ID to delete
Response fields
deleted boolean required
workspaceId number required
workspaceName string required
url string required

tag_company_to_workspace#

60 req/min Write

Tag a company to a workspace

workspaceId number required
Workspace ID
companyId number required
Company ID to tag
Response fields
workspaceId number required
companyId number required
tagId number required
workspaceName string required
url string required

untag_company_from_workspace#

60 req/min Destructive

Remove a company tag from a workspace

workspaceId number required
Workspace ID
tagId number required
Tag ID to remove — the `tagId` of the tagged company, from read_workspace or the tag_company_to_workspace response. This is NOT the company ID.
Response fields
workspaceId number required
tagId number required
removed boolean required
workspaceName string required
url string required

Search filters#

list_search_filters#

100 req/min Read-only

List the user's saved search filters

No parameters.

Response fields
filters object[] required
id number required
name string required
category string | null required
companyCount number required
countryCount number required
url string required

create_search_filter#

30 req/min Write

Create a saved search filter

name string required
Filter name
gics string[]
GICS sector/industry codes (use list_gics to find codes)
countries string[]
ISO country codes (e.g., "US", "SE")
eventTypes string[]
Event type names in snake_case (e.g., earnings_call)
companyIds number[]
Specific company IDs
marketCapCategories enum[]
Market cap size filter
Options: Nano-Cap Micro-Cap Small-Cap Mid-Cap Large-Cap Mega-Cap
Response fields
id number required
name string required
companyCount number required
countryCount number required
url string required

delete_search_filter#

40 req/min Destructive

Delete a saved search filter

filterId number required
Filter ID to delete
Response fields
deleted boolean required
filterId number required
filterName string required
url string required