Paper and Beyond Holdings API

The holdings API from Paper and Beyond — 1 operation(s) for holdings.

Business capability
Market & Financial Data AE-230.20

Operations 1

GET /v1/holdings/{identifier} 13F institutional holdings + quarter-over-quarter changes #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/edgrapi:edgrapi-holdings-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

edgrapi-holdings-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Edgrapi — US Government Data Holdings API
  description: Official US government data as clean JSON on one API key. SEC EDGAR filings (insider Form 4 trades, 8-K events, 13F fund holdings, 13D/13G activist stakes, financial statements and ratios), SAM.gov federal contract opportunities, USAspending awards, Grants.gov grant opportunities, and US House Congress stock trades. Hosted MCP server plus REST, with real-time webhooks when a watched company files. One key, one normalized schema.
  contact:
    name: Edgrapi
    url: https://edgrapi.com/
  license:
    name: Proprietary
  version: 1.0.0
tags:
- name: Holdings
paths:
  /v1/holdings/{identifier}:
    get:
      tags:
      - Holdings
      summary: 13F institutional holdings + quarter-over-quarter changes
      description: 'A fund''s latest 13F portfolio, parsed from the SEC information table, ranked by

        value, and diffed against the prior quarter so every position is labelled new,

        added, reduced or unchanged — with the exits listed separately.


        Positions are aggregated by CUSIP (funds split one holding across sub-managers, so

        the raw table double-counts). Options carry a `put_call` flag: a PUT is a bearish

        bet, not a long, and reporting it as a holding is the classic 13F mistake. Value is

        whole dollars. Each position also carries a best-effort `ticker` resolved from its

        CUSIP; the issuer name and CUSIP stay authoritative, and `ticker` is null when the

        CUSIP has no US equity listing (a bond, a foreign issue) or isn''t resolved yet.


        Identify the fund by a known name (berkshire, burry, ackman, bridgewater, citadel,

        …), a raw CIK, or a ticker when the manager is itself public (BRK-B). 13F is a

        quarterly snapshot filed up to 45 days after quarter-end — it is a lagged position

        report, not a live trade feed.'
      operationId: institutional_holdings_v1_holdings__identifier__get
      parameters:
      - name: identifier
        in: path
        required: true
        schema:
          type: string
          description: Fund name (e.g. 'berkshire', 'burry', 'pershing-square'), a CIK, or a ticker whose company is the filer (e.g. BRK-B)
          title: Identifier
        description: Fund name (e.g. 'berkshire', 'burry', 'pershing-square'), a CIK, or a ticker whose company is the filer (e.g. BRK-B)
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 500
          minimum: 1
          description: Max positions returned
          default: 50
          title: Limit
        description: Max positions returned
      - name: changes
        in: query
        required: false
        schema:
          type: boolean
          description: Diff against the prior quarter (new/added/reduced/exited)
          default: true
          title: Changes
        description: Diff against the prior quarter (new/added/reduced/exited)
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError