Wealth Intelligence API reference

Grizzly Bulls Wealth Intelligence API v1.2.0. This page is generated from the same OpenAPI contract linked below.
Contract

Version 1.2.0

Versioned evidence-backed wealth intelligence API. Responses are built only from records that pass Grizzly Bulls commercial extracted-fact rights review. Authentication, account entitlement, request quotas and dataset licensing eligibility are independent gates.

Base URL
https://api.grizzlybulls.com/v1
Authentication
Bearer API key
Operations
4
Schemas
16
GET/wealth/people

Find commercially available Wealth API people by name or canonical ID

Authentication required. Operation ID: searchWealthPeople.

Parameters

NameLocationRequiredDetails
queryqueryYes

Case-insensitive name or canonical person ID search. Matching is deterministic and does not create or infer identity.

{
  "type": "string",
  "minLength": 2,
  "maxLength": 100,
  "example": "martine rothblatt"
}
limitqueryNo

Maximum matching people returned.

{
  "type": "integer",
  "minimum": 1,
  "maximum": 25,
  "default": 10
}

Responses

200Commercially eligible people matching the requested name or canonical ID.
Headers
  • X-Wealth-Plan: Resolved Wealth API plan for the authenticated account.
  • X-Wealth-Rate-Limit: Maximum requests permitted per minute for the resolved Wealth API plan.
  • X-Wealth-History-Page-Limit: Maximum history records permitted per page for the resolved Wealth API plan.
  • X-Wealth-Quota-Limit: Monthly Wealth API request quota for the resolved plan.
  • X-Wealth-Quota-Remaining: Monthly Wealth API requests remaining after the current operation was reserved.
  • X-Wealth-Quota-Reset: UTC timestamp when the current monthly quota window resets.
  • X-Wealth-Daily-Quota-Limit: Daily request quota when the resolved Wealth API plan has one.
  • X-Wealth-Daily-Quota-Remaining: Daily requests remaining after the current operation was reserved, when applicable.
  • X-Wealth-Daily-Quota-Reset: UTC timestamp when the current daily quota window resets, when applicable.
{
  "$ref": "#/components/schemas/PeopleSearchResponse"
}
400The search query, person ID or pagination parameters are invalid.
{
  "$ref": "#/components/schemas/ErrorResponse"
}
401A valid Grizzly Bulls API key is required.
{
  "$ref": "#/components/schemas/ErrorResponse"
}
403The authenticated account does not have an active Wealth API entitlement.
{
  "$ref": "#/components/schemas/ErrorResponse"
}
404No commercially eligible Wealth API resource was found, or the API is not externally enabled.
{
  "$ref": "#/components/schemas/ErrorResponse"
}
405The HTTP method is not supported by this endpoint.
{
  "$ref": "#/components/schemas/ErrorResponse"
}
429The short-window request rate or monthly Wealth API quota was exceeded.
Headers
  • X-Wealth-Plan: Resolved Wealth API plan for the authenticated account.
  • X-Wealth-Rate-Limit: Maximum requests permitted per minute for the resolved Wealth API plan.
  • X-Wealth-History-Page-Limit: Maximum history records permitted per page for the resolved Wealth API plan.
  • X-Wealth-Quota-Limit: Monthly Wealth API request quota for the resolved plan.
  • X-Wealth-Quota-Remaining: Monthly Wealth API requests remaining after the current operation was reserved.
  • X-Wealth-Quota-Reset: UTC timestamp when the current monthly quota window resets.
  • X-Wealth-Daily-Quota-Limit: Daily request quota when the resolved Wealth API plan has one.
  • X-Wealth-Daily-Quota-Remaining: Daily requests remaining after the current operation was reserved, when applicable.
  • X-Wealth-Daily-Quota-Reset: UTC timestamp when the current daily quota window resets, when applicable.
  • Retry-After: Seconds until the request may be retried.
{
  "$ref": "#/components/schemas/ErrorResponse"
}
500The request failed without exposing internal implementation details.
{
  "$ref": "#/components/schemas/ErrorResponse"
}
503Authentication, usage metering or the pinned rights-filtered Wealth dataset is temporarily unavailable.
{
  "$ref": "#/components/schemas/ErrorResponse"
}
GET/wealth/people/{personId}

