Skip to main content
Glama

Valuein — SEC EDGAR Fundamentals & Smart-Money Data

Manager Portfolio (13F by filer)

get_manager_portfolio
Read-onlyIdempotent

Returns a 13F filer's full portfolio at a specific period_end (latest by default), with QoQ deltas vs the prior quarter (new / increased / decreased / exited / unchanged). Specify the filer either by filer_cik (preferred) or filer_name (fuzzy match against entity.name; multiple matches raise an ambiguity error so you can disambiguate by CIK). Institutional tier only.

Input Schema

NameRequiredDescriptionDefault
top_nNoMaximum positions to return, ranked by market_value_usd. Default 25.
filer_cikNoCIK of the 13F filer (1-10 digits; will be zero-padded to 10). Preferred over filer_name when known.
as_of_dateNoPoint-in-time cutoff (YYYY-MM-DD): only 13F filings ACCEPTED by SEC on or before this date are considered, applied BEFORE the latest + prior periods (and the QoQ basis) are resolved. A 13F/A amendment or late filing accepted after this date is excluded (zero look-ahead). Omit for the latest knowable portfolio.
filer_nameNoFiler name to fuzzy-match against entity.name. Case-insensitive substring match. Multiple matches raise INVALID_ARGUMENT — use filer_cik in that case.
period_endNoQuarter-end (YYYY-MM-DD). Omit to use latest available. This is a REPORTING period, NOT a point-in-time cutoff — use as_of_date for that.
lineage_detailNoPer-row provenance envelope.compact
include_supersededNoDefault false: 13F-HR rows replaced by a later 13F-HR/A are hidden once the amendment is knowable (as of as_of_date when given), so an original and its amendment are never both counted. Set true to include the superseded originals.

Output Schema

