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

# Ownership Dataset

> Positions that US institutional investment managers report on SEC Form 13F at a quarter end: who holds a company's securities, or what a manager holds. Each position is a manager's shares (or principal amount) and market value in one security, summed over its 13F lines, with the filings it was read from in `sources`.

    Filter by the security (`companyIds`, `companyTickers` or `cusips`), by the manager (`holderCompanyIds` or `holderCiks`), or both. Without `periodEnd`, positions are for the latest quarter end whose 13F filing deadline (45 days) has passed. Positions are current values; with `asOf`, they are what had been published by that time (a filing counts from the end of its filing date in New York). Results are largest market value first; page through them with `pageToken`. If the holdings change while you page (a new or corrected filing is published), the next page returns `409`: start again without `pageToken`, so you never mix two versions of the data.

    Option positions (puts and calls) are left out unless `include=options`; their underlying shares never add to `shares`. 13F reports long positions only, with no shares outstanding, so positions carry no percentage of a company.



## OpenAPI

````yaml GET /api/v2/datasets/ownership/holdings
openapi: 3.1.0
info:
  title: Captide REST API
  description: >-
    API for accessing financial disclosures and AI-powered financial document
    analysis.
  version: 0.3.14
servers:
  - url: https://rest-api.captide.co
    description: Prod server
