sec-edgar XBRL API

Structured XBRL financial data

OpenAPI Specification

sec-edgar-xbrl-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: SEC EDGAR Submissions & Company Facts 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: XBRL
  description: Structured XBRL financial data
paths:
  /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:
      - 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'
components:
  schemas:
    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