Skip to main content

Documentation Index

Fetch the complete documentation index at: https://developers.fathom.ai/llms.txt

Use this file to discover all available pages before exploring further.

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({
    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.