Raw schema
{
"type": "object",
"properties": {
"assets": {
"type": "array",
"items": {
"type": "object",
"properties": {
"issuerName": {
"type": "string",
"minLength": 1,
"description": "Name of the issuing company or entity, as the seller identifies it (e.g. \"Acme Robotics, Inc.\")."
},
"assetType": {
"type": "string",
"enum": [
"common-stock",
"preferred-stock",
"convertible-note",
"safe",
"llc-interest",
"other"
],
"description": "The kind of position the seller holds: common-stock, preferred-stock, convertible-note, safe (Simple Agreement for Future Equity), llc-interest (LLC / LP / fund interest), or other."
},
"quantity": {
"type": "number",
"exclusiveMinimum": 0,
"description": "Number of shares or units, or ownership percentage, per the seller's records, if known."
},
"costBasis": {
"type": "number",
"minimum": 0,
"description": "Total original amount the seller paid for the position, in USD (>= 0), if known."
},
"acquisitionDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Date the seller acquired the position, ISO YYYY-MM-DD, if known."
},
"identifier": {
"type": "string",
"description": "CUSIP or public ticker symbol, if one exists. Do NOT put account numbers, certificate numbers, or tax IDs here — those are rejected."
},
"candidateDispositionDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "The calling agent's UNCONFIRMED best guess (ISO YYYY-MM-DD) at when the position stopped performing. A suggestion only — the seller reviews and confirms the actual date inside DivestMe."
},
"sourceNote": {
"type": "string",
"description": "Short free-text note on where the calling agent got this information (e.g. \"from your 2024 1099-B\" or \"from the bankruptcy filing on PACER\")."
}
},
"required": [
"issuerName",
"assetType"
],
"additionalProperties": false
},
"minItems": 1,
"maxItems": 25,
"description": "1 to 25 candidate positions. Each is a suggestion the seller reviews, corrects, and explicitly confirms or dismisses inside DivestMe — nothing is sold or documented without the seller's confirmation."
},
"taxYearContext": {
"type": "integer",
"minimum": 2015,
"description": "The tax year the seller says they are preparing (e.g. 2025). Valid range: 2015 through the calendar year after the current year, inclusive — the upper bound is enforced at runtime even though it does not appear in this schema. When present, the returned summary states whether a sale completed today can still fall in that year."
}
},
"required": [
"assets"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}