Filtering Data

Both TypeScript and Python SDKs provide powerful filtering capabilities for retrieving specific data from the Fathom API.

Basic Filtering

Start with simple single filters:
import { Fathom } from 'fathom-typescript';

const fathom = new Fathom({
  security: {
    apiKeyAuth: "YOUR_API_KEY"
  }
});

// Filter by team only
const result = await fathom.listMeetings({
  teams: ["Sales"]
});

for await (const page of result) {
  console.log(page);
}

Filter by Meeting Type

import { Fathom } from 'fathom-typescript';

const fathom = new Fathom({
  security: {
    apiKeyAuth: "YOUR_API_KEY"
  }
});

async function getExternalMeetings() {
  const result = await fathom.listMeetings({
    meetingType: "external"
  });
  
  for await (const page of result) {
    console.log(page);
  }
}

Include Transcript Data

import { Fathom } from 'fathom-typescript';

const fathom = new Fathom({
  security: {
    apiKeyAuth: "YOUR_API_KEY"
  }
});

async function getMeetingsWithTranscripts() {
  const result = await fathom.listMeetings({
    includeTranscript: true
  });
  
  for await (const page of result) {
    for (const meeting of page.items || []) {
      console.log(`Meeting: ${meeting.title}`);
      if (meeting.transcript) {
        console.log(`Transcript: ${meeting.transcript}`);
      }
    }
  }
}

Combining Multiple Filters

Combine multiple filters for precise queries:
import { Fathom } from 'fathom-typescript';

const fathom = new Fathom({
  security: {
    apiKeyAuth: "YOUR_API_KEY"
  }
});

async function getFilteredMeetings() {
  const result = await fathom.listMeetings({
    calendarInvitees: [
      "cfo@acme.com",
      "legal@acme.com",
    ],
    calendarInviteesDomains: [
      "acme.com",
      "client.com",
    ],
    recordedBy: [
      "ceo@acme.com",
      "pm@acme.com",
    ],
    teams: [
      "Sales",
      "Engineering",
    ],
    meetingType: "external",
    includeTranscript: true,
    includeCrmMatches: true
  });
  
  for await (const page of result) {
    for (const meeting of page.items || []) {
      console.log(`Meeting: ${meeting.title}`);
      console.log(`Recorded by: ${meeting.recordedBy?.name}`);
      if (meeting.crmMatches) {
        console.log(`CRM matches: ${meeting.crmMatches}`);
      }
    }
  }
}

TypeScript Type Safety

The TypeScript SDK provides full type safety for filter parameters:
import { Fathom } from 'fathom-typescript';

const fathom = new Fathom({
  security: {
    apiKeyAuth: "YOUR_API_KEY"
  }
});

// TypeScript will provide autocomplete and type checking
async function typedFiltering() {
  const result = await fathom.listMeetings({
    // TypeScript will suggest available options
    meetingType: "external", // ✅ Valid
    // meetingType: "invalid" // ❌ TypeScript error
    includeTranscript: true,
    includeCrmMatches: false
  });
  
  for await (const page of result) {
    // TypeScript knows the structure of the response
    console.log(`Page has ${page.items?.length || 0} meetings`);
  }
}
For complete parameter documentation including types, examples, and detailed descriptions, see the API Reference.