> ## Documentation Index
> Fetch the complete documentation index at: https://docs.financialdatasets.rip/llms.txt
> Use this file to discover all available pages before exploring further.

# Available filing item types

> Returns the static SEC form-instruction item catalog get_filing_items reads `item` values from (go/providers/filingitems.go's Catalogs; CatalogScope: "Static SEC form-instruction catalog; no Monid upstream call or claim."). Covers only the three forms get_filing_items extracts from (10-K, 10-Q, 8-K) - 20-F and 6-K are valid get_filings filing_type values but have no item catalog here. Omitting filing_type returns all three keys; passing one narrows to that key. This is a fixed, hardcoded catalog, not a live query, so it never calls Monid and is served at zero cost.



## OpenAPI

````yaml /api-reference/openapi.json get /filings/items/types
openapi: 3.1.0
info:
  title: Monid Finance API
  version: 1.0.0
  summary: A Financial Datasets-compatible finance REST API backed by Monid providers.
  description: >-
    US equities fundamentals, prices, filings, news, insider trades, and a stock
    screener, generated faithfully from this repository's Go source
    (go/httpapi/rest.go, go/service, go/fd). This server is drop-in compatible
    with the Financial Datasets REST and MCP interface: the same route shapes,
    the same query parameters, and response objects whose field names and field
    order match the Financial Datasets contract, captured 2026-09-04. It is an
    independent, Monid-backed implementation; it is not affiliated with or
    endorsed by Financial Datasets, and no Financial Datasets data or outputs
    are used.


    **Bring your own Monid API key.** Every request carries the caller's own key
    in the `X-API-KEY` header. Usage bills that caller's own Monid wallet; this
    server never stores or logs the key. Get a key at https://monid.ai.


    **Coverage.** All 54 Financial Datasets REST paths are registered. all 54
    return data; most call live Monid providers, and a handful (the static
    catalogs and the accept-universe coverage lists; see each operation's
    description) never call Monid at all. Every registered path answers from a
    live source; there are no not_implemented stubs. /kpi/metrics/sectors
    returns the screener provider's own industry taxonomy and
    /index-funds/tickers the upstream fund universe, both scraped through Monid
    on demand. See docs/compatibility.md for every deliberate deviation and
    docs/openapi-notes.md for how this document was derived.


    **Errors and soft failures.** Every failure — real HTTP error and zero-cost
    soft failure alike — uses the two-key body `{"error": <code>, "message":
    <detail>}`. Some routes answer `not_found` with HTTP 200 rather than a 4xx
    status (see each operation's description).


    **Pagination.** List routes return a wrapped envelope (e.g.
    `{"income_statements": [...], "next_page_url": "..."}`) with opaque,
    server-minted base64url `cursor` tokens. Pages hold 10 records (100 for
    /prices). `next_page_url` is an absolute URL on this deployment's own host,
    present only when more records remain.


    **Ticker coverage lists are accept-universes, not data-coverage claims.**
    The eight `*/tickers` routes (e.g. /company/facts/tickers,
    /kpi/metrics/tickers) all answer from the same ~3,227-ticker US equity
    catalog: the tickers a route will ACCEPT as input, never a promise that
    every one of them has data for that particular dataset - this server has not
    measured per-dataset coverage. Their own `limit` (default 1000, max 5000)
    and `cursor` query parameters page through that shared universe
    independently of every other route's pagination convention above.
  contact:
    url: https://docs.financialdatasets.rip
  license:
    name: MIT
    identifier: MIT
servers:
  - url: https://financialdatasets.rip
    description: Production (Fly.io).
security:
  - ApiKeyAuth: []
tags:
  - name: Financial statements
    description: Income statements, balance sheets, cash flow statements.
  - name: Financial metrics
    description: Historical financial metrics and the live snapshot.
  - name: Earnings
    description: Earnings records composed from SEC filing events.
  - name: Filings
    description: SEC filing index and extracted filing sections.
  - name: Prices
    description: Historical OHLCV prices and the live price snapshot.
  - name: News
    description: Ticker-matched news.
  - name: Insider trades
    description: SEC Form 4 insider trading transactions.
  - name: Screener
    description: Stock screener and its executable filter catalog.
  - name: Company
    description: Company facts.
  - name: KPIs
    description: >-
      KPI-taxonomy metrics, forward guidance, and non-GAAP metrics extracted
      from SEC filings.
  - name: Macroeconomics
    description: Central bank policy interest rates.
  - name: Index funds
    description: ETF / index-fund holdings.
  - name: Institutional holdings
    description: SEC Form 13F institutional-holdings rows.
  - name: Ownership
    description: Insider, beneficial (13D/13G) and activist ownership state.
  - name: Not implemented
    description: >-
      Routes registered for Financial Datasets route parity; always a zero-cost
      not_implemented stub today.
paths:
  /filings/items/types:
    get:
      tags:
        - Filings
      summary: Available filing item types
      description: >-
        Returns the static SEC form-instruction item catalog get_filing_items
        reads `item` values from (go/providers/filingitems.go's Catalogs;
        CatalogScope: "Static SEC form-instruction catalog; no Monid upstream
        call or claim."). Covers only the three forms get_filing_items extracts
        from (10-K, 10-Q, 8-K) - 20-F and 6-K are valid get_filings filing_type
        values but have no item catalog here. Omitting filing_type returns all
        three keys; passing one narrows to that key. This is a fixed, hardcoded
        catalog, not a live query, so it never calls Monid and is served at zero
        cost.
      operationId: list_filing_item_types
      parameters:
        - name: filing_type
          in: query
          required: false
          schema:
            type: string
            enum:
              - 10-K
              - 10-Q
              - 8-K
          description: >-
            Narrow the catalog to one filing type. Omit to get all three.
            Case-insensitive; an unrecognized value answers 400 bad_request.
      responses:
        '200':
          description: >-
            Illustrative example, truncated for readability and not a captured
            API sample: each form's real catalog carries every item that form's
            SEC instructions define.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FilingItemTypesResponse'
              examples:
                example:
                  value:
                    10-K:
                      - name: Item-1
                        title: Business
                        description: Business
                      - name: Item-1A
                        title: Risk Factors
                        description: Risk Factors
                      - name: Item-7
                        title: >-
                          Management's Discussion and Analysis of Financial
                          Condition and Results of Operations
                        description: >-
                          Management's Discussion and Analysis of Financial
                          Condition and Results of Operations
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
components:
  schemas:
    FilingItemTypesResponse:
      type: object
      title: FilingItemTypesResponse
      description: >-
        Static SEC form-instruction item catalog for /filings/items/types
        (go/providers/filingitems.go's Catalogs; CatalogScope: "Static SEC
        form-instruction catalog; no Monid upstream call or claim."). Keyed by
        filing type ("10-K", "10-Q", "8-K" - the only three forms
        get_filing_items extracts from; 20-F/6-K are not covered here even
        though they are valid get_filings filing_type values). Omitting
        `filing_type` returns all three keys; passing one returns only that key.
        Makes no Monid call.
      additionalProperties:
        type: array
        items:
          $ref: '#/components/schemas/FilingItemTypeEntry'
    FilingItemTypeEntry:
      type: object
      title: FilingItemTypeEntry
      description: >-
        One row of a filing type's item catalog (go/providers/filingitems.go's
        FilingItemTypeEntry). description duplicates title: the static SEC
        form-instruction catalogs have no separate description field.
      properties:
        name:
          type: string
          description: >-
            Item identifier as get_filing_items' `item` query parameter expects,
            e.g. "Item-1", "Item-7" (go/providers/filingitems.go's
            TenKItems/TenQItems/EightKItems).
        title:
          type: string
          description: SEC form-instruction item title.
        description:
          type: string
          description: Duplicates title (see schema description).
      required:
        - name
        - title
        - description
    ErrorResponse:
      type: object
      title: ErrorResponse
      description: >-
        Uniform error/soft-failure body: {"error": <code>, "message": <detail>}.
        Used both for real HTTP error statuses and for 200 OK
        "not_found"/"not_implemented" soft failures that this API never bills
        for.
      properties:
        error:
          type: string
          description: >-
            Machine-readable error code, e.g. bad_request, unauthorized,
            payment_required, rate_limited, upstream_error,
            upstream_schema_changed, upstream_timeout, unsupported,
            invalid_cursor, not_found, not_implemented.
        message:
          type: string
          description: Human-readable detail.
      required:
        - error
        - message
  responses:
    BadRequest:
      description: >-
        400 Bad Request. Validation failed before any paid Monid call was made
        (bad_request), or the request is well-formed but names a capability this
        server deliberately rejects (unsupported), e.g. as_reported=true or a
        non-USD currency.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            bad_request:
              summary: Validation failure
              value:
                error: bad_request
                message: ticker must be 1-20 letters, digits, dots, or hyphens
            unsupported:
              summary: Deliberately rejected capability
              value:
                error: unsupported
                message: >-
                  as_reported is not supported by the Monid-backed server;
                  as_reported=True cannot be answered honestly.
            invalid_cursor:
              summary: Malformed pagination cursor
              value:
                error: invalid_cursor
                message: cursor is not a valid opaque pagination token
    Unauthorized:
      description: >-
        401 Unauthorized. The X-API-KEY header was missing, empty, or contained
        control characters, or (if the operator configured an allowlist) the key
        is not on it. This check runs before any Monid call.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            unauthorized:
              value:
                error: unauthorized
                message: Missing or invalid API key.
    TooManyRequests:
      description: >-
        429 Too Many Requests. Per-API-key token-bucket rate limit exceeded
        (default 60/min per key; 10/min for keyless demo traffic, where
        enabled).
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            rate_limited:
              value:
                error: rate_limited
                message: Rate limit exceeded. Retry shortly.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-KEY
      description: >-
        The caller's own Monid API key (get one at
        https://monid.ai?fpr=dhruv-15136b). Passed straight through to Monid on
        every call, so usage bills the caller's own wallet — this is never a
        shared server-side credential, and the server never logs or stores it.
        Missing, empty, or malformed values answer 401 unauthorized before any
        paid call is attempted.

````