SEC EDGAR Full-Text Search API

The SEC EDGAR Full-Text Search API (EFTS) allows searching the full text of all EDGAR filings. Supports keyword search, date range filtering, form type filtering, and entity-based queries returning metadata for matching filings.

OpenAPI Specification

sec-edgar-submissions-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: SEC EDGAR Submissions & XBRL API
  description: >-
    The SEC EDGAR data APIs provide free, authenticated-free access to company
    filing metadata, XBRL financial data, and full-text search across all SEC
    submissions. APIs are hosted at data.sec.gov and efts.sec.gov and require
    a descriptive User-Agent header per SEC fair-access policy.
  version: 1.0.0
  contact:
    name: SEC Developer Resources
    url: https://www.sec.gov/developer
  license:
    name: Public Domain (U.S. Government Work)
    url: https://www.sec.gov/privacy.htm
servers:
  - url: https://data.sec.gov
    description: SEC EDGAR Data API
  - url: https://efts.sec.gov
    description: SEC EDGAR Full-Text Search

tags:
  - name: Company Facts
    description: Aggregated company financial facts

  - name: Full-Text Search
    description: Full-text search across all EDGAR filings
  - name: Submissions
    description: Company filing submission history
  - name: XBRL
    description: Structured XBRL financial data
paths:
  /submissions/CIK{cik}.json:
    get:
      operationId: getCompanySubmissions
      summary: Get company filing submission history
      description: >-
        Returns all filing metadata for a company identified by CIK (Central Index Key).
        Includes recent filings inline and older filings referenced in separate data files.
        Contains company metadata, SIC code, fiscal year end, and filing history.
      tags:
        - Submissions
      parameters:
        - name: cik
          in: path
          required: true
          description: >-
            10-digit Central Index Key (CIK) with leading zeros.
            Example: 0000320193 for Apple Inc.
          schema:
            type: string
            pattern: '^\d{10}$'
          example: "0000320193"
      responses:
        '200':
          description: Company submissions data
          headers:
            Content-Type:
              schema:
                type: string
                example: application/json
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompanySubmissions'
        '404':
          description: Company CIK not found
        '429':
          description: Rate limit exceeded — max 10 requests/second

  /api/xbrl/companyfacts/CIK{cik}.json:
    get:
      operationId: getCompanyFacts
      summary: Get all XBRL facts for a company
      description: >-
        Returns all structured financial data reported in XBRL-tagged SEC filings
        for a company. Covers all US-GAAP and DEI taxonomy concepts across all
        filings. Data is organized by concept with historical values per period.
      tags:
        - Company Facts
        - XBRL
      parameters:
        - name: cik
          in: path
          required: true
          description: 10-digit CIK with leading zeros
          schema:
            type: string
            pattern: '^\d{10}$'
          example: "0000320193"
      responses:
        '200':
          description: All XBRL company facts
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompanyFacts'
        '404':
          description: Company not found

  /api/xbrl/companyconcept/CIK{cik}/{taxonomy}/{concept}.json:
    get:
      operationId: getCompanyConcept
      summary: Get a single XBRL concept for a company
      description: >-
        Returns all historical values reported for a specific XBRL concept by a
        company. For example, retrieve all reported values of AccountsPayableCurrent
        from the us-gaap taxonomy across all filings.
      tags:
        - XBRL
      parameters:
        - name: cik
          in: path
          required: true
          schema:
            type: string
            pattern: '^\d{10}$'
          example: "0000320193"
        - name: taxonomy
          in: path
          required: true
          description: XBRL taxonomy namespace
          schema:
            type: string
            enum: [us-gaap, ifrs-full, dei, srt]
          example: "us-gaap"
        - name: concept
          in: path
          required: true
          description: XBRL concept name (camelCase)
          schema:
            type: string
          example: "AccountsPayableCurrent"
      responses:
        '200':
          description: Historical values for the specified concept
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompanyConcept'
        '404':
          description: Company or concept not found

  /api/xbrl/frames/{taxonomy}/{concept}/{unit}/{period}.json:
    get:
      operationId: getXBRLFrames
      summary: Get all company values for a concept in a period
      description: >-
        Returns values for a given XBRL concept across all companies for a specific
        period. Useful for cross-company financial data comparisons and benchmarking.
      tags:
        - XBRL
      parameters:
        - name: taxonomy
          in: path
          required: true
          schema:
            type: string
            enum: [us-gaap, ifrs-full, dei, srt]
          example: "us-gaap"
        - name: concept
          in: path
          required: true
          schema:
            type: string
          example: "AccountsPayableCurrent"
        - name: unit
          in: path
          required: true
          description: Unit of measure (USD, shares, pure)
          schema:
            type: string
          example: "USD"
        - name: period
          in: path
          required: true
          description: >-
            Period identifier. For annual instant: CY{year}Q{quarter}I.
            For annual duration: CY{year}.
          schema:
            type: string
          example: "CY2023Q4I"
      responses:
        '200':
          description: Cross-company values for the concept
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/XBRLFrames'

  /LATEST/search-index:
    get:
      operationId: fullTextSearch
      summary: Full-text search across EDGAR filings
      description: >-
        Searches the full text of all EDGAR filings submitted since 2001.
        Supports keyword search, form type filtering, date ranges, and entity-based
        queries. Returns filing metadata and snippets.
      tags:
        - Full-Text Search
      servers:
        - url: https://efts.sec.gov
      parameters:
        - name: q
          in: query
          required: false
          description: Full-text search query (Elasticsearch query string syntax)
          schema:
            type: string
          example: "\"material weakness\" AND \"internal controls\""
        - name: dateRange
          in: query
          required: false
          description: Date range filter
          schema:
            type: string
            enum: [custom]
          example: "custom"
        - name: startdt
          in: query
          required: false
          schema:
            type: string
            format: date
          example: "2024-01-01"
        - name: enddt
          in: query
          required: false
          schema:
            type: string
            format: date
          example: "2025-12-31"
        - name: forms
          in: query
          required: false
          description: Comma-separated list of form types to filter
          schema:
            type: string
          example: "10-K,10-Q"
        - name: entity
          in: query
          required: false
          description: Company name search filter
          schema:
            type: string
          example: "Apple Inc"
        - name: _source
          in: query
          required: false
          description: Response fields to include
          schema:
            type: string
        - name: from
          in: query
          required: false
          description: Pagination offset
          schema:
            type: integer
            default: 0
        - name: hits.hits.total.value
          in: query
          required: false
          description: Maximum results to return
          schema:
            type: integer
            default: 10
            maximum: 10
      responses:
        '200':
          description: Full-text search results
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchResults'

