Search media appearances
search_media_appearancesSearch what people said outside earnings calls, in two kinds of source:
Interviews: podcasts, TV interviews and conference talks by company executives, investors, fund managers, analysts, economists, journalists and other guests.
Central-bank documents: speeches, testimony, policy statements, minutes, press-conference transcripts, projections and reports from the Federal Reserve Board and regional Reserve Banks, the European Central Bank and euro-area national central banks, the Bank of England, the Bank of Japan, the Reserve Bank of India, the People's Bank of China, the Bank of Korea, the Hong Kong Monetary Authority, Taiwan's central bank and others. Documents in other languages yield English paraphrases, and each claim's verbatim_quote keeps the original language. A query in Chinese, Japanese, Korean or Thai also finds claims whose original-language quote holds every query word, such as 关税 for a Chinese episode about tariffs.
Use it for questions about what a named person or institution said: "what has Waller said about rate cuts", "what did the ECB say about inflation at its last meeting", "what did Jensen Huang say about export controls". Claims cover listed and unlisted companies (OpenAI, DeepSeek, MiniMax), institutions (the Federal Reserve, the European Central Bank, regulators), and whole markets and industries, not only the speaker's own employer.
How to search: put one to three key words in query, and put the speaker in person, the publisher in institution and the kind of document in appearance_type. A returned row must contain most of the query words, so a long question returns fewer rows than its key words alone. Retry with the speaker's own vocabulary or a synonym before concluding there is no coverage. No serving-time model interprets or expands the query: retrieval is lexical, not semantic. It tries strict full-text matching first, loose any-term full-text matching only when strict matching returns no candidates, then trigram matching only when both full-text stages are empty.
Canonical search_target values:
"search" (default): blended structured claims and broad passage cards.
"claims": normalized decision-relevant claims only.
"passages": broad substantive paraphrase cards only.
"pressure_points": stored refusal and declined-to-confirm claim rows.
"appearances": video-level catalog rows.
"coverage": company-level structured-corpus inventory.
"episodes": every episode the podcast feeds listed, newest first, transcribed or not (result_kind "feed_episode"): show, title, published date, link, transcribed, and status, which says why an episode was not transcribed. Use it for the newest episode of a show. A feed_episode row has no paraphrase and no quote. show narrows it to one show, and every query word must be in the title; date_from, date_to, limit and offset apply, and the other filters do not. A search with show that finds no transcribed row also returns the matching feed episodes under feed_episodes, next to the empty results.
"all" maps to "search", "videos" to "appearances", and "companies" to "coverage" for older clients; "search" is the primary blended target, not a legacy alias.
Result contracts:
search/claims/passages/pressure_points return result_kind, canonical_paraphrase, speaker, primary ticker, topic labels, video/channel/publication metadata, lexical relevance, and source_url (a timestamped YouTube deep link, the audio file with a #t= start time for a podcast whose stored link is an audio file, otherwise the episode page for a podcast, the document page for an official document, or the PDF page of a press-conference transcript). start_s is the second of the recording at which the row starts (null for official documents, which have no recording time); give it as the time when the podcast link opens an episode page. Claim and pressure_point rows also return verbatim_quote, the speaker's exact words in the original language, at most 1,000 characters (a longer quote is cut at a sentence end or a space, never inside a number), and quote_truncated, true when the quote was cut (both null on passage rows). detail=true adds normalized claim and attribution fields plus institution, document_kind and event_date (null for interviews), but never raw transcript text or evidence spans.
appearances returns video metadata, primary ticker, attribution metadata, matching claim count, URL, and relevance score. detail has no effect.
coverage returns company-level appearance, publication-date-span, channel, claim, and low-confidence-attribution counts. It is structured coverage, not a per-person acquired-video/hour inventory; query, sort, and detail have no effect.
Filter and ordering semantics:
company is comma-separated tickers and company names, mixed freely. A stored ticker matches the appearance's company or a section subject with that ticker; any other value is read as the name of a company, institution, or organisation a podcast section is about, matched after dropping punctuation, a leading "The", and corporate suffixes. Every ticker attached to a matched name joins the ticker filter, so "Alphabet" also reaches GOOGL rows. The result records company_tickers, company_names, company_matched, and company_unmatched (a value that matched nothing, with up to five possible matches); an unmatched value returns no rows, not an error. company_filter is the old name of company and behaves the same; passing both is an error. The appearances and coverage targets also match every value, upper-cased, against the entity references of claims (products, rivals, partners such as "CUDA"); a value found only there is listed under company_references.
person is a case-insensitive substring over the finding speaker and/or appearance speaker metadata. appearance_type applies to every target: podcast, tv_interview, conference and other for interviews; speech, testimony, minutes, statement, press_conference and hearing for official documents. country ("US") restricts every target to official documents of that country; institution ("Federal Reserve") is described with show and channel below.
claim_family restricts structured claims. With blended search it suppresses passage cards; pairing it with search_target="passages" is an error. For appearances/coverage it requires videos with matching structured claims.
date_from/date_to are inclusive YYYY-MM-DD bounds on the video's stored publication/upload date, which can differ from the recording or event date.
show, channel, and institution are case-insensitive substrings of a podcast show name, a YouTube channel name, and a publishing institution; each returns only rows of its own kind, and when more than one is given rows matching any of them are returned. show also matches the YouTube uploads of a show whose YouTube channel is registered for it.
relevance orders lexical score first, then publication date (a relevance search of claims with a query gives its rows in turns by episode, see below); newest orders publication date first, then lexical score. Coverage has fixed inventory ordering by latest covered publication date.
limit is one page of 1-50 rows and offset skips that many ranked rows before the page, so limit=15 with offset=15 returns rows 16-30 of the same ranking. Every result carries has_more, plus next_offset when more rows follow; call again with that offset to read the next page.
A relevance search of claims (search or claims target, with a query) also returns episode_ranking: the episodes of the page's rows, best first. Each lists video_title, channel, published_at, episode_score, matching_claims, title_match and result_ids (the result_id of each of its rows in results). Its rows go in turns: the best row of each episode, then the second-best row of each, so one episode does not fill the page. Such a search ranks its best 400 rows; a note says when the pages stop there.
With an empty query, each target browses its most recent rows (search and claims show claims only).
Evidence safety: canonical_paraphrase is FactIQ's summary, not a transcript quotation. Quote only verbatim_quote, exactly as returned, and say so when quote_truncated is true. Cite source_url (timestamped for YouTube and podcast audio files, page-anchored for PDF transcripts) and start_s with the returned speaker, publication date, and video or document metadata. FOMC minutes describe the meeting of event_date and are published three weeks later; the Committee, not one person, is their speaker. Do not put canonical_paraphrase in quotation marks: passage rows have no verbatim_quote, so quote a passage only after you verify the wording at the source link. The tool never returns raw transcript turns.
Detail-field safety: internal audit flags are not published; judge a claim from value, assertion_status, and the timestamped source link. company_attribution_confidence and company_attribution_source concern only the video-to-company/ticker assignment; inferred attribution is not independent confirmation.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| show | No | Case-insensitive substring of a podcast show name, for example 'Odd Lots'. Returns podcast rows only: the show's feed episodes and its YouTube uploads when its YouTube channel is registered for it. With search_target='episodes' it names the show whose feed episodes are listed. Combine with channel or institution to also include YouTube or official-document rows that match those; rows matching any given name filter are returned. | |
| sort | No | "relevance" orders lexical score first and publication date second; a relevance search of claims with a query groups its rows by episode and gives them in turns (see episode_ranking). "newest" orders publication date first and lexical score second. Coverage uses its fixed company-inventory ordering. | relevance |
| limit | No | Maximum rows returned in one page, from 1 through 50. Use offset to read the pages after the first. | |
| query | No | Lexical search text: one to three key words, for example 'rate cuts' or 'export controls'. A returned row must contain most of the query words, so a long question returns fewer rows; after common words are dropped, the first eight words find rows and every word counts in the ranking. Put a phrase in double quotes to find it word for word: claims whose quote holds the phrase come first. Put the speaker in person and the publisher in institution instead of in the query. No serving-time model interprets the query. Retry synonyms or the speaker's own terminology if needed. Ignored by coverage; appearances matches only video title/channel metadata. | |
| detail | No | For search/claims/passages/pressure_points, add normalized claim and company-attribution fields. Internal audit flags use bounded public names and include field_semantics; raw transcript text and evidence spans remain excluded. Has no effect on appearances or coverage rows. | |
| offset | No | Number of ranked rows to skip before the returned page, so offset=15 with limit=15 gives rows 16 through 30 of the same ranking. Every result reports has_more, and adds next_offset when more rows follow; repeat the call with that value to read the next page. | |
| person | No | Case-insensitive name substring. Returns statements whose speaker matches, by the stored label or by the name the result shows for it (a label NADELLA shown as Satya Nadella). Only when no such statement matches does it return rows of episodes whose host or guest list holds the name; a note then says that the speaker of those rows can be someone else. | |
| channel | No | Case-insensitive substring of a YouTube channel name, for example 'Bloomberg Television'. Returns YouTube rows only. Combine with show or institution to also include podcast or official-document rows that match those; rows matching any given name filter are returned. | |
| company | No | Comma-separated tickers and company names, mixed freely (for example, 'NVDA,OpenAI' or 'Federal Reserve,Alphabet'). A value that is a stored ticker matches the appearance's company or a section subject with that ticker. Any other value is read as the name of a company, institution, or organisation the podcast section is about, so unlisted companies (OpenAI, MiniMax, Manycore Tech), central banks, and regulators are found by name. Names are matched after dropping punctuation, a leading 'The', and corporate suffixes ('NVIDIA Corp.' finds NVIDIA; 'Alphabet' also reaches GOOGL rows), and each result records how every value was read: company_tickers, company_names, company_matched, and company_unmatched (with up to five possible matches per value that matched nothing). The appearances and coverage targets also match every value, upper-cased, against the entity references of claims (products, rivals, partners such as 'CUDA' or 'ChatGPT'); a value found only there is listed under company_references. Alternate spellings can return different appearances or coverage rows because reference names are matched exactly ('open ai' and 'OpenAI' select the same subject but not the same references); the claims rows are the same. | |
| country | No | ISO country code of the institution that published an official document, for example 'US'. Restricts every target to official documents of that country. | |
| date_to | No | Inclusive YYYY-MM-DD upper bound on the video's stored publication/upload date, which may differ from its recording or event date. | |
| date_from | No | Inclusive YYYY-MM-DD lower bound on the video's stored publication/upload date, which may differ from its recording or event date. | |
| institution | No | Case-insensitive substring of the institution that published an official document, for example 'Federal Reserve'. Returns official-document rows only; podcast and YouTube rows have no institution. Combine with show or channel to also include podcast or YouTube rows that match those; rows matching any given name filter are returned. | |
| claim_family | No | Optional claim-ontology code. Blended search then returns structured claims only; appearances/coverage require matching claims. It is incompatible with search_target='passages'. Invalid codes return the valid vocabulary. | |
| search_target | No | Canonical targets: "search" (default blended claims + passages), "claims" (normalized decision-relevant claims), "passages" (broad substantive paraphrase cards), "pressure_points" (refusals and declined-to-confirm claims), "appearances" (video catalog), and "coverage" (company-level structured-corpus inventory), and "episodes" (every episode the podcast feeds listed, transcribed or not, with title, date, link and the reason it was not transcribed; no paraphrase, no quote). Compatibility aliases are "all" -> "search", "videos" -> "appearances", and "companies" -> "coverage"; new callers should use the canonical values. | search |
| company_filter | No | Old name of company. Accepted with the same behaviour; the response note asks the client to update its plugin. Do not pass both. | |
| appearance_type | No | Optional appearance-type filter. Interviews: podcast, tv_interview, conference, other. Official documents: speech, testimony, minutes, statement, press_conference, hearing. Applies to every canonical target. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||