NameRequiredDescriptionDefault
rowsYes
_metaYesProvenance envelope — data lineage for every MCP response
aggregateYes
filer_cikYes
as_of_dateYesThe point-in-time cutoff actually applied (echo of the as_of_date input). Null when no PIT cut was requested — never confuse this with the reporting period_end.
filer_nameYes
period_endYesThe 13F REPORTING period the positions belong to — NOT a point-in-time cutoff.
data_age_daysYes
positions_countYes
prior_period_endYes
staleness_warningYes
total_market_value_usdYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / properties / _meta / properties / cost_usd / properties / basis / description
      Previous value: -"payg_charge = real charge (agent-pay or your balance). payg_rate_card = indicative price, not billed."New value: +"payg_charge = real pay-per-call charge (a card or MPP payment through agent-pay). payg_rate_card = indicative price, not billed."
  2. Changed2 schema fields changed
    • changedOutput schema / properties / _meta / properties / cost_usd / properties / basis / description
      Previous value: -"payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed."New value: +"payg_charge = real charge (agent-pay or your balance). payg_rate_card = indicative price, not billed."
    • changedOutput schema / properties / _meta / properties / cost_usd / properties / billed / description
      Previous value: -"true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free."New value: +"true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value only: no charge was made for this call (it was within your plan)."
  3. Changed1 schema field changed
    • addedInput schema / properties / include_superseded
      Added value: +{
      +  "default": false,
      +  "description": "Default false: 13F-HR rows replaced by a later 13F-HR/A are hidden once the amendment is knowable (as of as_of_date when given), so an original and its amendment are never both counted. Set true to include the superseded originals.",
      +  "type": "boolean"
      +}
  4. Added
  5. Removed
  6. Changed1 schema field changed
    • changedOutput schema / properties / _meta / properties / fundamentals_as_of / description
      Previous value: -"ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt. Use THIS — not `last_updated` — when telling a user how current the fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to."New value: +"ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export."
  7. Changed2 schema fields changed
    • addedOutput schema / properties / _meta / properties / fundamentals_as_of
      Added value: +{
      +  "description": "ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt. Use THIS — not `last_updated` — when telling a user how current the fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / _meta / properties / price_as_of
      Added value: +{
      +  "description": "ISO timestamp when the price surfaces were last refreshed.",
      +  "type": "string"
      +}
  8. Changed2 schema fields changed
    • addedOutput schema / properties / _meta / properties / cost_usd
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.",
      +  "properties": {
      +    "amount_usd": {
      +      "minimum": 0,
      +      "type": "number"
      +    },
      +    "basis": {
      +      "description": "payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.",
      +      "enum": [
      +        "payg_charge",
      +        "payg_rate_card"
      +      ],
      +      "type": "string"
      +    },
      +    "billed": {
      +      "description": "true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.",
      +      "type": "boolean"
      +    }
      +  },
      +  "required": [
      +    "amount_usd",
      +    "billed",
      +    "basis"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / _meta / properties / latency_ms
      Added value: +{
      +  "description": "Wall-clock milliseconds this tool call took, measured server-side around the handler.",
      +  "minimum": 0,
      +  "type": "integer"
      +}
  9. Changed1 schema field changed
    • addedOutput schema / properties / _meta / properties / pit_safe / description
      Added value: +"true iff a zero-look-ahead point-in-time cut was applied to every returned figure"
  10. Changed6 schema fields changed
    • addedInput schema / properties / as_of_date
      Added value: +{
      +  "description": "Point-in-time cutoff (YYYY-MM-DD): only 13F filings ACCEPTED by SEC on or before this date are considered, applied BEFORE the latest + prior periods (and the QoQ basis) are resolved. A 13F/A amendment or late filing accepted after this date is excluded (zero look-ahead). Omit for the latest knowable portfolio.",
      +  "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      +  "type": "string"
      +}
    • changedInput schema / properties / period_end / description
      Previous value: -"Quarter-end (YYYY-MM-DD).  Omit to use latest available."New value: +"Quarter-end (YYYY-MM-DD).  Omit to use latest available.  This is a REPORTING period, NOT a point-in-time cutoff — use as_of_date for that."
    • addedOutput schema / properties / aggregate
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "basis": {
      +      "type": "string"
      +    },
      +    "covers_positions": {
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    "has_incomplete_rows": {
      +      "description": "True when ≥1 included position reported a null shares/market_value — the total sums only known values and UNDERSTATES the true book (missing ≠ zero).",
      +      "type": "boolean"
      +    },
      +    "is_partial": {
      +      "type": "boolean"
      +    },
      +    "note": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "basis",
      +    "is_partial",
      +    "has_incomplete_rows",
      +    "covers_positions",
      +    "note"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / as_of_date
      Added value: +{
      +  "description": "The point-in-time cutoff actually applied (echo of the as_of_date input). Null when no PIT cut was requested — never confuse this with the reporting period_end.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / period_end / description
      Added value: +"The 13F REPORTING period the positions belong to — NOT a point-in-time cutoff."
    • changedOutput schema / required
      Previous value: -[
      -  "_meta",
      -  "filer_cik",
      -  "filer_name",
      -  "period_end",
      -  "prior_period_end",
      -  "data_age_days",
      -  "staleness_warning",
      -  "total_market_value_usd",
      -  "positions_count",
      -  "rows"
      -]New value: +[
      +  "_meta",
      +  "filer_cik",
      +  "filer_name",
      +  "period_end",
      +  "prior_period_end",
      +  "as_of_date",
      +  "data_age_days",
      +  "staleness_warning",
      +  "total_market_value_usd",
      +  "positions_count",
      +  "aggregate",
      +  "rows"
      +]
  11. Added

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only/idempotent safety, yet the description adds real behavior: the five QoQ delta buckets returned, the ambiguity error on multi-match names, zero-look-ahead semantics for late filings/amendments, and the include_superseded dedupe rule preventing an original and its 13F-HR/A being double-counted. That is substantive disclosure beyond the structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, all front-loaded: what it returns, how to identify the filer, and the tier constraint. No filler, and the most failure-prone detail (identifier ambiguity) is surfaced early rather than buried.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 7 optional parameters, an output schema, and full annotations, the description covers defaults, disambiguation, and look-ahead correctly. The remaining gap is what 'Institutional tier only' actually implies for a non-entitled caller — an error code or gating note would close it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3, but the description adds value by ranking the two filer identifiers, explaining the fuzzy-match substring rule and its error, and reinforcing the period_end vs as_of_date trap that the schema states only in the per-parameter prose. It does not add anything on top_n or lineage_detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb, resource and scope: a 13F filer's full portfolio at a given period_end with QoQ delta categories. The filer-centric framing (portfolio of a manager) implicitly separates it from issuer-centric siblings like get_institutional_holdings and get_top_holders, and 'Institutional tier only' adds a scope boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit selection guidance for the two mutually exclusive identifiers ('filer_cik (preferred) or filer_name') and spells out the failure mode of fuzzy matching. It also preempts the most likely misuse by contrasting period_end with as_of_date ('This is a REPORTING period, NOT a point-in-time cutoff'). It stops short of naming a sibling tool to use instead in any scenario.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.