security: []
paths:
  /api/v2/datasets/ownership/holdings:
    get:
      tags:
        - Datasets
      summary: List 13F holdings
      description: >-
        Positions that US institutional investment managers report on SEC Form
        13F at a quarter end: who holds a company's securities, or what a
        manager holds. Each position is a manager's shares (or principal amount)
        and market value in one security, summed over its 13F lines, with the
        filings it was read from in `sources`.

            Filter by the security (`companyIds`, `companyTickers` or `cusips`), by the manager (`holderCompanyIds` or `holderCiks`), or both. Without `periodEnd`, positions are for the latest quarter end whose 13F filing deadline (45 days) has passed. Positions are current values; with `asOf`, they are what had been published by that time (a filing counts from the end of its filing date in New York). Results are largest market value first; page through them with `pageToken`. If the holdings change while you page (a new or corrected filing is published), the next page returns `409`: start again without `pageToken`, so you never mix two versions of the data.

            Option positions (puts and calls) are left out unless `include=options`; their underlying shares never add to `shares`. 13F reports long positions only, with no shares outstanding, so positions carry no percentage of a company.
      operationId: list_ownership_holdings_api_v2_datasets_ownership_holdings_get
      parameters:
        - name: companyIds
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              Comma-separated Captide company IDs of the issuers held: who holds
              these companies
            examples:
              - 91f6c6da-478f-4161-b451-aa5177cc7fb9
            title: Companyids
          description: >-
            Comma-separated Captide company IDs of the issuers held: who holds
            these companies
        - name: companyTickers
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              Comma-separated tickers of the issuers held, as in
              `/companies/list`
            examples:
              - AAPL
            title: Companytickers
          description: Comma-separated tickers of the issuers held, as in `/companies/list`
        - name: cusips
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: Comma-separated CUSIPs of the securities held
            examples:
              - '037833100'
            title: Cusips
          description: Comma-separated CUSIPs of the securities held
        - name: holderCompanyIds
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              Comma-separated Captide company IDs of the managers: what these
              managers hold
            examples:
              - 58703e09-9c45-4fde-92a1-ab22a06f28d7
            title: Holdercompanyids
          description: >-
            Comma-separated Captide company IDs of the managers: what these
            managers hold
        - name: holderCiks
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: Comma-separated SEC CIKs of the managers (leading zeros optional)
            examples:
              - '1067983'
            title: Holderciks
          description: Comma-separated SEC CIKs of the managers (leading zeros optional)
        - name: periodEnd
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date
              - type: 'null'
            description: >-
              Quarter end (e.g. `2026-06-30`). Default: the latest quarter end
              whose filing deadline has passed
            examples:
              - '2026-06-30'
            title: Periodend
          description: >-
            Quarter end (e.g. `2026-06-30`). Default: the latest quarter end
            whose filing deadline has passed
        - name: asOf
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date-time
              - type: 'null'
            description: >-
              Point in time (ISO 8601): positions as published by then. Default:
              current
            examples:
              - '2026-08-31T00:00:00Z'
            title: Asof
          description: >-
            Point in time (ISO 8601): positions as published by then. Default:
            current
        - name: include
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: '`options` to add put and call positions'
            examples:
              - options
            title: Include
          description: '`options` to add put and call positions'
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            maximum: 100
            minimum: 1
            description: Positions per page (up to 100)
            examples:
              - 50
            default: 50
            title: Limit
          description: Positions per page (up to 100)
        - name: pageToken
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: '`nextPageToken` from the previous page; omit for the first page'
            title: Pagetoken
          description: '`nextPageToken` from the previous page; omit for the first page'
      responses:
        '200':
          description: Positions, largest market value first
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OwnershipHoldingsResponse'
              example:
                periodEnd: '2026-06-30'
                items:
                  - holder:
                      companyId: 58703e09-9c45-4fde-92a1-ab22a06f28d7
                      name: Berkshire Hathaway Inc.
                      cik: '1067983'
                    security:
                      cusip: '037833100'
                      issuerName: APPLE INC
                      titleOfClass: COM
                      companyId: 91f6c6da-478f-4161-b451-aa5177cc7fb9
                      ticker: AAPL
                    periodEnd: '2026-06-30'
                    shares: 227917808
                    marketValue: 65950296923
                    votingAuthority:
                      sole: 227917808
                      shared: 0
                      none: 0
                    publishedAt: '2026-08-15T04:00:00Z'
                    sources:
                      - documentId: 31932647-dea0-4c89-8fc1-3c3c5aec89d2
                        accessionNumber: 0001193125-26-352200
                        lineNumber: 15
                        pageNumber: 3
                        excerpt: 037833100 200,237,120 692,000 SH DFND 4 692,000 0 0
                      - documentId: 31932647-dea0-4c89-8fc1-3c3c5aec89d2
                        accessionNumber: 0001193125-26-352200
                        lineNumber: 16
                        pageNumber: 3
                        excerpt: >-
                          037833100 1,111,142,400 3,840,000 SH DFND 1,2,4,11
                          3,840,000 0 0
                      - documentId: 31932647-dea0-4c89-8fc1-3c3c5aec89d2
                        accessionNumber: 0001193125-26-352200
                        lineNumber: 17
                        pageNumber: 3
                        excerpt: 037833100 9,838,240 34,000 SH DFND 2,4,11 34,000 0 0
                      - documentId: 31932647-dea0-4c89-8fc1-3c3c5aec89d2
                        accessionNumber: 0001193125-26-352200
                        lineNumber: 18
                        pageNumber: 3
                        excerpt: >-
                          037833100 10,047,736,640 34,724,000 SH DFND 4,5
                          34,724,000 0 0
                      - documentId: 31932647-dea0-4c89-8fc1-3c3c5aec89d2
                        accessionNumber: 0001193125-26-352200
                        lineNumber: 19
                        pageNumber: 3
                        excerpt: >-
                          037833100 788,216,640 2,724,000 SH DFND 4,6 2,724,000
                          0 0
                      - documentId: 31932647-dea0-4c89-8fc1-3c3c5aec89d2
                        accessionNumber: 0001193125-26-352200
                        lineNumber: 20
                        pageNumber: 3
                        excerpt: >-
                          037833100 4,494,339,520 15,532,000 SH DFND 4,7
                          15,532,000 0 0
                      - documentId: 31932647-dea0-4c89-8fc1-3c3c5aec89d2
                        accessionNumber: 0001193125-26-352200
                        lineNumber: 21
                        pageNumber: 3
                        excerpt: >-
                          037833100 17,808,079,008 61,542,988 SH DFND 4,8,11
                          61,542,988 0 0
                      - documentId: 31932647-dea0-4c89-8fc1-3c3c5aec89d2
                        accessionNumber: 0001193125-26-352200
                        lineNumber: 22
                        pageNumber: 3
                        excerpt: >-
                          037833100 2,084,549,440 7,204,000 SH DFND 4,5,9
                          7,204,000 0 0
                      - documentId: 31932647-dea0-4c89-8fc1-3c3c5aec89d2
                        accessionNumber: 0001193125-26-352200
                        lineNumber: 23
                        pageNumber: 3
                        excerpt: >-
                          037833100 4,187,617,920 14,472,000 SH DFND 4,10
                          14,472,000 0 0
                      - documentId: 31932647-dea0-4c89-8fc1-3c3c5aec89d2
                        accessionNumber: 0001193125-26-352200
                        lineNumber: 24
                        pageNumber: 3
                        excerpt: >-
                          037833100 23,341,172,315 80,664,820 SH DFND 4,11
                          80,664,820 0 0
                      - documentId: 31932647-dea0-4c89-8fc1-3c3c5aec89d2
                        accessionNumber: 0001193125-26-352200
                        lineNumber: 25
                        pageNumber: 3
                        excerpt: >-
                          037833100 784,744,320 2,712,000 SH DFND 4,12 2,712,000
                          0 0
                      - documentId: 31932647-dea0-4c89-8fc1-3c3c5aec89d2
                        accessionNumber: 0001193125-26-352200
                        lineNumber: 26
                        pageNumber: 3
                        excerpt: >-
                          037833100 1,092,623,360 3,776,000 SH DFND 4,14
                          3,776,000 0 0
                nextPageToken: >-
                  WyIyMDI2LTA2LTMwIixudWxsLDE4NDEsIjY1OTUwMjk2OTIzLjAwIiwiMTA2Nzk4MyIsIjAzNzgzMzEwMCIsIiJd
        '400':
          description: Invalid request parameters
          content:
            application/json:
              examples:
                missing_filter:
                  summary: >-
                    Filter by the security (companyIds, companyTickers or
                    cusips) or the manager (holderCompanyIds or holderCiks)
                  value:
                    detail: >-
                      Filter by the security (companyIds, companyTickers or
                      cusips) or the manager (holderCompanyIds or holderCiks)
                invalid_period:
                  summary: periodEnd must be a quarter end (e.g. 2026-06-30)
                  value:
                    detail: periodEnd must be a quarter end (e.g. 2026-06-30)
                invalid_company_id:
                  summary: 'Invalid companyIds: each value must be a UUID'
                  value:
                    detail: 'Invalid companyIds: each value must be a UUID'
                invalid_page_token:
                  summary: Invalid pageToken
                  value:
                    detail: Invalid pageToken
                page_token_mismatch:
                  summary: pageToken belongs to a read with another periodEnd or asOf
                  value:
                    detail: pageToken belongs to a read with another periodEnd or asOf
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Missing or invalid API key
          content:
            application/json:
              examples:
                missing_key:
                  summary: Missing API key
                  value:
                    detail: Missing API key
                invalid_key:
                  summary: Invalid or expired API key
                  value:
                    detail: Invalid or expired API key
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Your organization doesn't have access to this endpoint
          content:
            application/json:
              examples:
                forbidden:
                  summary: Access to this endpoint is not allowed for your organization
                  value:
                    detail: >-
                      Access to this endpoint is not allowed for your
                      organization
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '409':
          description: The holdings changed since the first page
          content:
            application/json:
              examples:
                stale_page_token:
                  summary: >-
                    The holdings changed while you were paging (a new or
                    corrected filing was published). Start again without
                    pageToken.
                  value:
                    detail: >-
                      The holdings changed while you were paging (a new or
                      corrected filing was published). Start again without
                      pageToken.
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: >-
            Validation error: a parameter or body field is missing, has the
            wrong type or is out of range
          content:
            application/json:
              example:
                detail:
                  - type: less_than_equal
                    loc:
                      - query
                      - limit
                    msg: Input should be less than or equal to 1000
                    input: '5000'
                    ctx:
                      le: 1000
              schema:
                $ref: '#/components/schemas/ValidationErrorResponse'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              examples:
                rate_limited:
                  summary: 'Rate limit exceeded: 100 requests per minute'
                  value:
                    detail: 'Rate limit exceeded: 100 requests per minute'
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              examples:
                database_error:
                  summary: Database error occurred
                  value:
                    detail: Database error occurred
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: The holdings were updated twice while this page was read
          content:
            application/json:
              examples:
                updating:
                  summary: The holdings are being updated; try again in a few seconds
                  value:
                    detail: The holdings are being updated; try again in a few seconds
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - APIKeyHeader: []
components:
  schemas:
    OwnershipHoldingsResponse:
      properties:
        periodEnd:
          type: string
          format: date
          title: Periodend
          description: The quarter end of the positions
        asOf:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Asof
          description: >-
            The point in time read, when you passed `asOf`; null for current
            values
        items:
          items:
            $ref: '#/components/schemas/OwnershipPosition'
          type: array
          title: Items
          description: Positions, largest market value first
        nextPageToken:
          anyOf:
            - type: string
            - type: 'null'
          title: Nextpagetoken
          description: Pass as `pageToken` for the next page; null on the last page
      type: object
      required:
        - periodEnd
        - items
      title: OwnershipHoldingsResponse
      description: A page of 13F positions.
    ErrorResponse:
      properties:
        detail:
          type: string
          title: Detail
      type: object
      required:
        - detail
      title: ErrorResponse
      description: Standard error response model for all API endpoints.
    ValidationErrorResponse:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationErrorItem'
          type: array
          title: Detail
      type: object
      required:
        - detail
      title: ValidationErrorResponse
      description: '422 body: every invalid field of the request.'
    OwnershipPosition:
      properties:
        holder:
          $ref: '#/components/schemas/OwnershipHolder'
        security:
          $ref: '#/components/schemas/OwnershipSecurity'
        periodEnd:
          type: string
          format: date
          title: Periodend
          description: The quarter end the position is reported at
        putCall:
          anyOf:
            - type: string
            - type: 'null'
          title: Putcall
          description: '`Put` or `Call` for an option position; null for the long position'
        shares:
          anyOf:
            - type: number
            - type: 'null'
          title: Shares
          description: Shares held (long position)
        principalAmount:
          anyOf:
            - type: number
            - type: 'null'
          title: Principalamount
          description: Face value of debt held, in US dollars
        marketValue:
          anyOf:
            - type: number
            - type: 'null'
          title: Marketvalue
          description: >-
            Market value in US dollars. For an option position, the market value
            of the underlying securities, as Form 13F reports it, not the value
            of the options
        optionUnderlyingShares:
          anyOf:
            - type: number
            - type: 'null'
          title: Optionunderlyingshares
          description: >-
            For an option position: shares underlying the options. Never part of
            `shares`
        optionUnderlyingPrincipalAmount:
          anyOf:
            - type: number
            - type: 'null'
          title: Optionunderlyingprincipalamount
          description: >-
            For an option position on debt: principal amount underlying the
            options
        votingAuthority:
          $ref: '#/components/schemas/VotingAuthority'
          description: Voting authority, in shares
        publishedAt:
          type: string
          format: date-time
          title: Publishedat
          description: >-
            When the latest filing behind the position was public (end of its
            filing date, New York time)
        sources:
          items:
            $ref: '#/components/schemas/HoldingSource'
          type: array
          title: Sources
          description: >-
            The 13F lines the position sums, each with the filing it was read
            from. Usually one filing; a NEW HOLDINGS amendment adds lines from a
            second
      type: object
      required:
        - holder
        - security
        - periodEnd
        - votingAuthority
        - publishedAt
        - sources
      title: OwnershipPosition
      description: >-
        A manager's position in a security at a quarter end, summed over its 13F
        lines.
    ValidationErrorItem:
      properties:
        type:
          type: string
          title: Type
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Loc
        msg:
          type: string
          title: Msg
        input:
          anyOf:
            - {}
            - type: 'null'
          title: Input
        ctx:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Ctx
      type: object
      required:
        - type
        - loc
        - msg
      title: ValidationErrorItem
      description: One invalid field, as FastAPI reports it.
    OwnershipHolder:
      properties:
        companyId:
          anyOf:
            - type: string
            - type: 'null'
          title: Companyid
          description: >-
            The manager's Captide company ID, as used by `GET
            /api/v2/companies/{id}`
        name:
          type: string
          title: Name
          description: The manager's name
        cik:
          type: string
          title: Cik
          description: The manager's SEC Central Index Key, without leading zeros
      type: object
      required:
        - name
        - cik
      title: OwnershipHolder
    OwnershipSecurity:
      properties:
        cusip:
          type: string
          title: Cusip
          description: CUSIP as the manager filed it
        issuerName:
          anyOf:
            - type: string
            - type: 'null'
          title: Issuername
          description: Issuer name as the manager filed it
        titleOfClass:
          anyOf:
            - type: string
            - type: 'null'
          title: Titleofclass
          description: Class of the security as filed (e.g. `COM`)
        companyId:
          anyOf:
            - type: string
            - type: 'null'
          title: Companyid
          description: >-
            The issuer's Captide company ID, when the CUSIP maps to one company;
            null for funds, unlisted securities and CUSIPs that aren't valid as
            filed
        ticker:
          anyOf:
            - type: string
            - type: 'null'
          title: Ticker
          description: The issuer's ticker whose ISIN carries this CUSIP, when there is one
      type: object
      required:
        - cusip
      title: OwnershipSecurity
    VotingAuthority:
      properties:
        sole:
          anyOf:
            - type: number
            - type: 'null'
          title: Sole
          description: Shares over which the manager has sole voting authority
        shared:
          anyOf:
            - type: number
            - type: 'null'
          title: Shared
          description: Shares with shared voting authority
        none:
          anyOf:
            - type: number
            - type: 'null'
          title: None
          description: Shares with no voting authority
      type: object
      title: VotingAuthority
    HoldingSource:
      properties:
        documentId:
          type: string
          title: Documentid
          description: >-
            The 13F filing the line was read from, as used by `GET
            /api/v2/documents/{id}`
        accessionNumber:
          type: string
          title: Accessionnumber
          description: The filing's SEC accession number
        lineNumber:
          type: integer
          title: Linenumber
          description: The line's position in the filing's information table
        pageNumber:
          anyOf:
            - type: integer
            - type: 'null'
          title: Pagenumber
          description: >-
            The page of the filing's PDF the line is on; null when the line
            couldn't be located
        excerpt:
          anyOf:
            - type: string
            - type: 'null'
          title: Excerpt
          description: The line as it appears on the page, to highlight it
      type: object
      required:
        - documentId
        - accessionNumber
        - lineNumber
      title: HoldingSource
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      in: header
      name: X-API-Key

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.