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

# SEC Form 13F institutional holders for a stock or the portfolio of one manager.

> Get institutional ownership from SEC Form 13F filings in either of two modes.
In ticker mode, pass a symbol to list the institutional managers that hold that
security, ranked by reported value across the scanned filing window.
In investor mode, pass a manager’s SEC CIK to list the positions in that manager’s
latest filing, ranked by value.
Each row carries the filer, the period and filing dates, the security and its CUSIP,
shares and reported value, voting authority, and whether the row is from a stale
(superseded) filing.



## OpenAPI

````yaml /api-reference/openapi-mintlify.json post /api/v1/ownership/institutional-holdings
openapi: 3.0.3
info:
  title: Finterm API
  version: 1.0.0
  description: >-
    The Finterm financial-data API. Every response is the two-key envelope:
    `finterm` (the meta header) and `data` (the published result contract), or
    `finterm` + `error` on failure.


    ## Error registry


    | Code | HTTP | Description | Message |

    | --- | --- | --- | --- |

    | `INVALID_REQUEST` | 400 | The request body failed schema validation, or
    the tool rejected the parameters as invalid or incomplete. | The request
    parameters are invalid or incomplete. |

    | `INVALID_JSON` | 400 | The request body was not valid JSON. | The request
    body was not valid JSON. |

    | `TOKEN_INVALID` | 401 | The bearer token is missing, expired, or not
    recognized. | The API key is missing, expired, or not recognized. |

    | `SUBSCRIPTION_REQUIRED` | 402 | An active Finterm Pro subscription is
    required. The envelope carries the machine-readable error.upgrade_url; after
    checkout there, retrying succeeds automatically. | An active Finterm Pro
    subscription is required. |

    | `RATE_LIMITED` | 429 | The caller has exceeded the request rate limit;
    retry later. | Too many requests; retry later. |

    | `RUNTIME_UNAVAILABLE` | 503 | The tool runtime is not available for this
    deployment. | The service is temporarily unavailable; retry later. |

    | `RUNTIME_QUEUE_FULL` | 429 | The tool runtime queue is full; retry later.
    | The service is busy; retry later. |

    | `RUNTIME_TOOL_UNAVAILABLE` | 501 | The tool is routed but not yet
    runnable. | This tool is not yet available. |

    | `RUNTIME_RUN_FAILED` | 502 | The tool runtime reported the run as a
    non-success terminal state. | The run did not complete successfully. |

    | `RUNTIME_CONTRACT_MISMATCH` | 502 | The tool runtime returned a result
    that did not match the published contract. | The service returned an
    unexpected result shape. |

    | `TOOL_EXECUTION_FAILED` | 502 | The tool executed but reported an upstream
    failure. | The tool ran but could not complete the request. |

    | `UPSTREAM_AUTH` | 502 | A data source rejected the service’s own
    credentials. A service-side configuration fault, not a caller authentication
    problem. | A data source could not be accessed due to a service
    configuration issue. |

    | `UPSTREAM_QUOTA` | 503 | A data source is over its service-side usage
    limit; retry later. | A data source is temporarily over capacity; retry
    later. |

    | `UPSTREAM_UNAVAILABLE` | 502 | A data source failed, timed out, or
    returned an unusable response; retry later. | A data source is temporarily
    unavailable; retry later. |

    | `BUNDLE_NOT_FOUND` | 404 | No bundle exists with the requested name. | No
    bundle exists with the requested name. |

    | `RUN_NOT_FOUND` | 404 | No run exists with the requested id for this
    caller. | No run exists with the requested id. |

    | `MANIFEST_NOT_READY` | 409 | The run has not completed, so the sync
    manifest is not yet available. | The run has not completed yet. |
servers:
  - url: https://api.finterm.ai
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Point Tools
    description: Single-purpose data tools (one request, one synchronous result).
  - name: Bundle Tools
    description: Composed multi-section tools served via the run lifecycle.
  - name: Account
    description: The authenticated account/entitlement read (works without Pro).
  - name: Feedback
    description: Submit bugs, questions, and feature requests (works without Pro).
paths:
  /api/v1/ownership/institutional-holdings:
    post:
      tags:
        - Point Tools
      summary: >-
        SEC Form 13F institutional holders for a stock or the portfolio of one
        manager.
      description: >-
        Get institutional ownership from SEC Form 13F filings in either of two
        modes.

        In ticker mode, pass a symbol to list the institutional managers that
        hold that

        security, ranked by reported value across the scanned filing window.

        In investor mode, pass a manager’s SEC CIK to list the positions in that
        manager’s

        latest filing, ranked by value.

        Each row carries the filer, the period and filing dates, the security
        and its CUSIP,

        shares and reported value, voting authority, and whether the row is from
        a stale

        (superseded) filing.
      operationId: institutionalHoldings
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                ticker:
                  description: Ticker holder mode
                  type: string
                investor_cik:
                  description: Investor portfolio mode SEC CIK
                  type: string
                as_of_date:
                  type: string
                  pattern: ^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$
                  description: Filing-date cutoff in YYYY-MM-DD format
                limit:
                  description: Maximum rows to return
                  type: integer
                  minimum: 1
                  maximum: 100
              additionalProperties: false
      responses:
        '200':
          description: Success.
          content:
            application/json:
              schema:
                type: object
                description: The two-key success envelope.
                properties:
                  finterm:
                    $ref: '#/components/schemas/FintermMeta'
                  data:
                    $ref: '#/components/schemas/InstitutionalHoldings'
                required:
                  - finterm
                  - data
        '400':
          description: Error (INVALID_REQUEST, INVALID_JSON).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
        '401':
          description: Error (TOKEN_INVALID).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
        '402':
          description: Error (SUBSCRIPTION_REQUIRED).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
        '404':
          description: Error (BUNDLE_NOT_FOUND, RUN_NOT_FOUND).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
        '409':
          description: Error (MANIFEST_NOT_READY).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
        '429':
          description: Error (RATE_LIMITED, RUNTIME_QUEUE_FULL).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
        '501':
          description: Error (RUNTIME_TOOL_UNAVAILABLE).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
        '502':
          description: >-
            Error (RUNTIME_RUN_FAILED, RUNTIME_CONTRACT_MISMATCH,
            TOOL_EXECUTION_FAILED, UPSTREAM_AUTH, UPSTREAM_UNAVAILABLE).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
        '503':
          description: Error (RUNTIME_UNAVAILABLE, UPSTREAM_QUOTA).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
      x-codeSamples:
        - lang: bash
          label: Institutional holders of one symbol.
          source: finterm tool institutional_holdings AAPL --as-of-date 2024-03-15
components:
  schemas:
    FintermMeta:
      type: object
      description: Canonical result meta header.
      properties:
        schema:
          type: string
          description: The published result contract id.
        tool:
          type: string
          description: The snake_case tool id.
        args:
          type: object
          additionalProperties: true
          description: The arguments the caller requested.
        request_id:
          type: string
          description: Server-set, ephemeral request id.
        cursor:
          type: string
          description: Opaque pagination cursor (feed tools only).
      required:
        - schema
        - tool
        - args
    InstitutionalHoldings:
      type: object
      properties:
        ticker:
          type: string
        investor_cik:
          type: string
        as_of_date:
          type: string
        latest_period:
          nullable: true
          type: string
        holders:
          type: array
          items:
            type: object
            properties:
              filer_name:
                type: string
              filer_cik:
                type: string
              period_of_report:
                type: string
              filed_at:
                type: string
              form_type:
                type: string
              accession_number:
                type: string
              name_of_issuer:
                type: string
              cusip:
                type: string
              ticker:
                nullable: true
                type: string
              title_of_class:
                type: string
              put_call:
                nullable: true
                type: string
                enum:
                  - put
                  - call
              shares:
                type: number
              shares_type:
                type: string
              value_usd:
                type: number
              investment_discretion:
                nullable: true
                type: string
              voting_authority_sole:
                nullable: true
                type: number
              voting_authority_shared:
                nullable: true
                type: number
              voting_authority_none:
                nullable: true
                type: number
              is_stale:
                type: boolean
              filing_url:
                nullable: true
                type: string
            required:
              - filer_name
              - filer_cik
              - period_of_report
              - filed_at
              - form_type
              - accession_number
              - name_of_issuer
              - cusip
              - ticker
              - title_of_class
              - put_call
              - shares
              - shares_type
              - value_usd
              - investment_discretion
              - voting_authority_sole
              - voting_authority_shared
              - voting_authority_none
              - is_stale
              - filing_url
            additionalProperties: false
        positions:
          type: array
          items:
            type: object
            properties:
              filer_name:
                type: string
              filer_cik:
                type: string
              period_of_report:
                type: string
              filed_at:
                type: string
              form_type:
                type: string
              accession_number:
                type: string
              name_of_issuer:
                type: string
              cusip:
                type: string
              ticker:
                nullable: true
                type: string
              title_of_class:
                type: string
              put_call:
                nullable: true
                type: string
                enum:
                  - put
                  - call
              shares:
                type: number
              shares_type:
                type: string
              value_usd:
                type: number
              investment_discretion:
                nullable: true
                type: string
              voting_authority_sole:
                nullable: true
                type: number
              voting_authority_shared:
                nullable: true
                type: number
              voting_authority_none:
                nullable: true
                type: number
              is_stale:
                type: boolean
              filing_url:
                nullable: true
                type: string
            required:
              - filer_name
              - filer_cik
              - period_of_report
              - filed_at
              - form_type
              - accession_number
              - name_of_issuer
              - cusip
              - ticker
              - title_of_class
              - put_call
              - shares
              - shares_type
              - value_usd
              - investment_discretion
              - voting_authority_sole
              - voting_authority_shared
              - voting_authority_none
              - is_stale
              - filing_url
            additionalProperties: false
        scanned_filings:
          type: number
        scanned_filed_range:
          type: object
          properties:
            earliest:
              type: string
            latest:
              type: string
          required:
            - earliest
            - latest
          additionalProperties: false
        truncated:
          type: boolean
      required:
        - as_of_date
        - latest_period
        - truncated
      additionalProperties: false
    ErrorEnvelope:
      type: object
      description: The two-key error envelope.
      properties:
        finterm:
          $ref: '#/components/schemas/FintermMeta'
        error:
          type: object
          properties:
            code:
              type: string
              description: Stable public error code.
            message:
              type: string
              description: Human-readable, external-clean message.
            upgrade_url:
              type: string
              description: >-
                Machine-readable upgrade URL, present only on
                SUBSCRIPTION_REQUIRED (402): complete checkout there, then
                retry; access activates automatically.
          required:
            - code
            - message
      required:
        - finterm
        - error
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: A live account API key from `FINTERM_API_KEY`.

````