Skip to main content
Glama

search_sec_filings

Search SEC EDGAR filings by CIK number, form type, company name, or date range to access filing metadata and document URLs for financial research and compliance.

Instructions

Search SEC EDGAR filings by CIK number, form type (10-K, 10-Q, 8-K, etc.), company name, and date range. Returns filing metadata including accession number, filing date, and document URLs. Source: SEC EDGAR, updated every 15 minutes.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cikNoCentral Index Key — SEC's unique company identifier (e.g. 0001652044 for Alphabet)
form_typeNoSEC form type (e.g. 10-K, 10-Q, 8-K, S-1, DEF 14A). Case-insensitive.
company_nameNoCompany name to search for (partial match)
date_fromNoStart date for filing date range (YYYY-MM-DD)
date_toNoEnd date for filing date range (YYYY-MM-DD)
limitNoMaximum number of results (default 25, max 100)

Implementation Reference

  • src/tools/sec.ts:41-82 (registration)
    Registration of the 'search_sec_filings' tool including title, description, and input schema.
    server.registerTool(
      "search_sec_filings",
      {
        title: "Search SEC Filings",
        description:
          "Search SEC EDGAR filings by CIK number, form type (10-K, 10-Q, 8-K, etc.), " +
          "company name, and date range. Returns filing metadata including accession number, " +
          "filing date, and document URLs. Source: SEC EDGAR, updated every 15 minutes.",
        inputSchema: {
          cik: z
            .string()
            .optional()
            .describe(
              "Central Index Key — SEC's unique company identifier (e.g. 0001652044 for Alphabet)",
            ),
          form_type: z
            .string()
            .optional()
            .describe(
              "SEC form type (e.g. 10-K, 10-Q, 8-K, S-1, DEF 14A). Case-insensitive.",
            ),
          company_name: z
            .string()
            .optional()
            .describe("Company name to search for (partial match)"),
          date_from: z
            .string()
            .optional()
            .describe("Start date for filing date range (YYYY-MM-DD)"),
          date_to: z
            .string()
            .optional()
            .describe("End date for filing date range (YYYY-MM-DD)"),
          limit: z
            .number()
            .int()
            .min(1)
            .max(100)
            .optional()
            .describe("Maximum number of results (default 25, max 100)"),
        },
      },
  • Handler function for 'search_sec_filings' which calls the SEC filings API.
      async ({ cik, form_type, company_name, date_from, date_to, limit }) => {
        const res = await apiGet<SecFilingsResponse>("/api/v1/sec/filings", {
          cik,
          form_type,
          company_name,
          date_from,
          date_to,
          limit: limit ?? 25,
        });
    
        if (!res.ok) {
          return {
            content: [
              {
                type: "text" as const,
                text: `API error (${res.status}): ${JSON.stringify(res.data)}`,
              },
            ],
            isError: true,
          };
        }
    
        const { count, data } = res.data;
        const summary = `Found ${count} SEC filing(s).`;
        const json = JSON.stringify(data, null, 2);
    
        return {
          content: [{ type: "text" as const, text: `${summary}\n\n${json}` }],
        };
      },
    );

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/carrierone/verilexdata-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server