{
  "openapi": "3.0.1",
  "info": {
    "title": "SEC 13F Institutional Holdings by Fund or Stock from EDGAR",
    "description": "Quarterly positions from SEC Form 13F-HR filings, one row per holding: issuer, CUSIP, share class, shares, value in USD, share of the manager's portfolio, put/call, voting authority and discretion. Ask by manager name or CIK, or by stock to get every filer holding it. UTC dates.",
    "version": "0.1",
    "x-build-id": "wKg5eJC4o7pYe2zT5"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/yadroo~sec-13f-fund-holdings/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-yadroo-sec-13f-fund-holdings",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/yadroo~sec-13f-fund-holdings/runs": {
      "post": {
        "operationId": "runs-sync-yadroo-sec-13f-fund-holdings",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/yadroo~sec-13f-fund-holdings/run-sync": {
      "post": {
        "operationId": "run-sync-yadroo-sec-13f-fund-holdings",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "mode": {
            "title": "What to look up",
            "enum": [
              "fund",
              "issuer"
            ],
            "type": "string",
            "description": "Two different questions, one per run. `fund` starts from a list of institutional managers and returns the positions each of them reported on its information table for the quarter. `issuer` starts from one security and returns every manager that reported it, so you see the holder side of the same data. Everything else below says which quarter, which positions to keep and how much detail to add.",
            "default": "fund"
          },
          "funds": {
            "title": "Managers (names or CIK numbers)",
            "type": "array",
            "description": "Used by `fund` mode: either a CIK (`0001067983`, or `1067983` - leading zeros are added for you) or the manager name as EDGAR spells it (`Berkshire Hathaway Inc`). Names are matched loosely: case, extra spaces, punctuation and legal suffixes are ignored. A name that fits several filers stops the run and lists the candidates with their CIKs instead of picking one. A manager with no 13F filing for the quarter gets one row with `found: false` and a reason.",
            "items": {
              "type": "string"
            }
          },
          "issuer": {
            "title": "Security (CUSIP or issuer name)",
            "type": "string",
            "description": "Used by `issuer` mode: a 9-character CUSIP is the exact way to ask (`037833100` = Apple common stock, `67066G104` = NVIDIA), because managers key their tables by CUSIP. An issuer name is matched as a phrase against the filed `nameOfIssuer` column instead (`NVIDIA CORP`) - useful without a CUSIP, but spellings differ between managers. Tickers are not in a 13F table and are refused with that explanation."
          },
          "quarter": {
            "title": "Quarter",
            "type": "string",
            "description": "Which quarter end to report, written any of these ways: `2026Q2`, `2026-Q2`, `Q2 2026`, `2026-06-30`. `latest` or an empty value means the most recent quarter whose 45-day filing deadline has already passed, which is what most managers have on file today. Information tables are XML from the second quarter of 2013 onwards; an earlier quarter is refused with a clear message because those filings carry a plain-text table this actor does not parse."
          },
          "issuerFilter": {
            "title": "Keep only these securities",
            "type": "array",
            "description": "Optional, `fund` mode: keep only positions whose CUSIP or issuer name matches one of these values - the fast way to answer \"does this manager still hold that stock?\" over a list of managers. CUSIPs match exactly, names match when the filed `nameOfIssuer` contains the value, case-insensitively. Leave empty for the whole portfolio.",
            "items": {
              "type": "string"
            }
          },
          "minValueUsd": {
            "title": "Minimum position value (USD)",
            "minimum": 0,
            "type": "number",
            "description": "Drop positions reported below this dollar value. Values filed before 2023 are stated in thousands on the form; they are converted to dollars first, so one threshold works across quarters. 0 keeps everything.",
            "default": 0
          },
          "sortBy": {
            "title": "Order of rows",
            "enum": [
              "valueDesc",
              "asFiled"
            ],
            "type": "string",
            "description": "Sorting happens inside each filing, which is where `maxItems` cuts: `valueDesc` with `maxItems: 25` gives the manager's 25 largest reported positions, `asFiled` keeps the table order (roughly alphabetical by issuer for most filing agents). In `issuer` mode managers arrive filing by filing, newest filing first, and the sort applies within each filing.",
            "default": "valueDesc"
          },
          "comparePreviousQuarter": {
            "title": "Compare with the previous quarter",
            "type": "boolean",
            "description": "Adds `prevShares`, `prevValueUsd`, `sharesChange`, `sharesChangePct` and `changeType` (new, increased, reduced, unchanged, sold) to every row by reading the same manager's filing for the quarter before. Positions the manager reported last quarter and no longer reports come back as extra rows with `shares: 0` and `changeType: \"sold\"`, because an exit is usually the point of the comparison. Costs one extra filing per manager and is off by default.",
            "default": false
          },
          "includeAmendments": {
            "title": "Use amended filings (13F-HR/A)",
            "type": "boolean",
            "description": "Managers correct quarters after the fact. A restatement amendment replaces the original table for that manager and quarter, so only the newest restatement is used; an amendment that only adds holdings is reported next to the original rather than instead of it. Every row names the `accessionNumber`, `formType` and `amendmentType` it came from, so a number can always be traced to one filing. Turn this off to see only the original 13F-HR.",
            "default": true
          },
          "sinceHours": {
            "title": "Only filings from the last N hours",
            "minimum": 1,
            "maximum": 8760,
            "type": "integer",
            "description": "Optional: skip filings EDGAR accepted longer ago than this. Useful on the three days around a 45-day deadline, when several hundred managers file and you only want what is new since the last run. In `fund` mode the acceptance timestamp is used, in `issuer` mode only the filing date is available, so the window is rounded to whole days there. Leave empty for every filing of the quarter."
          },
          "onlyNew": {
            "title": "Only positions not seen before",
            "type": "boolean",
            "description": "Skips rows this task already delivered in an earlier run. A position is remembered by manager CIK, quarter, accession number, the line's position on the information table and the CUSIP, so an amended filing of a quarter you already pulled comes through as new while an unchanged re-run stays empty. The memory belongs to the task, so a new task starts empty.",
            "default": false
          },
          "fields": {
            "title": "Columns to keep",
            "type": "array",
            "description": "Optional: the columns you want, in your order. The always-filled columns you do not list come first (manager, quarter, period, filing, issuer, CUSIP, shares, value, url, fetchedAt), then your list in the order you wrote it. Leave empty for the full row. An unknown column name is refused with the list of valid ones.",
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Maximum rows",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Hard cap on dataset rows, and on what you pay for. The largest managers report several thousand positions in one filing, so a cap is how you keep a run small: 25-50 rows with `sortBy: valueDesc` answers most questions. The cap applies per run across all managers in `funds`.",
            "default": 50
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}