Get commercially available current wealth intelligence for a person

Authentication required. Operation ID: getWealthPerson.

Parameters

NameLocationRequiredDetails
personIdpathYes

Canonical Grizzly Bulls Wealth person ID without the person: graph-key prefix.

{
  "type": "string",
  "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
  "example": "jensen-huang"
}

Responses

200Current commercially eligible person and wealth resources.
Headers
  • X-Wealth-Plan: Resolved Wealth API plan for the authenticated account.
  • X-Wealth-Rate-Limit: Maximum requests permitted per minute for the resolved Wealth API plan.
  • X-Wealth-History-Page-Limit: Maximum history records permitted per page for the resolved Wealth API plan.
  • X-Wealth-Quota-Limit: Monthly Wealth API request quota for the resolved plan.
  • X-Wealth-Quota-Remaining: Monthly Wealth API requests remaining after the current operation was reserved.
  • X-Wealth-Quota-Reset: UTC timestamp when the current monthly quota window resets.
  • X-Wealth-Daily-Quota-Limit: Daily request quota when the resolved Wealth API plan has one.
  • X-Wealth-Daily-Quota-Remaining: Daily requests remaining after the current operation was reserved, when applicable.
  • X-Wealth-Daily-Quota-Reset: UTC timestamp when the current daily quota window resets, when applicable.
{
  "$ref": "#/components/schemas/PersonResponse"
}
400The search query, person ID or pagination parameters are invalid.
{
  "$ref": "#/components/schemas/ErrorResponse"
}
401A valid Grizzly Bulls API key is required.
{
  "$ref": "#/components/schemas/ErrorResponse"
}
403The authenticated account does not have an active Wealth API entitlement.
{
  "$ref": "#/components/schemas/ErrorResponse"
}
404No commercially eligible Wealth API resource was found, or the API is not externally enabled.
{
  "$ref": "#/components/schemas/ErrorResponse"
}
405The HTTP method is not supported by this endpoint.
{
  "$ref": "#/components/schemas/ErrorResponse"
}
429The short-window request rate or monthly Wealth API quota was exceeded.
Headers
  • X-Wealth-Plan: Resolved Wealth API plan for the authenticated account.
  • X-Wealth-Rate-Limit: Maximum requests permitted per minute for the resolved Wealth API plan.
  • X-Wealth-History-Page-Limit: Maximum history records permitted per page for the resolved Wealth API plan.
  • X-Wealth-Quota-Limit: Monthly Wealth API request quota for the resolved plan.
  • X-Wealth-Quota-Remaining: Monthly Wealth API requests remaining after the current operation was reserved.
  • X-Wealth-Quota-Reset: UTC timestamp when the current monthly quota window resets.
  • X-Wealth-Daily-Quota-Limit: Daily request quota when the resolved Wealth API plan has one.
  • X-Wealth-Daily-Quota-Remaining: Daily requests remaining after the current operation was reserved, when applicable.
  • X-Wealth-Daily-Quota-Reset: UTC timestamp when the current daily quota window resets, when applicable.
  • Retry-After: Seconds until the request may be retried.
{
  "$ref": "#/components/schemas/ErrorResponse"
}
500The request failed without exposing internal implementation details.
{
  "$ref": "#/components/schemas/ErrorResponse"
}
503Authentication, usage metering or the pinned rights-filtered Wealth dataset is temporarily unavailable.
{
  "$ref": "#/components/schemas/ErrorResponse"
}
GET/wealth/people/{personId}/ownership

Get commercially available current ownership positions for a person

Authentication required. Operation ID: getWealthPersonOwnership.

Parameters

NameLocationRequiredDetails
personIdpathYes

Canonical Grizzly Bulls Wealth person ID without the person: graph-key prefix.

{
  "type": "string",
  "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
  "example": "jensen-huang"
}

Responses

200Current commercially eligible ownership positions.
Headers
  • X-Wealth-Plan: Resolved Wealth API plan for the authenticated account.
  • X-Wealth-Rate-Limit: Maximum requests permitted per minute for the resolved Wealth API plan.
  • X-Wealth-History-Page-Limit: Maximum history records permitted per page for the resolved Wealth API plan.
  • X-Wealth-Quota-Limit: Monthly Wealth API request quota for the resolved plan.
  • X-Wealth-Quota-Remaining: Monthly Wealth API requests remaining after the current operation was reserved.
  • X-Wealth-Quota-Reset: UTC timestamp when the current monthly quota window resets.
  • X-Wealth-Daily-Quota-Limit: Daily request quota when the resolved Wealth API plan has one.
  • X-Wealth-Daily-Quota-Remaining: Daily requests remaining after the current operation was reserved, when applicable.
  • X-Wealth-Daily-Quota-Reset: UTC timestamp when the current daily quota window resets, when applicable.
{
  "$ref": "#/components/schemas/OwnershipResponse"
}
400The search query, person ID or pagination parameters are invalid.
{
  "$ref": "#/components/schemas/ErrorResponse"
}
401A valid Grizzly Bulls API key is required.
{
  "$ref": "#/components/schemas/ErrorResponse"
}
403The authenticated account does not have an active Wealth API entitlement.
{
  "$ref": "#/components/schemas/ErrorResponse"
}
404No commercially eligible Wealth API resource was found, or the API is not externally enabled.
{
  "$ref": "#/components/schemas/ErrorResponse"
}
405The HTTP method is not supported by this endpoint.
{
  "$ref": "#/components/schemas/ErrorResponse"
}
429The short-window request rate or monthly Wealth API quota was exceeded.
Headers
  • X-Wealth-Plan: Resolved Wealth API plan for the authenticated account.
  • X-Wealth-Rate-Limit: Maximum requests permitted per minute for the resolved Wealth API plan.
  • X-Wealth-History-Page-Limit: Maximum history records permitted per page for the resolved Wealth API plan.
  • X-Wealth-Quota-Limit: Monthly Wealth API request quota for the resolved plan.
  • X-Wealth-Quota-Remaining: Monthly Wealth API requests remaining after the current operation was reserved.
  • X-Wealth-Quota-Reset: UTC timestamp when the current monthly quota window resets.
  • X-Wealth-Daily-Quota-Limit: Daily request quota when the resolved Wealth API plan has one.
  • X-Wealth-Daily-Quota-Remaining: Daily requests remaining after the current operation was reserved, when applicable.
  • X-Wealth-Daily-Quota-Reset: UTC timestamp when the current daily quota window resets, when applicable.
  • Retry-After: Seconds until the request may be retried.
{
  "$ref": "#/components/schemas/ErrorResponse"
}
500The request failed without exposing internal implementation details.
{
  "$ref": "#/components/schemas/ErrorResponse"
}
503Authentication, usage metering or the pinned rights-filtered Wealth dataset is temporarily unavailable.
{
  "$ref": "#/components/schemas/ErrorResponse"
}
GET/wealth/people/{personId}/history

Get commercially available retained wealth history for a person

Authentication required. Operation ID: getWealthPersonHistory.

Parameters

NameLocationRequiredDetails
personIdpathYes

Canonical Grizzly Bulls Wealth person ID without the person: graph-key prefix.

{
  "type": "string",
  "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
  "example": "jensen-huang"
}
limitqueryNo

Maximum records returned. The authenticated plan may impose a lower maximum.

{
  "type": "integer",
  "minimum": 1,
  "maximum": 500,
  "default": 50
}
offsetqueryNo

Zero-based history offset.

{
  "type": "integer",
  "minimum": 0,
  "maximum": 100000,
  "default": 0
}

Responses

200Commercially eligible retained wealth history.
Headers
  • X-Wealth-Plan: Resolved Wealth API plan for the authenticated account.
  • X-Wealth-Rate-Limit: Maximum requests permitted per minute for the resolved Wealth API plan.
  • X-Wealth-History-Page-Limit: Maximum history records permitted per page for the resolved Wealth API plan.
  • X-Wealth-Quota-Limit: Monthly Wealth API request quota for the resolved plan.
  • X-Wealth-Quota-Remaining: Monthly Wealth API requests remaining after the current operation was reserved.
  • X-Wealth-Quota-Reset: UTC timestamp when the current monthly quota window resets.
  • X-Wealth-Daily-Quota-Limit: Daily request quota when the resolved Wealth API plan has one.
  • X-Wealth-Daily-Quota-Remaining: Daily requests remaining after the current operation was reserved, when applicable.
  • X-Wealth-Daily-Quota-Reset: UTC timestamp when the current daily quota window resets, when applicable.
{
  "$ref": "#/components/schemas/HistoryResponse"
}
400The search query, person ID or pagination parameters are invalid.
{
  "$ref": "#/components/schemas/ErrorResponse"
}
401A valid Grizzly Bulls API key is required.
{
  "$ref": "#/components/schemas/ErrorResponse"
}
403The authenticated account does not have an active Wealth API entitlement.
{
  "$ref": "#/components/schemas/ErrorResponse"
}
404No commercially eligible Wealth API resource was found, or the API is not externally enabled.
{
  "$ref": "#/components/schemas/ErrorResponse"
}
405The HTTP method is not supported by this endpoint.
{
  "$ref": "#/components/schemas/ErrorResponse"
}
429The short-window request rate or monthly Wealth API quota was exceeded.
Headers
  • X-Wealth-Plan: Resolved Wealth API plan for the authenticated account.
  • X-Wealth-Rate-Limit: Maximum requests permitted per minute for the resolved Wealth API plan.
  • X-Wealth-History-Page-Limit: Maximum history records permitted per page for the resolved Wealth API plan.
  • X-Wealth-Quota-Limit: Monthly Wealth API request quota for the resolved plan.
  • X-Wealth-Quota-Remaining: Monthly Wealth API requests remaining after the current operation was reserved.
  • X-Wealth-Quota-Reset: UTC timestamp when the current monthly quota window resets.
  • X-Wealth-Daily-Quota-Limit: Daily request quota when the resolved Wealth API plan has one.
  • X-Wealth-Daily-Quota-Remaining: Daily requests remaining after the current operation was reserved, when applicable.
  • X-Wealth-Daily-Quota-Reset: UTC timestamp when the current daily quota window resets, when applicable.
  • Retry-After: Seconds until the request may be retried.
{
  "$ref": "#/components/schemas/ErrorResponse"
}
500The request failed without exposing internal implementation details.
{
  "$ref": "#/components/schemas/ErrorResponse"
}
503Authentication, usage metering or the pinned rights-filtered Wealth dataset is temporarily unavailable.
{
  "$ref": "#/components/schemas/ErrorResponse"
}

Schemas

Reusable definitions exposed by the product OpenAPI contract.

DatasetMeta
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "apiVersion",
    "knowledgeAsOf",
    "effectiveAsOf",
    "payloadSha256",
    "coverage"
  ],
  "properties": {
    "apiVersion": {
      "type": "string",
      "const": "wealth-api-v1"
    },
    "knowledgeAsOf": {
      "type": "string"
    },
    "effectiveAsOf": {
      "type": [
        "string",
        "null"
      ]
    },
    "payloadSha256": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    },
    "coverage": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "domain",
          "status"
        ],
        "properties": {
          "domain": {
            "type": "string",
            "enum": [
              "bb",
              "cp",
              "siw"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "admitted",
              "runtime-not-loaded"
            ]
          }
        }
      }
    }
  }
}
ErrorResponse
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "enum": [
            "invalid_request",
            "method_not_allowed",
            "unauthenticated",
            "forbidden",
            "rate_limited",
            "not_found",
            "service_unavailable",
            "internal_error"
          ]
        },
        "message": {
          "type": "string"
        }
      }
    }
  }
}
FinancialEvent
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "kind",
    "recordId",
    "eventType",
    "balanceSheetRole",
    "measures",
    "effectiveAt",
    "version",
    "sources"
  ],
  "properties": {
    "kind": {
      "type": "string",
      "const": "financial-event"
    },
    "recordId": {
      "type": "string"
    },
    "eventType": {
      "type": "string"
    },
    "balanceSheetRole": {
      "type": "string"
    },
    "measures": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "effectiveAt": {
      "type": [
        "string",
        "null"
      ]
    },
    "version": {
      "$ref": "#/components/schemas/Version"
    },
    "sources": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Source"
      }
    }
  }
}
HistoryRecord
{
  "oneOf": [
    {
      "$ref": "#/components/schemas/Ownership"
    },
    {
      "$ref": "#/components/schemas/WealthEstimate"
    },
    {
      "$ref": "#/components/schemas/WealthComponent"
    },
    {
      "$ref": "#/components/schemas/Valuation"
    },
    {
      "$ref": "#/components/schemas/FinancialEvent"
    }
  ]
}
HistoryResponse
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "data",
    "pagination",
    "meta"
  ],
  "properties": {
    "data": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "person",
        "records"
      ],
      "properties": {
        "person": {
          "$ref": "#/components/schemas/Person"
        },
        "records": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/HistoryRecord"
          }
        }
      }
    },
    "pagination": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "limit",
        "offset",
        "total",
        "hasMore"
      ],
      "properties": {
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 500
        },
        "offset": {
          "type": "integer",
          "minimum": 0
        },
        "total": {
          "type": "integer",
          "minimum": 0
        },
        "hasMore": {
          "type": "boolean"
        }
      }
    },
    "meta": {
      "$ref": "#/components/schemas/DatasetMeta"
    }
  }
}
Ownership
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "kind",
    "recordId",
    "ownerId",
    "ownedAsset",
    "ownershipKind",
    "relationshipState",
    "percentage",
    "quantity",
    "effectiveAt",
    "version",
    "sources"
  ],
  "properties": {
    "kind": {
      "type": "string",
      "const": "ownership"
    },
    "recordId": {
      "type": "string"
    },
    "ownerId": {
      "type": "string"
    },
    "ownedAsset": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "kind",
        "id"
      ],
      "properties": {
        "kind": {
          "type": "string",
          "enum": [
            "organization",
            "security",
            "asset"
          ]
        },
        "id": {
          "type": "string"
        }
      }
    },
    "ownershipKind": {
      "type": "string"
    },
    "relationshipState": {
      "type": "string"
    },
    "percentage": {
      "type": [
        "number",
        "null"
      ]
    },
    "quantity": {
      "type": [
        "object",
        "null"
      ]
    },
    "effectiveAt": {
      "type": [
        "string",
        "null"
      ]
    },
    "version": {
      "$ref": "#/components/schemas/Version"
    },
    "sources": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Source"
      }
    }
  }
}
OwnershipResponse
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "person",
        "ownership"
      ],
      "properties": {
        "person": {
          "$ref": "#/components/schemas/Person"
        },
        "ownership": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/Ownership"
          }
        }
      }
    },
    "meta": {
      "$ref": "#/components/schemas/DatasetMeta"
    }
  }
}
PeopleSearchResponse
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "data",
    "search",
    "meta"
  ],
  "properties": {
    "data": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "people"
      ],
      "properties": {
        "people": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/Person"
          }
        }
      }
    },
    "search": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "query",
        "limit",
        "total",
        "hasMore"
      ],
      "properties": {
        "query": {
          "type": "string"
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 25
        },
        "total": {
          "type": "integer",
          "minimum": 0
        },
        "hasMore": {
          "type": "boolean"
        }
      }
    },
    "meta": {
      "$ref": "#/components/schemas/DatasetMeta"
    }
  }
}
Person
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "id",
    "graphKey",
    "label",
    "correctionsUrl"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "graphKey": {
      "type": "string",
      "pattern": "^person:"
    },
    "label": {
      "type": "string"
    },
    "correctionsUrl": {
      "type": "string",
      "format": "uri",
      "description": "Public correction channel for identity or data issues on this person record."
    }
  }
}
PersonResponse
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "person",
        "current"
      ],
      "properties": {
        "person": {
          "$ref": "#/components/schemas/Person"
        },
        "current": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "estimates",
            "ownership",
            "components",
            "valuations"
          ],
          "properties": {
            "estimates": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/WealthEstimate"
              }
            },
            "ownership": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/Ownership"
              }
            },
            "components": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/WealthComponent"
              }
            },
            "valuations": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/Valuation"
              }
            }
          }
        }
      }
    },
    "meta": {
      "$ref": "#/components/schemas/DatasetMeta"
    }
  }
}
Scenario
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "bear",
    "base",
    "bull"
  ],
  "properties": {
    "bear": {
      "type": [
        "number",
        "null"
      ]
    },
    "base": {
      "type": [
        "number",
        "null"
      ]
    },
    "bull": {
      "type": [
        "number",
        "null"
      ]
    }
  }
}
Source
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "sourceId",
    "publisher",
    "title",
    "locator",
    "publishedAt"
  ],
  "properties": {
    "sourceId": {
      "type": "string"
    },
    "publisher": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "locator": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "kind",
        "value"
      ],
      "properties": {
        "kind": {
          "type": "string",
          "enum": [
            "url",
            "sec-accession",
            "unavailable"
          ]
        },
        "value": {
          "type": [
            "string",
            "null"
          ]
        }
      }
    },
    "publishedAt": {
      "type": [
        "string",
        "null"
      ]
    }
  }
}
Valuation
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "kind",
    "recordId",
    "objectId",
    "value",
    "currency",
    "valuationMethod",
    "effectiveAt",
    "version",
    "sources"
  ],
  "properties": {
    "kind": {
      "type": "string",
      "const": "valuation"
    },
    "recordId": {
      "type": "string"
    },
    "objectId": {
      "type": "string"
    },
    "value": {
      "type": [
        "number",
        "string"
      ]
    },
    "currency": {
      "type": "string"
    },
    "valuationMethod": {
      "type": [
        "string",
        "null"
      ]
    },
    "effectiveAt": {
      "type": [
        "string",
        "null"
      ]
    },
    "version": {
      "$ref": "#/components/schemas/Version"
    },
    "sources": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Source"
      }
    }
  }
}
Version
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "versionId",
    "lineageId",
    "knowledgeRecordedAt",
    "knowledgeValidFrom",
    "knowledgeValidThrough",
    "changeKind"
  ],
  "properties": {
    "versionId": {
      "type": "string"
    },
    "lineageId": {
      "type": "string"
    },
    "knowledgeRecordedAt": {
      "type": "string"
    },
    "knowledgeValidFrom": {
      "type": "string"
    },
    "knowledgeValidThrough": {
      "type": [
        "string",
        "null"
      ]
    },
    "changeKind": {
      "type": "string",
      "enum": [
        "initial",
        "update",
        "correction",
        "supersession"
      ]
    }
  }
}
WealthComponent
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "kind",
    "recordId",
    "componentKind",
    "assetClass",
    "objectId",
    "scenario",
    "currency",
    "valuationMethod",
    "effectiveAt",
    "version",
    "sources"
  ],
  "properties": {
    "kind": {
      "type": "string",
      "const": "wealth-component"
    },
    "recordId": {
      "type": "string"
    },
    "componentKind": {
      "type": "string"
    },
    "assetClass": {
      "type": "string"
    },
    "objectId": {
      "type": [
        "string",
        "null"
      ]
    },
    "scenario": {
      "$ref": "#/components/schemas/Scenario"
    },
    "currency": {
      "type": "string"
    },
    "valuationMethod": {
      "type": [
        "string",
        "null"
      ]
    },
    "effectiveAt": {
      "type": [
        "string",
        "null"
      ]
    },
    "version": {
      "$ref": "#/components/schemas/Version"
    },
    "sources": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Source"
      }
    }
  }
}
WealthEstimate
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "kind",
    "recordId",
    "estimateKind",
    "scenario",
    "currency",
    "confidence",
    "methodologyVersion",
    "effectiveAt",
    "version",
    "sources"
  ],
  "properties": {
    "kind": {
      "type": "string",
      "const": "wealth-estimate"
    },
    "recordId": {
      "type": "string"
    },
    "estimateKind": {
      "type": "string"
    },
    "scenario": {
      "$ref": "#/components/schemas/Scenario"
    },
    "currency": {
      "type": "string"
    },
    "confidence": {
      "type": [
        "number",
        "null"
      ]
    },
    "methodologyVersion": {
      "type": "string"
    },
    "effectiveAt": {
      "type": [
        "string",
        "null"
      ]
    },
    "version": {
      "$ref": "#/components/schemas/Version"
    },
    "sources": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Source"
      }
    }
  }
}