components:
  schemas:
    CompanySubmissions:
      type: object
      description: Complete submission history for a company
      properties:
        cik:
          type: string
          description: Company CIK (without leading zeros as string)
        entityType:
          type: string
          example: "operating"
        sic:
          type: string
          description: Standard Industrial Classification code
          example: "7372"
        sicDescription:
          type: string
          example: "Prepackaged Software"
        name:
          type: string
          example: "Apple Inc."
        tickers:
          type: array
          items:
            type: string
          example: ["AAPL"]
        exchanges:
          type: array
          items:
            type: string
          example: ["Nasdaq"]
        ein:
          type: string
          description: Employer Identification Number
        description:
          type: string
        website:
          type: string
          format: uri
        investorWebsite:
          type: string
          format: uri
        category:
          type: string
        fiscalYearEnd:
          type: string
          description: Fiscal year end as MMDD
          example: "0930"
        stateOfIncorporation:
          type: string
        stateOfIncorporationDescription:
          type: string
        addresses:
          type: object
          properties:
            mailing:
              $ref: '#/components/schemas/CompanyAddress'
            business:
              $ref: '#/components/schemas/CompanyAddress'
        filings:
          type: object
          properties:
            recent:
              $ref: '#/components/schemas/FilingHistory'
            files:
              type: array
              description: References to additional paginated filing data files
              items:
                type: object
                properties:
                  name:
                    type: string
                  filingCount:
                    type: integer
                  filingFrom:
                    type: string
                    format: date
                  filingTo:
                    type: string
                    format: date

    CompanyAddress:
      type: object
      properties:
        street1:
          type: string
        street2:
          type: string
        city:
          type: string
        stateOrCountry:
          type: string
        zipCode:
          type: string
        stateOrCountryDescription:
          type: string

    FilingHistory:
      type: object
      description: Arrays of parallel filing metadata fields
      properties:
        accessionNumber:
          type: array
          items:
            type: string
          description: Filing accession numbers (XXXXXXXXXX-YY-ZZZZZZ format)
        filingDate:
          type: array
          items:
            type: string
            format: date
        reportDate:
          type: array
          items:
            type: string
            format: date
        acceptanceDateTime:
          type: array
          items:
            type: string
            format: date-time
        act:
          type: array
          items:
            type: string
        form:
          type: array
          items:
            type: string
          description: SEC form type (10-K, 10-Q, 8-K, etc.)
        fileNumber:
          type: array
          items:
            type: string
        filmNumber:
          type: array
          items:
            type: string
        items:
          type: array
          items:
            type: string
        size:
          type: array
          items:
            type: integer
          description: Filing size in bytes
        isXBRL:
          type: array
          items:
            type: integer
          description: 1 if XBRL tagged, 0 otherwise
        isInlineXBRL:
          type: array
          items:
            type: integer
        primaryDocument:
          type: array
          items:
            type: string
        primaryDocDescription:
          type: array
          items:
            type: string

    CompanyFacts:
      type: object
      properties:
        cik:
          type: integer
        entityName:
          type: string
        facts:
          type: object
          description: Nested object of taxonomy > concept > unit > data
          additionalProperties:
            type: object
            description: Taxonomy namespace (e.g., us-gaap, dei)
            additionalProperties:
              type: object
              description: XBRL concept
              properties:
                label:
                  type: string
                description:
                  type: string
                units:
                  type: object
                  additionalProperties:
                    type: array
                    items:
                      $ref: '#/components/schemas/XBRLFact'

    CompanyConcept:
      type: object
      properties:
        cik:
          type: integer
        taxonomy:
          type: string
        tag:
          type: string
        label:
          type: string
        description:
          type: string
        entityName:
          type: string
        units:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/XBRLFact'

    XBRLFact:
      type: object
      properties:
        end:
          type: string
          format: date
          description: Period end date for duration facts; instant date for point-in-time facts
        val:
          type: number
          description: Reported value
        accn:
          type: string
          description: Accession number of filing
        fy:
          type: integer
          description: Fiscal year
        fp:
          type: string
          description: Fiscal period (FY, Q1, Q2, Q3, Q4)
        form:
          type: string
          description: Form type
        filed:
          type: string
          format: date
        frame:
          type: string
          description: XBRL frame identifier
        start:
          type: string
          format: date
          description: Period start date (for duration facts)

    XBRLFrames:
      type: object
      properties:
        taxonomy:
          type: string
        tag:
          type: string
        ccp:
          type: string
          description: Concept-currency-period identifier
        uom:
          type: string
          description: Unit of measure
        label:
          type: string
        description:
          type: string
        pts:
          type: integer
          description: Number of data points
        data:
          type: array
          items:
            type: object
            properties:
              accn:
                type: string
              cik:
                type: integer
              entityName:
                type: string
              loc:
                type: string
                description: Country/state code
              end:
                type: string
                format: date
              val:
                type: number

    SearchResults:
      type: object
      properties:
        hits:
          type: object
          properties:
            total:
              type: object
              properties:
                value:
                  type: integer
                relation:
                  type: string
            hits:
              type: array
              items:
                $ref: '#/components/schemas/SearchHit'

    SearchHit:
      type: object
      properties:
        _id:
          type: string
        _score:
          type: number
        _source:
          type: object
          properties:
            period_of_report:
              type: string
            entity_name:
              type: string
            file_num:
              type: string
            biz_location:
              type: string
            inc_states:
              type: string
            form_type:
              type: string
            file_date:
              type: string
              format: date
            accession_no:
              type: string
            display_date_filed:
              type: string
        highlight:
          type: object
          additionalProperties:
            type: array
            items:
              type: string