DEVELOPER GUIDE

Request & response schemas

Find field definitions, required values and linked data structures.

Request and response schemas

These definitions are generated from the same OpenAPI contract. Follow a schema link from an operation to inspect nested fields, alternatives and required values. Missing values, evidence states and response envelopes remain part of the contract.

A (21)
AcceptedResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "type": "object",
      "required": [
        "received"
      ],
      "properties": {
        "received": {
          "type": "boolean",
          "const": true
        }
      }
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
AccountActionAcceptedResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "type": "object",
      "required": [
        "accepted"
      ],
      "properties": {
        "accepted": {
          "type": "boolean",
          "const": true
        }
      }
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
AccountActionTokenRequest
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "token"
  ],
  "properties": {
    "token": {
      "type": "string",
      "pattern": "^fs_verify_[A-Za-z0-9_-]{43}$",
      "writeOnly": true
    }
  }
}
AccountBillingResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "allOf": [
        {
          "$ref": "#/components/schemas/BillingAccess"
        },
        {
          "type": "object",
          "required": [
            "catalog",
            "invoices"
          ],
          "properties": {
            "catalog": {
              "$ref": "#/components/schemas/BillingCatalog"
            },
            "invoices": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/Invoice"
              }
            }
          }
        }
      ]
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
AccountOverview
{
  "type": "object",
  "required": [
    "organization",
    "plan",
    "members",
    "companies",
    "keys",
    "usage"
  ],
  "properties": {
    "organization": {
      "$ref": "#/components/schemas/Organization"
    },
    "plan": {
      "$ref": "#/components/schemas/Plan"
    },
    "members": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Membership"
      }
    },
    "companies": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "keys": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ApiKeyMetadata"
      }
    },
    "usage": {
      "$ref": "#/components/schemas/MonthlyUsage"
    }
  }
}
AccountResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "allOf": [
        {
          "$ref": "#/components/schemas/AccountOverview"
        },
        {
          "type": "object",
          "required": [
            "identity"
          ],
          "properties": {
            "identity": {
              "$ref": "#/components/schemas/Identity"
            }
          }
        }
      ]
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
AnalystExportRequest
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "tickers"
  ],
  "properties": {
    "tickers": {
      "type": "array",
      "minItems": 1,
      "maxItems": 20,
      "uniqueItems": true,
      "items": {
        "type": "string",
        "pattern": "^[A-Z0-9.-]{1,16}$"
      }
    },
    "periods": {
      "type": "integer",
      "minimum": 1,
      "maximum": 20,
      "default": 8
    },
    "metrics": {
      "type": "array",
      "minItems": 1,
      "uniqueItems": true,
      "items": {
        "type": "string",
        "enum": [
          "total_debt",
          "cash",
          "revolver_capacity",
          "revolver_drawn",
          "letters_of_credit",
          "revolver_availability"
        ]
      }
    }
  }
}
AnalystModelDefinition
{
  "type": "object",
  "required": [
    "formulas"
  ],
  "properties": {
    "formulas": {
      "type": "array",
      "items": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/AnalystScalarFormula"
          },
          {
            "$ref": "#/components/schemas/AnalystTableFormula"
          }
        ]
      },
      "minItems": 1,
      "maxItems": 500
    }
  }
}
AnalystScalarFormula
{
  "type": "object",
  "required": [
    "ticker",
    "concept"
  ],
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 120
    },
    "function": {
      "type": "string",
      "enum": [
        "VALUE",
        "EVIDENCE"
      ],
      "default": "VALUE"
    },
    "ticker": {
      "type": "string"
    },
    "concept": {
      "type": "string",
      "description": "standardConcept from /xbrl/mappings or modeling vocabulary."
    },
    "period": {
      "type": "string",
      "description": "latest, YYYY-MM-DD, FYyyyy or FYyyyyQn",
      "default": "latest"
    },
    "dimensions": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "axis"
        ],
        "anyOf": [
          {
            "required": [
              "member"
            ]
          },
          {
            "required": [
              "typedValue"
            ]
          }
        ],
        "properties": {
          "axis": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "member": {
            "type": "string",
            "minLength": 1,
            "maxLength": 500
          },
          "typedValue": {
            "type": "string",
            "minLength": 1,
            "maxLength": 500
          }
        }
      },
      "minItems": 0,
      "maxItems": 10
    }
  }
}
AnalystTableFormula
{
  "type": "object",
  "required": [
    "function"
  ],
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 120
    },
    "function": {
      "type": "string",
      "const": "TABLE"
    },
    "template": {
      "type": "string",
      "enum": [
        "historical_statements",
        "comparable_companies"
      ],
      "default": "historical_statements"
    },
    "ticker": {
      "type": "string"
    },
    "tickers": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "minItems": 1,
      "maxItems": 25
    },
    "concepts": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "minItems": 1,
      "maxItems": 25
    },
    "period": {
      "type": "string"
    },
    "periods": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "minItems": 1,
      "maxItems": 40
    }
  },
  "anyOf": [
    {
      "required": [
        "ticker"
      ]
    },
    {
      "required": [
        "tickers"
      ]
    }
  ]
}
AnalyticsEventRequest
{
  "type": "object",
  "required": [
    "event",
    "path"
  ],
  "properties": {
    "event": {
      "type": "string",
      "enum": [
        "page_view",
        "explorer_loaded",
        "explorer_fallback",
        "design_partner_form_started",
        "design_partner_form_submitted",
        "design_partner_form_failed"
      ]
    },
    "path": {
      "type": "string",
      "maxLength": 500,
      "pattern": "^/"
    },
    "properties": {
      "type": "object",
      "additionalProperties": {
        "oneOf": [
          {
            "type": "string",
            "maxLength": 200
          },
          {
            "type": "number"
          },
          {
            "type": "boolean"
          }
        ]
      }
    }
  }
}
ApiKeyCreateRequest
{
  "type": "object",
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 120
    },
    "userId": {
      "type": "string",
      "format": "uuid"
    },
    "scopes": {
      "type": "array",
      "minItems": 1,
      "uniqueItems": true,
      "items": {
        "$ref": "#/components/schemas/ApiKeyScope"
      }
    },
    "expiresInDays": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 1,
      "maximum": 365,
      "default": null,
      "description": "Omit or set null for no expiration."
    },
    "rotateAfterDays": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 1,
      "maximum": 365,
      "default": null,
      "description": "Optional rotation reminder; cannot exceed expiresInDays when expiration is set."
    }
  }
}
ApiKeyIssueResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "type": "object",
      "required": [
        "key",
        "token",
        "oneTimeDisplay"
      ],
      "properties": {
        "key": {
          "$ref": "#/components/schemas/ApiKeyMetadata"
        },
        "token": {
          "type": "string",
          "readOnly": true,
          "description": "Returned once; store securely."
        },
        "oneTimeDisplay": {
          "type": "boolean",
          "const": true
        }
      }
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
ApiKeyMetadata
{
  "type": "object",
  "description": "Redacted key metadata. Raw tokens and stored SHA-256 hashes are never present.",
  "required": [
    "id",
    "userId",
    "name",
    "prefix",
    "scopes",
    "status",
    "createdAt"
  ],
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "userId": {
      "type": "string",
      "format": "uuid"
    },
    "name": {
      "type": "string"
    },
    "prefix": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{8}$"
    },
    "scopes": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ApiKeyScope"
      }
    },
    "status": {
      "type": "string",
      "enum": [
        "active",
        "revoked",
        "rotated"
      ]
    },
    "createdAt": {
      "type": "string",
      "format": "date-time"
    },
    "expiresAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "rotationDueAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "serviceAccountId": {
      "type": [
        "string",
        "null"
      ],
      "format": "uuid"
    },
    "lastUsedAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "revokedAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "rotatedToKeyId": {
      "type": [
        "string",
        "null"
      ],
      "format": "uuid"
    }
  }
}
ApiKeyResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/ApiKeyMetadata"
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
ApiKeyScope
{
  "type": "string",
  "enum": [
    "filings:read",
    "reader:read",
    "search:read",
    "intelligence:read",
    "stream:read",
    "monitoring:read",
    "monitoring:write",
    "exports:read",
    "workspace:write",
    "batch:read",
    "batch:write",
    "webhooks:read",
    "webhooks:write",
    "account:read",
    "account:write",
    "admin:write"
  ]
}
ApiMeta
{
  "type": "object",
  "required": [
    "schemaVersion",
    "apiVersion"
  ],
  "properties": {
    "schemaVersion": {
      "type": "string",
      "const": "1.0.0"
    },
    "apiVersion": {
      "type": "string",
      "const": "1"
    },
    "mode": {
      "type": "string"
    },
    "pagination": {
      "$ref": "#/components/schemas/Pagination"
    }
  }
}
AuditEntry
{
  "type": "object",
  "required": [
    "id",
    "action",
    "targetType",
    "metadata",
    "occurredAt"
  ],
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "orgId": {
      "type": [
        "string",
        "null"
      ],
      "format": "uuid"
    },
    "actorUserId": {
      "type": [
        "string",
        "null"
      ],
      "format": "uuid"
    },
    "actorKeyId": {
      "type": [
        "string",
        "null"
      ],
      "format": "uuid"
    },
    "action": {
      "type": "string"
    },
    "targetType": {
      "type": "string"
    },
    "targetId": {
      "type": [
        "string",
        "null"
      ]
    },
    "fingerprint": {
      "type": [
        "string",
        "null"
      ],
      "description": "HMAC pseudonymous client identifier"
    },
    "metadata": {
      "type": "object",
      "additionalProperties": true
    },
    "occurredAt": {
      "type": "string",
      "format": "date-time"
    }
  }
}
AuditResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/AuditEntry"
      }
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
AuthSession
{
  "type": "object",
  "required": [
    "session",
    "tokenType",
    "expiresAt",
    "user",
    "organization"
  ],
  "properties": {
    "session": {
      "type": "boolean",
      "const": true,
      "description": "Session-present marker; the credential is delivered only in Set-Cookie"
    },
    "tokenType": {
      "type": "string",
      "const": "Cookie"
    },
    "expiresAt": {
      "type": "string",
      "format": "date-time"
    },
    "user": {
      "type": "object",
      "required": [
        "email",
        "displayName"
      ],
      "properties": {
        "email": {
          "type": "string",
          "format": "email"
        },
        "displayName": {
          "type": "string"
        }
      }
    },
    "organization": {
      "type": "object",
      "required": [
        "name",
        "slug"
      ],
      "properties": {
        "name": {
          "type": "string"
        },
        "slug": {
          "type": "string"
        }
      }
    }
  }
}
AuthSessionResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/AuthSession"
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
B (35)
BankPeerBank
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "cert",
    "institution",
    "mapping",
    "periods"
  ],
  "properties": {
    "cert": {
      "$ref": "#/components/schemas/BankPeerCertificate"
    },
    "institution": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/FdicBankInstitution"
        },
        {
          "type": "null"
        }
      ],
      "description": "Null if current reference metadata is absent or conflicting; historical financial rows can still be shown"
    },
    "mapping": {
      "$ref": "#/components/schemas/BankPeerMapping"
    },
    "periods": {
      "type": "array",
      "minItems": 1,
      "maxItems": 8,
      "items": {
        "$ref": "#/components/schemas/BankPeerPeriod"
      },
      "description": "One slot per exact requested quarter in descending order, with no substituted periods"
    }
  }
}
BankPeerCell
{
  "type": "object",
  "additionalProperties": false,
  "description": "Exact normalized decimal string in USD thousands, not a binary-floating-point conversion. Negative values and reported zero are preserved; null is not zero.",
  "required": [
    "value",
    "rawValue",
    "reason"
  ],
  "properties": {
    "value": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 100,
      "pattern": "^-?(0|[1-9][0-9]*)([.][0-9]+)?$"
    },
    "rawValue": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 100
        },
        {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ],
      "description": "Bounded source scalar when safe to retain; unsafe or unsupported source types remain null with an explicit reason"
    },
    "reason": {
      "type": [
        "string",
        "null"
      ],
      "enum": [
        null,
        "missing",
        "unsafe_numeric_value",
        "invalid_value_type",
        "non_numeric_or_suppressed",
        "multiple_records",
        "period_not_returned",
        "provider_or_coverage_unavailable"
      ]
    }
  },
  "allOf": [
    {
      "if": {
        "properties": {
          "value": {
            "type": "null"
          }
        }
      },
      "then": {
        "properties": {
          "reason": {
            "type": "string"
          }
        }
      },
      "else": {
        "properties": {
          "reason": {
            "type": "null"
          },
          "rawValue": {
            "not": {
              "type": "null"
            }
          }
        }
      }
    }
  ]
}
BankPeerCertificate
{
  "type": "string",
  "pattern": "^[1-9][0-9]{0,9}$",
  "description": "Positive canonical FDIC bank certificate string; no leading zeros, not a holding-company RSSD or SEC CIK"
}
BankPeerComparison
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "schemaVersion",
    "request",
    "generatedAt",
    "subject",
    "banks",
    "metrics",
    "provider",
    "coverage",
    "limitations",
    "contentSha256"
  ],
  "properties": {
    "schemaVersion": {
      "type": "string",
      "const": "filingsift-bank-peer-monitor-v1"
    },
    "request": {
      "$ref": "#/components/schemas/BankPeerNormalizedRequest"
    },
    "generatedAt": {
      "type": "string",
      "format": "date-time"
    },
    "subject": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/EntityMatchSubject"
        },
        {
          "type": "null"
        }
      ]
    },
    "banks": {
      "type": "array",
      "minItems": 1,
      "maxItems": 5,
      "items": {
        "$ref": "#/components/schemas/BankPeerBank"
      }
    },
    "metrics": {
      "type": "array",
      "minItems": 4,
      "maxItems": 4,
      "items": {
        "$ref": "#/components/schemas/BankPeerMetric"
      },
      "description": "Ordered ASSET, DEP, LNLSNET and EQ; no derived ratios or flow metrics"
    },
    "provider": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "institutions",
        "financials"
      ],
      "properties": {
        "institutions": {
          "$ref": "#/components/schemas/FdicBankProvider"
        },
        "financials": {
          "$ref": "#/components/schemas/FdicBankProvider"
        }
      }
    },
    "coverage": {
      "$ref": "#/components/schemas/BankPeerCoverage"
    },
    "limitations": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "contentSha256": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$",
      "description": "Canonical hash of this response data excluding this field; includes request, generation time and source receipts, not a provider authenticity signature"
    }
  }
}
BankPeerComparisonRequest
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "certs",
    "reportDate",
    "quarters"
  ],
  "properties": {
    "certs": {
      "type": "array",
      "minItems": 1,
      "maxItems": 5,
      "uniqueItems": true,
      "items": {
        "$ref": "#/components/schemas/BankPeerCertificate"
      }
    },
    "reportDate": {
      "$ref": "#/components/schemas/BankPeerQuarterEnd"
    },
    "quarters": {
      "type": "integer",
      "minimum": 1,
      "maximum": 8,
      "description": "Selected quarter plus this count minus one preceding consecutive quarters; crossing history access is refused, not clamped"
    },
    "issuerTicker": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/BankPeerTicker"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  }
}
BankPeerComparisonResponse
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/BankPeerComparison"
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
BankPeerContext
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "schemaVersion",
    "subject",
    "issuerReview",
    "defaults",
    "limits",
    "limitations"
  ],
  "properties": {
    "schemaVersion": {
      "type": "string",
      "const": "filingsift-bank-peer-context-v1"
    },
    "subject": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/EntityMatchSubject"
        },
        {
          "type": "null"
        }
      ]
    },
    "issuerReview": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/BankPeerIssuerReview"
        },
        {
          "type": "null"
        }
      ]
    },
    "defaults": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "reportDate",
        "quarters"
      ],
      "properties": {
        "reportDate": {
          "$ref": "#/components/schemas/BankPeerQuarterEnd"
        },
        "quarters": {
          "type": "integer",
          "minimum": 1,
          "maximum": 4,
          "description": "Suggested count; comparison still independently enforces every quarter against current history access"
        }
      }
    },
    "limits": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "maxBanks",
        "maxQuarters",
        "historyStart"
      ],
      "properties": {
        "maxBanks": {
          "type": "integer",
          "const": 5
        },
        "maxQuarters": {
          "type": "integer",
          "const": 8
        },
        "historyStart": {
          "type": "string",
          "format": "date"
        }
      }
    },
    "limitations": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
BankPeerContextResponse
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/BankPeerContext"
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
BankPeerCoverage
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "requestedBankCount",
    "requestedPeriodCount",
    "expectedCellCount",
    "reportedCellCount",
    "missingCellCount",
    "conflictCellCount",
    "unavailableCellCount",
    "sourceCompleteness"
  ],
  "description": "Four metric cells per requested CERT and quarter. Counters sum exactly to expectedCellCount; complete accounting of this bounded request does not prove source-universe completeness.",
  "properties": {
    "requestedBankCount": {
      "type": "integer",
      "minimum": 1,
      "maximum": 5
    },
    "requestedPeriodCount": {
      "type": "integer",
      "minimum": 1,
      "maximum": 8
    },
    "expectedCellCount": {
      "type": "integer",
      "minimum": 4,
      "maximum": 160,
      "multipleOf": 4
    },
    "reportedCellCount": {
      "type": "integer",
      "minimum": 0,
      "maximum": 160
    },
    "missingCellCount": {
      "type": "integer",
      "minimum": 0,
      "maximum": 160,
      "description": "Null or blank source fields, or unreturned periods only when available/empty provider metadata positively establishes an untruncated response"
    },
    "conflictCellCount": {
      "type": "integer",
      "minimum": 0,
      "maximum": 160,
      "multipleOf": 4,
      "description": "All four cells of each duplicate CERT-quarter response remain conflicts"
    },
    "unavailableCellCount": {
      "type": "integer",
      "minimum": 0,
      "maximum": 160,
      "description": "Invalid or suppressed source numerics and periods missing under disabled, failed, partial or uncertain coverage"
    },
    "sourceCompleteness": {
      "type": "string",
      "const": "unknown"
    }
  }
}
BankPeerIssuerReview
{
  "type": "object",
  "additionalProperties": false,
  "description": "Existing private review summary only; no notes or historical review artifacts are returned",
  "required": [
    "state",
    "reason",
    "reviewId",
    "reviewContentSha256",
    "reviewedLei"
  ],
  "properties": {
    "state": {
      "type": "string",
      "enum": [
        "confirmed",
        "unresolved"
      ]
    },
    "reason": {
      "type": "string",
      "enum": [
        "not_reviewed",
        "review_source_outside_entitlement",
        "sec_source_changed_since_review",
        "reviewer_confirmed_saved_sources",
        "reviewer_left_unresolved",
        "review_storage_unavailable"
      ]
    },
    "reviewId": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 100
    },
    "reviewContentSha256": {
      "type": [
        "string",
        "null"
      ],
      "pattern": "^[a-f0-9]{64}$"
    },
    "reviewedLei": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/EntityMatchLei"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "allOf": [
    {
      "if": {
        "properties": {
          "state": {
            "const": "confirmed"
          }
        }
      },
      "then": {
        "properties": {
          "reviewId": {
            "type": "string",
            "minLength": 1
          },
          "reviewContentSha256": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$"
          },
          "reviewedLei": {
            "$ref": "#/components/schemas/EntityMatchLei"
          }
        }
      },
      "else": {
        "properties": {
          "reviewId": {
            "type": "null"
          },
          "reviewContentSha256": {
            "type": "null"
          },
          "reviewedLei": {
            "type": "null"
          }
        }
      }
    }
  ]
}
BankPeerMapping
{
  "type": "object",
  "additionalProperties": false,
  "description": "Current source-identifier comparison only; not an official CIK crosswalk, historical relationship, ownership finding or guarantee. Differing valid LEIs remain unmapped, since they can identify legitimately different entities.",
  "required": [
    "state",
    "reason",
    "reviewId",
    "reviewContentSha256",
    "reviewedLei",
    "fdicLei",
    "temporalScope"
  ],
  "properties": {
    "state": {
      "type": "string",
      "enum": [
        "unmapped",
        "identifier_consistent",
        "conflict"
      ]
    },
    "reason": {
      "type": "string",
      "enum": [
        "issuer_context_not_requested",
        "institution_reference_unavailable",
        "current_confirmed_issuer_review_unavailable",
        "fdic_lei_unavailable",
        "identifier_differs",
        "exact_lei_matches_private_review",
        "multiple_institution_records"
      ]
    },
    "reviewId": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 100
    },
    "reviewContentSha256": {
      "type": [
        "string",
        "null"
      ],
      "pattern": "^[a-f0-9]{64}$"
    },
    "reviewedLei": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/EntityMatchLei"
        },
        {
          "type": "null"
        }
      ]
    },
    "fdicLei": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/EntityMatchLei"
        },
        {
          "type": "null"
        }
      ]
    },
    "temporalScope": {
      "type": "string",
      "const": "current_reference_only"
    }
  },
  "allOf": [
    {
      "if": {
        "properties": {
          "state": {
            "const": "identifier_consistent"
          }
        }
      },
      "then": {
        "properties": {
          "reason": {
            "const": "exact_lei_matches_private_review"
          },
          "reviewId": {
            "type": "string",
            "minLength": 1
          },
          "reviewContentSha256": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$"
          },
          "reviewedLei": {
            "$ref": "#/components/schemas/EntityMatchLei"
          },
          "fdicLei": {
            "$ref": "#/components/schemas/EntityMatchLei"
          }
        }
      }
    },
    {
      "if": {
        "properties": {
          "state": {
            "const": "conflict"
          }
        }
      },
      "then": {
        "properties": {
          "reason": {
            "const": "multiple_institution_records"
          },
          "reviewId": {
            "type": "null"
          },
          "reviewContentSha256": {
            "type": "null"
          },
          "reviewedLei": {
            "type": "null"
          },
          "fdicLei": {
            "type": "null"
          }
        }
      }
    }
  ]
}
BankPeerMetric
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "code",
    "label",
    "unit",
    "periodBasis",
    "definitionUrl"
  ],
  "properties": {
    "code": {
      "type": "string",
      "enum": [
        "ASSET",
        "DEP",
        "LNLSNET",
        "EQ"
      ]
    },
    "label": {
      "type": "string",
      "enum": [
        "Total assets",
        "Total deposits",
        "Loans and leases, net",
        "Equity capital"
      ]
    },
    "unit": {
      "type": "string",
      "const": "USD_thousands"
    },
    "periodBasis": {
      "type": "string",
      "const": "period_end"
    },
    "definitionUrl": {
      "type": "string",
      "const": "https://api.fdic.gov/banks/docs/risview_properties.yaml"
    }
  }
}
BankPeerNormalizedRequest
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "certs",
    "reportDate",
    "quarters",
    "issuerTicker",
    "reportDates"
  ],
  "properties": {
    "certs": {
      "type": "array",
      "minItems": 1,
      "maxItems": 5,
      "uniqueItems": true,
      "items": {
        "$ref": "#/components/schemas/BankPeerCertificate"
      }
    },
    "reportDate": {
      "$ref": "#/components/schemas/BankPeerQuarterEnd"
    },
    "quarters": {
      "type": "integer",
      "minimum": 1,
      "maximum": 8
    },
    "issuerTicker": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/BankPeerTicker"
        },
        {
          "type": "null"
        }
      ]
    },
    "reportDates": {
      "type": "array",
      "minItems": 1,
      "maxItems": 8,
      "uniqueItems": true,
      "items": {
        "$ref": "#/components/schemas/BankPeerQuarterEnd"
      },
      "description": "Exact descending consecutive quarters; first equals reportDate and length equals quarters"
    }
  }
}
BankPeerPeriod
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "reportDate",
    "status",
    "observations",
    "values"
  ],
  "properties": {
    "reportDate": {
      "$ref": "#/components/schemas/BankPeerQuarterEnd"
    },
    "status": {
      "type": "string",
      "enum": [
        "reported",
        "missing",
        "conflict",
        "unavailable"
      ]
    },
    "observations": {
      "type": "array",
      "maxItems": 41,
      "items": {
        "$ref": "#/components/schemas/FdicBankFinancialObservation"
      },
      "description": "Retains every returned observation for this CERT and quarter; duplicates are not merged or ranked"
    },
    "values": {
      "$ref": "#/components/schemas/BankPeerValues"
    }
  },
  "allOf": [
    {
      "if": {
        "properties": {
          "status": {
            "const": "reported"
          }
        }
      },
      "then": {
        "properties": {
          "observations": {
            "minItems": 1,
            "maxItems": 1
          }
        }
      }
    },
    {
      "if": {
        "properties": {
          "status": {
            "const": "conflict"
          }
        }
      },
      "then": {
        "properties": {
          "observations": {
            "minItems": 2
          }
        }
      }
    },
    {
      "if": {
        "properties": {
          "status": {
            "enum": [
              "missing",
              "unavailable"
            ]
          }
        }
      },
      "then": {
        "properties": {
          "observations": {
            "maxItems": 0
          }
        }
      }
    }
  ]
}
BankPeerQuarterEnd
{
  "type": "string",
  "format": "date",
  "pattern": "^[0-9]{4}-(03-31|06-30|09-30|12-31)$",
  "description": "Exact calendar-quarter end; comparison requests also enforce current history access and nonfuture dates no earlier than 1992-12-31"
}
BankPeerScreenInput
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "certs"
  ],
  "properties": {
    "reportDate": {
      "oneOf": [
        {
          "const": "latest"
        },
        {
          "type": "string",
          "pattern": "^[0-9]{4}-(03-31|06-30|09-30|12-31)$"
        }
      ],
      "default": "latest"
    },
    "certs": {
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^[1-9][0-9]{0,9}$"
      },
      "minItems": 1,
      "maxItems": 25,
      "uniqueItems": true
    },
    "quarters": {
      "type": "integer",
      "minimum": 1,
      "maximum": 8,
      "default": 1
    }
  }
}
BankPeerSearch
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "schemaVersion",
    "name",
    "institutions",
    "provider"
  ],
  "properties": {
    "schemaVersion": {
      "type": "string",
      "const": "filingsift-bank-search-v1"
    },
    "name": {
      "type": "string",
      "minLength": 2,
      "maxLength": 120
    },
    "institutions": {
      "type": "array",
      "maxItems": 10,
      "items": {
        "$ref": "#/components/schemas/FdicBankInstitution"
      },
      "description": "Name-search candidates, not confirmed issuer identities; no pagination beyond this bounded first response"
    },
    "provider": {
      "$ref": "#/components/schemas/FdicBankProvider"
    }
  }
}
BankPeerSearchRequest
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "minLength": 2,
      "maxLength": 120,
      "description": "Explicit public bank name; trimmed text must have at least two characters. Control characters and unsupported query-angle syntax are rejected; never submit private customer text"
    }
  }
}
BankPeerSearchResponse
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/BankPeerSearch"
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
BankPeerTicker
{
  "type": "string",
  "pattern": "^[A-Z0-9][A-Z0-9.-]{0,15}$"
}
BankPeerValues
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "ASSET",
    "DEP",
    "LNLSNET",
    "EQ"
  ],
  "properties": {
    "ASSET": {
      "$ref": "#/components/schemas/BankPeerCell"
    },
    "DEP": {
      "$ref": "#/components/schemas/BankPeerCell"
    },
    "LNLSNET": {
      "$ref": "#/components/schemas/BankPeerCell"
    },
    "EQ": {
      "$ref": "#/components/schemas/BankPeerCell"
    }
  }
}
BankScreenCatalogResponse
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "schemaVersion",
        "status",
        "metrics",
        "limits",
        "limitations"
      ],
      "properties": {
        "schemaVersion": {
          "const": "filingsift-bank-screen-catalog-v1"
        },
        "status": {
          "enum": [
            "available",
            "rights_review_required"
          ]
        },
        "metrics": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/BankScreenMetric"
          },
          "minItems": 16,
          "maxItems": 16
        },
        "limits": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "maxPeers",
            "maxQuarters",
            "pageSize",
            "maxRanges"
          ],
          "properties": {
            "maxPeers": {
              "const": 25
            },
            "maxQuarters": {
              "const": 8
            },
            "pageSize": {
              "const": 50
            },
            "maxRanges": {
              "const": 6
            }
          }
        },
        "limitations": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
BankScreenCell
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "rawValue",
    "value",
    "reason"
  ],
  "properties": {
    "rawValue": {
      "type": [
        "string",
        "number",
        "null"
      ]
    },
    "value": {
      "anyOf": [
        {
          "type": "string",
          "pattern": "^-?(0|[1-9][0-9]{0,17})(\\.[0-9]{1,18})?$"
        },
        {
          "type": "null"
        }
      ]
    },
    "reason": {
      "enum": [
        null,
        "missing",
        "unsafe_numeric_value",
        "invalid_value",
        "non_numeric_or_suppressed"
      ]
    }
  }
}
BankScreenData
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "schemaVersion",
    "kind",
    "request",
    "status",
    "metrics",
    "records",
    "missing",
    "hasMore",
    "nextCursor",
    "remainingMatchCount",
    "receipts",
    "rightsReviewId",
    "source",
    "license",
    "gaps",
    "limitations",
    "contentSha256"
  ],
  "properties": {
    "schemaVersion": {
      "const": "filingsift-bank-screen-v1"
    },
    "kind": {
      "enum": [
        "screen",
        "compare"
      ]
    },
    "request": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "kind",
        "reportDate",
        "reportDates"
      ],
      "properties": {
        "reportDate": {
          "type": "string",
          "pattern": "^[0-9]{4}-(03-31|06-30|09-30|12-31)$"
        },
        "name": {
          "type": "string",
          "maxLength": 120
        },
        "state": {
          "type": "string",
          "pattern": "^([A-Z]{2})?$"
        },
        "active": {
          "enum": [
            "all",
            "active",
            "inactive"
          ],
          "default": "all"
        },
        "ranges": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/BankScreenRange"
          },
          "maxItems": 6
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 50,
          "default": 50
        },
        "certs": {
          "type": "array",
          "items": {
            "type": "string",
            "pattern": "^[1-9][0-9]{0,9}$"
          },
          "minItems": 1,
          "maxItems": 25,
          "uniqueItems": true
        },
        "quarters": {
          "type": "integer",
          "minimum": 1,
          "maximum": 8,
          "default": 1
        },
        "kind": {
          "enum": [
            "screen",
            "compare"
          ]
        },
        "reportDates": {
          "type": "array",
          "items": {
            "type": "string",
            "pattern": "^[0-9]{4}-(03-31|06-30|09-30|12-31)$"
          },
          "minItems": 1,
          "maxItems": 8
        }
      }
    },
    "status": {
      "enum": [
        "available",
        "partial",
        "empty"
      ]
    },
    "metrics": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/BankScreenMetric"
      },
      "minItems": 16,
      "maxItems": 16
    },
    "records": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/BankScreenRecord"
      },
      "maxItems": 200
    },
    "missing": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "cert",
          "reportDate",
          "reason"
        ],
        "properties": {
          "cert": {
            "type": "string",
            "pattern": "^[1-9][0-9]{0,9}$"
          },
          "reportDate": {
            "type": "string",
            "pattern": "^[0-9]{4}-(03-31|06-30|09-30|12-31)$"
          },
          "reason": {
            "const": "not_returned"
          }
        }
      },
      "maxItems": 200
    },
    "hasMore": {
      "type": "boolean"
    },
    "nextCursor": {
      "type": [
        "string",
        "null"
      ]
    },
    "remainingMatchCount": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 0
    },
    "receipts": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/BankScreenReceipt"
      },
      "minItems": 1,
      "maxItems": 2
    },
    "rightsReviewId": {
      "type": "string"
    },
    "source": {
      "const": "FDIC BankFind Suite"
    },
    "license": {
      "const": "US-PUBLIC-DOMAIN"
    },
    "gaps": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "limitations": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "contentSha256": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    }
  }
}
BankScreenInput
{
  "type": "object",
  "additionalProperties": false,
  "required": [],
  "properties": {
    "reportDate": {
      "oneOf": [
        {
          "const": "latest"
        },
        {
          "type": "string",
          "pattern": "^[0-9]{4}-(03-31|06-30|09-30|12-31)$"
        }
      ],
      "default": "latest"
    },
    "name": {
      "type": "string",
      "maxLength": 120
    },
    "state": {
      "type": "string",
      "pattern": "^([A-Z]{2})?$"
    },
    "active": {
      "enum": [
        "all",
        "active",
        "inactive"
      ],
      "default": "all"
    },
    "ranges": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/BankScreenRange"
      },
      "maxItems": 6
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "default": 50
    },
    "cursor": {
      "type": [
        "string",
        "null"
      ]
    }
  }
}
BankScreenMetric
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "code",
    "label",
    "unit",
    "periodBasis",
    "definitionUrl"
  ],
  "properties": {
    "code": {
      "type": "string",
      "enum": [
        "ASSET",
        "DEP",
        "LNLSNET",
        "EQ",
        "DEPDOM",
        "NETINC",
        "ROA",
        "ROE",
        "NCLNLSR",
        "RBCT1CER",
        "DEPUNINS",
        "NCLNLS",
        "LNRENRES",
        "LNRECONS",
        "LNREMULT",
        "LNLSGR"
      ]
    },
    "label": {
      "type": "string"
    },
    "unit": {
      "enum": [
        "USD_thousands",
        "percent"
      ]
    },
    "periodBasis": {
      "enum": [
        "period_end",
        "year_to_date",
        "annualized"
      ]
    },
    "definitionUrl": {
      "type": "string",
      "format": "uri"
    }
  }
}
BankScreenRange
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "metric"
  ],
  "properties": {
    "metric": {
      "enum": [
        "ASSET",
        "DEP",
        "LNLSNET",
        "EQ",
        "DEPDOM",
        "NETINC",
        "ROA",
        "ROE",
        "NCLNLSR",
        "RBCT1CER",
        "DEPUNINS",
        "NCLNLS",
        "LNRENRES",
        "LNRECONS",
        "LNREMULT",
        "LNLSGR"
      ]
    },
    "min": {
      "anyOf": [
        {
          "type": "string",
          "pattern": "^-?(0|[1-9][0-9]{0,17})(\\.[0-9]{1,18})?$"
        },
        {
          "type": "null"
        }
      ]
    },
    "max": {
      "anyOf": [
        {
          "type": "string",
          "pattern": "^-?(0|[1-9][0-9]{0,17})(\\.[0-9]{1,18})?$"
        },
        {
          "type": "null"
        }
      ]
    }
  }
}
BankScreenReceipt
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "sourceUrl",
    "retrievedAt",
    "sourceResponseSha256",
    "indexName",
    "indexCreatedAt"
  ],
  "properties": {
    "sourceUrl": {
      "type": "string",
      "format": "uri"
    },
    "retrievedAt": {
      "type": "string",
      "format": "date-time"
    },
    "sourceResponseSha256": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    },
    "indexName": {
      "type": [
        "string",
        "null"
      ]
    },
    "indexCreatedAt": {
      "type": [
        "string",
        "null"
      ]
    }
  }
}
BankScreenRecord
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "cert",
    "name",
    "reportDate",
    "state",
    "active",
    "consolidatedCert",
    "parentCert",
    "values",
    "sourceUrl",
    "sourceResponseSha256",
    "retrievedAt",
    "verificationState"
  ],
  "properties": {
    "cert": {
      "type": "string",
      "pattern": "^[1-9][0-9]{0,9}$"
    },
    "name": {
      "type": "string"
    },
    "reportDate": {
      "type": "string",
      "pattern": "^[0-9]{4}-(03-31|06-30|09-30|12-31)$"
    },
    "state": {
      "type": [
        "string",
        "null"
      ]
    },
    "active": {
      "type": [
        "boolean",
        "null"
      ]
    },
    "consolidatedCert": {
      "anyOf": [
        {
          "type": "string",
          "pattern": "^[1-9][0-9]{0,9}$"
        },
        {
          "type": "null"
        }
      ]
    },
    "parentCert": {
      "anyOf": [
        {
          "type": "string",
          "pattern": "^[1-9][0-9]{0,9}$"
        },
        {
          "type": "null"
        }
      ]
    },
    "values": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "ASSET",
        "DEP",
        "LNLSNET",
        "EQ",
        "DEPDOM",
        "NETINC",
        "ROA",
        "ROE",
        "NCLNLSR",
        "RBCT1CER",
        "DEPUNINS",
        "NCLNLS",
        "LNRENRES",
        "LNRECONS",
        "LNREMULT",
        "LNLSGR"
      ],
      "properties": {
        "ASSET": {
          "$ref": "#/components/schemas/BankScreenCell"
        },
        "DEP": {
          "$ref": "#/components/schemas/BankScreenCell"
        },
        "LNLSNET": {
          "$ref": "#/components/schemas/BankScreenCell"
        },
        "EQ": {
          "$ref": "#/components/schemas/BankScreenCell"
        },
        "DEPDOM": {
          "$ref": "#/components/schemas/BankScreenCell"
        },
        "NETINC": {
          "$ref": "#/components/schemas/BankScreenCell"
        },
        "ROA": {
          "$ref": "#/components/schemas/BankScreenCell"
        },
        "ROE": {
          "$ref": "#/components/schemas/BankScreenCell"
        },
        "NCLNLSR": {
          "$ref": "#/components/schemas/BankScreenCell"
        },
        "RBCT1CER": {
          "$ref": "#/components/schemas/BankScreenCell"
        },
        "DEPUNINS": {
          "$ref": "#/components/schemas/BankScreenCell"
        },
        "NCLNLS": {
          "$ref": "#/components/schemas/BankScreenCell"
        },
        "LNRENRES": {
          "$ref": "#/components/schemas/BankScreenCell"
        },
        "LNRECONS": {
          "$ref": "#/components/schemas/BankScreenCell"
        },
        "LNREMULT": {
          "$ref": "#/components/schemas/BankScreenCell"
        },
        "LNLSGR": {
          "$ref": "#/components/schemas/BankScreenCell"
        }
      }
    },
    "sourceUrl": {
      "type": "string",
      "format": "uri"
    },
    "sourceResponseSha256": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    },
    "retrievedAt": {
      "type": "string",
      "format": "date-time"
    },
    "verificationState": {
      "const": "source_reported"
    }
  }
}
BankScreenResponse
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/BankScreenData"
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
BillingAccess
{
  "type": "object",
  "required": [
    "requestedPlanKey",
    "effectivePlanKey",
    "status",
    "entitled"
  ],
  "properties": {
    "requestedPlanKey": {
      "$ref": "#/components/schemas/PlanKey"
    },
    "effectivePlanKey": {
      "$ref": "#/components/schemas/PlanKey"
    },
    "status": {
      "type": "string"
    },
    "entitled": {
      "type": "boolean"
    },
    "reason": {
      "type": [
        "string",
        "null"
      ]
    },
    "currentPeriodEnd": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "cancelAtPeriodEnd": {
      "type": "boolean"
    },
    "graceEndsAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "subscription": {
      "oneOf": [
        {
          "$ref": "#/components/schemas/BillingSubscription"
        },
        {
          "type": "null"
        }
      ]
    }
  }
}
BillingCatalog
{
  "type": "object",
  "required": [
    "modelVersion",
    "pricingStatus",
    "packagingModel",
    "billingInterval",
    "primaryMetric",
    "capabilityGroups",
    "comparisonMetrics",
    "dataRights",
    "providerEnabled",
    "seatBillingEnabled",
    "plans"
  ],
  "properties": {
    "modelVersion": {
      "type": "string"
    },
    "pricingStatus": {
      "type": "string",
      "enum": [
        "available",
        "unavailable"
      ]
    },
    "packagingModel": {
      "type": "string",
      "const": "shared_capabilities_capacity_tiers"
    },
    "billingInterval": {
      "type": "string",
      "const": "month"
    },
    "primaryMetric": {
      "type": "string",
      "const": "monitored_companies"
    },
    "capabilityGroups": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "key",
          "label",
          "summary",
          "items"
        ],
        "properties": {
          "key": {
            "type": "string",
            "enum": [
              "research",
              "financing",
              "workflow",
              "trust"
            ]
          },
          "label": {
            "type": "string"
          },
          "summary": {
            "type": "string"
          },
          "items": {
            "type": "array",
            "minItems": 1,
            "items": {
              "type": "string"
            }
          }
        }
      }
    },
    "comparisonMetrics": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "key",
          "group",
          "label",
          "format",
          "enforced"
        ],
        "properties": {
          "key": {
            "type": "string",
            "enum": [
              "companyLimit",
              "onboardingHistoryDays",
              "pendingOnboardingLimit",
              "monthlyRequests",
              "monthlyQueryCost",
              "memberLimit",
              "activeApiKeyLimit",
              "activeSessionLimit"
            ]
          },
          "group": {
            "type": "string",
            "enum": [
              "Coverage",
              "Processing",
              "Usage",
              "Workspace"
            ]
          },
          "label": {
            "type": "string"
          },
          "format": {
            "type": "string",
            "enum": [
              "integer",
              "duration_days"
            ]
          },
          "enforced": {
            "type": "boolean",
            "const": true
          }
        }
      }
    },
    "guardrails": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "eventDeliveryMeteredSeparately": {
      "type": "boolean"
    },
    "historicalBackfills": {
      "type": "string"
    },
    "redistribution": {
      "type": "string"
    },
    "dataRights": {
      "type": "object",
      "additionalProperties": true,
      "description": "Same machine-readable license-free source boundary published by /meta."
    },
    "providerEnabled": {
      "type": "boolean"
    },
    "seatBillingEnabled": {
      "type": "boolean",
      "description": "True only when an approved separate additional-seat Stripe Price is configured."
    },
    "plans": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/BillingPlan"
      }
    }
  }
}
BillingCatalogResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/BillingCatalog"
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
BillingPlan
{
  "allOf": [
    {
      "$ref": "#/components/schemas/Plan"
    },
    {
      "type": "object",
      "required": [
        "displayName",
        "monthlyPriceCents",
        "currency",
        "audience",
        "summary",
        "recommended",
        "purchaseAvailable"
      ],
      "properties": {
        "displayName": {
          "type": "string"
        },
        "monthlyPriceCents": {
          "type": "integer",
          "minimum": 0
        },
        "currency": {
          "type": "string",
          "const": "USD"
        },
        "audience": {
          "type": "string"
        },
        "summary": {
          "type": "string"
        },
        "recommended": {
          "type": "boolean"
        },
        "purchaseAvailable": {
          "type": "boolean"
        },
        "coverageScope": {
          "type": "string",
          "enum": [
            "all_indexed_filings_for_permitted_companies"
          ]
        },
        "backfillReviewRequired": {
          "type": "boolean",
          "description": "Whether standard bounded company retrieval requires review; currently false on all self-service plans."
        },
        "purchaseReviewRequired": {
          "type": "boolean",
          "description": "Whether checkout requires a separate review; currently false for published plans."
        },
        "purchaseAvailabilityReason": {
          "type": [
            "string",
            "null"
          ],
          "enum": [
            null
          ]
        }
      }
    }
  ]
}
BillingSubscription
{
  "type": "object",
  "properties": {
    "orgId": {
      "type": "string",
      "format": "uuid"
    },
    "planKey": {
      "$ref": "#/components/schemas/PlanKey"
    },
    "status": {
      "type": "string",
      "enum": [
        "active",
        "trialing",
        "past_due",
        "incomplete",
        "canceled",
        "unpaid"
      ]
    },
    "currentPeriodEnd": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "cancelAtPeriodEnd": {
      "type": "boolean"
    },
    "graceEndsAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "seatQuantity": {
      "type": "integer",
      "minimum": 1
    }
  }
}
C (11)
Category
{
  "type": "string",
  "enum": [
    "debt",
    "liquidity",
    "covenant",
    "going_concern"
  ]
}
Company
{
  "type": "object",
  "required": [
    "ticker",
    "name",
    "sector",
    "status",
    "summary",
    "liquidity",
    "debt"
  ],
  "properties": {
    "ticker": {
      "type": "string"
    },
    "cik": {
      "type": "string",
      "description": "Present for live SEC issuers and omitted for clearly labeled illustrative workflow records."
    },
    "name": {
      "type": "string"
    },
    "sector": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "summary": {
      "type": "string"
    },
    "liquidity": {
      "type": "object",
      "additionalProperties": {
        "type": [
          "number",
          "null"
        ]
      }
    },
    "debt": {
      "type": "object",
      "additionalProperties": {
        "type": [
          "number",
          "null"
        ]
      }
    },
    "intelligence": {
      "type": "object",
      "additionalProperties": true
    },
    "filingCount": {
      "type": "integer"
    },
    "latestFiling": {
      "type": "object",
      "additionalProperties": true
    },
    "events": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Event"
      }
    },
    "disclaimer": {
      "type": "string"
    }
  }
}
CompanyDetailResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/Company"
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
CompanyListResponse
{
  "$ref": "#/components/schemas/CompanyPage"
}
CompanyPage
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Company"
      }
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
Comparison
{
  "type": "object",
  "required": [
    "previousAccession",
    "currentAccession",
    "conceptKey",
    "method",
    "verification"
  ],
  "properties": {
    "previousAccession": {
      "type": "string"
    },
    "currentAccession": {
      "type": "string"
    },
    "conceptKey": {
      "type": "string"
    },
    "method": {
      "type": "string"
    },
    "verification": {
      "$ref": "#/components/schemas/VerificationState"
    }
  }
}
ComparisonMatrixRequest
{
  "type": "object",
  "required": [
    "tickers",
    "metrics"
  ],
  "properties": {
    "tickers": {
      "type": "array",
      "minItems": 1,
      "maxItems": 20,
      "items": {
        "type": "string"
      }
    },
    "metrics": {
      "type": "array",
      "minItems": 1,
      "maxItems": 10,
      "items": {
        "type": "string",
        "enum": [
          "total_debt",
          "cash_and_cash_equivalents",
          "revolver_capacity",
          "revolver_drawn",
          "revolver_availability",
          "nearest_maturity",
          "nearest_maturity_amount",
          "lifecycle_event",
          "minimum_liquidity",
          "leverage_covenant",
          "coverage_covenant",
          "covenant_event",
          "default_event"
        ]
      }
    },
    "filters": {
      "$ref": "#/components/schemas/SearchFilters"
    }
  }
}
Covenant
{
  "type": "object",
  "required": [
    "id",
    "issuer",
    "covenantType",
    "category",
    "action",
    "effectiveDate",
    "source"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "issuer": {
      "$ref": "#/components/schemas/IssuerIdentity"
    },
    "covenantType": {
      "type": "string"
    },
    "category": {
      "$ref": "#/components/schemas/Category"
    },
    "action": {
      "type": "string"
    },
    "threshold": {
      "type": [
        "number",
        "null"
      ]
    },
    "ratio": {
      "type": [
        "number",
        "null"
      ]
    },
    "comparator": {
      "type": [
        "string",
        "null"
      ]
    },
    "currency": {
      "type": [
        "string",
        "null"
      ]
    },
    "uncertainty": {
      "oneOf": [
        {
          "$ref": "#/components/schemas/Uncertainty"
        },
        {
          "type": "null"
        }
      ]
    },
    "effectiveDate": {
      "type": "string",
      "format": "date"
    },
    "source": {
      "$ref": "#/components/schemas/Source"
    }
  }
}
CovenantListResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Covenant"
      }
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
CoverageCompany
{
  "type": "object",
  "required": [
    "ticker",
    "coverageStatus",
    "freshnessStatus",
    "filingCount",
    "comparisonCount",
    "forms",
    "verificationStates",
    "latestFiling",
    "onboarding"
  ],
  "properties": {
    "ticker": {
      "type": "string"
    },
    "cik": {
      "type": [
        "string",
        "null"
      ]
    },
    "name": {
      "type": [
        "string",
        "null"
      ]
    },
    "coverageStatus": {
      "type": "string",
      "enum": [
        "indexed",
        "indexed_partial",
        "indexing",
        "not_indexed",
        "no_supported_documents",
        "processing_failed"
      ]
    },
    "freshnessStatus": {
      "type": "object",
      "required": [
        "status",
        "delayed",
        "reasons"
      ],
      "properties": {
        "status": {
          "type": "string",
          "enum": [
            "current",
            "delayed",
            "unknown"
          ]
        },
        "delayed": {
          "type": "boolean"
        },
        "reasons": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "poll_failures",
              "pending_over_60_minutes",
              "poll_overdue"
            ]
          }
        }
      }
    },
    "filingCount": {
      "type": "integer",
      "minimum": 0
    },
    "comparisonCount": {
      "type": "integer",
      "minimum": 0
    },
    "forms": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "verificationStates": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/VerificationState"
      }
    },
    "latestFiling": {
      "type": [
        "object",
        "null"
      ],
      "additionalProperties": true
    },
    "onboarding": {
      "$ref": "#/components/schemas/IssuerOnboarding"
    }
  }
}
CoverageResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "type": "object",
      "required": [
        "configuredCompanyCount",
        "indexedCompanyCount",
        "delayedCompanyCount",
        "filingCount",
        "comparisonCount",
        "latestFiledAt",
        "latestIngestedAt",
        "coverageStatusCounts",
        "onboardingCounts",
        "missingTickers",
        "companies"
      ],
      "properties": {
        "configuredCompanyCount": {
          "type": "integer",
          "minimum": 0
        },
        "indexedCompanyCount": {
          "type": "integer",
          "minimum": 0
        },
        "delayedCompanyCount": {
          "type": "integer",
          "minimum": 0
        },
        "filingCount": {
          "type": "integer",
          "minimum": 0
        },
        "comparisonCount": {
          "type": "integer",
          "minimum": 0
        },
        "latestFiledAt": {
          "type": [
            "string",
            "null"
          ],
          "format": "date"
        },
        "latestIngestedAt": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "onboardingCounts": {
          "type": "object",
          "additionalProperties": {
            "type": "integer",
            "minimum": 0
          }
        },
        "coverageStatusCounts": {
          "type": "object",
          "additionalProperties": {
            "type": "integer",
            "minimum": 0
          }
        },
        "missingTickers": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "companies": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/CoverageCompany"
          }
        }
      }
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
D (9)
DebtAgreementReference
{
  "type": "object",
  "description": "Retained extraction reference, not verified legal identity or effect. Incomplete or uncertain reference metadata remains unresolved rather than being completed by inference.",
  "additionalProperties": true,
  "properties": {
    "referenceId": {
      "type": "string"
    },
    "agreement": {
      "type": "object",
      "properties": {
        "kind": {
          "type": "string",
          "enum": [
            "credit_agreement",
            "loan_agreement",
            "indenture"
          ]
        },
        "reportedTitle": {
          "type": "string"
        },
        "dated": {
          "type": [
            "string",
            "null"
          ],
          "format": "date"
        },
        "dateText": {
          "type": [
            "string",
            "null"
          ]
        }
      }
    },
    "relation": {
      "type": "string",
      "enum": [
        "amends",
        "refinances",
        "references"
      ]
    },
    "amendmentLabel": {
      "type": [
        "string",
        "null"
      ]
    },
    "occurrence": {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "enum": [
            "reported_action",
            "reference_only",
            "uncertain"
          ]
        },
        "reason": {
          "type": "string"
        }
      }
    },
    "eventDate": {
      "type": [
        "string",
        "null"
      ],
      "format": "date"
    },
    "eventDateText": {
      "type": [
        "string",
        "null"
      ]
    },
    "isDocumentIdentityCandidate": {
      "type": "boolean"
    },
    "evidence": {
      "type": "string"
    },
    "evidenceSha256": {
      "type": "string",
      "pattern": "^[A-Fa-f0-9]{64}$"
    },
    "locator": {
      "type": "object",
      "additionalProperties": true
    },
    "verification": {
      "type": "string"
    }
  }
}
DebtAmendmentHistory
{
  "type": "object",
  "description": "Bounded observed history, not a complete legal archive, complete SEC denominator, frozen edition, or authoritative current balance. Identity and relation status are never automatically verified.",
  "required": [
    "schemaVersion",
    "issuer",
    "coverage",
    "joinDiagnostics",
    "documents",
    "observations",
    "relationships",
    "agreementHistories",
    "instrumentHistories",
    "timeline",
    "gaps",
    "bounds",
    "limitations"
  ],
  "properties": {
    "schemaVersion": {
      "type": "string",
      "const": "filingsift-debt-amendment-history-v1"
    },
    "issuer": {
      "type": "object",
      "required": [
        "ticker",
        "cik",
        "name"
      ],
      "properties": {
        "ticker": {
          "type": "string"
        },
        "cik": {
          "type": [
            "string",
            "null"
          ],
          "pattern": "^[0-9]{10}$"
        },
        "name": {
          "type": [
            "string",
            "null"
          ]
        }
      }
    },
    "coverage": {
      "type": "object",
      "description": "Counts describe selected stored filings and retained documents/observations/relationships. Known gaps may exceed the returned gap sample. None is an exhaustive SEC or agreement denominator.",
      "required": [
        "filingCount",
        "firstFiledAt",
        "lastFiledAt",
        "documentCount",
        "agreementDocumentCount",
        "agreementHistoryCount",
        "instrumentHistoryCount",
        "observationCount",
        "relationshipCount",
        "candidateRelationshipCount",
        "unresolvedRelationshipCount",
        "missingExtractionDocumentCount",
        "referenceExtractionUnavailableDocumentCount",
        "referenceExtractionTruncatedDocumentCount",
        "knownGapCount",
        "expectedFilingCount"
      ],
      "properties": {
        "filingCount": {
          "type": "integer",
          "minimum": 0,
          "maximum": 100
        },
        "firstFiledAt": {
          "type": [
            "string",
            "null"
          ],
          "format": "date"
        },
        "lastFiledAt": {
          "type": [
            "string",
            "null"
          ],
          "format": "date"
        },
        "documentCount": {
          "type": "integer",
          "minimum": 0,
          "maximum": 400
        },
        "agreementDocumentCount": {
          "type": "integer",
          "minimum": 0,
          "maximum": 400
        },
        "agreementHistoryCount": {
          "type": "integer",
          "minimum": 0,
          "maximum": 400
        },
        "instrumentHistoryCount": {
          "type": "integer",
          "minimum": 0,
          "maximum": 1000
        },
        "observationCount": {
          "type": "integer",
          "minimum": 0,
          "maximum": 1000
        },
        "relationshipCount": {
          "type": "integer",
          "minimum": 0,
          "maximum": 1000
        },
        "candidateRelationshipCount": {
          "type": "integer",
          "minimum": 0,
          "maximum": 1000
        },
        "unresolvedRelationshipCount": {
          "type": "integer",
          "minimum": 0,
          "maximum": 1000
        },
        "missingExtractionDocumentCount": {
          "type": "integer",
          "minimum": 0
        },
        "referenceExtractionUnavailableDocumentCount": {
          "type": "integer",
          "minimum": 0
        },
        "referenceExtractionTruncatedDocumentCount": {
          "type": "integer",
          "minimum": 0
        },
        "knownGapCount": {
          "type": "integer",
          "minimum": 0
        },
        "expectedFilingCount": {
          "type": "null",
          "description": "Complete SEC filing and agreement denominator is unknown"
        }
      }
    },
    "joinDiagnostics": {
      "type": "object",
      "description": "Candidate-link diagnostics only; false/missed join counts remain null until a human-labeled benchmark exists",
      "required": [
        "measurementState",
        "candidateJoinCount",
        "unresolvedReferenceCount",
        "ambiguousTargetCount",
        "missingTargetCount",
        "falsePositiveCount",
        "missedJoinCount"
      ],
      "properties": {
        "measurementState": {
          "type": "string",
          "const": "candidate_links_not_human_labeled"
        },
        "candidateJoinCount": {
          "type": "integer",
          "minimum": 0
        },
        "unresolvedReferenceCount": {
          "type": "integer",
          "minimum": 0
        },
        "ambiguousTargetCount": {
          "type": "integer",
          "minimum": 0
        },
        "missingTargetCount": {
          "type": "integer",
          "minimum": 0
        },
        "falsePositiveCount": {
          "type": "null"
        },
        "missedJoinCount": {
          "type": "null"
        }
      }
    },
    "documents": {
      "type": "array",
      "maxItems": 400,
      "items": {
        "$ref": "#/components/schemas/DebtHistoryDocument"
      }
    },
    "observations": {
      "type": "array",
      "maxItems": 1000,
      "items": {
        "$ref": "#/components/schemas/DebtHistoryObservation"
      }
    },
    "relationships": {
      "type": "array",
      "maxItems": 1000,
      "items": {
        "$ref": "#/components/schemas/DebtHistoryRelationship"
      }
    },
    "agreementHistories": {
      "type": "array",
      "maxItems": 400,
      "items": {
        "type": "object",
        "required": [
          "historyId",
          "agreementDocumentId",
          "agreementIdentityCandidates",
          "relationshipIds",
          "status"
        ],
        "properties": {
          "historyId": {
            "type": "string"
          },
          "agreementDocumentId": {
            "type": "string"
          },
          "agreementIdentityCandidates": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "relationshipIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "status": {
            "type": "string",
            "enum": [
              "candidate",
              "observed_without_linked_action"
            ]
          }
        }
      }
    },
    "instrumentHistories": {
      "type": "array",
      "maxItems": 1000,
      "items": {
        "type": "object",
        "required": [
          "historyId",
          "identity",
          "observationIds",
          "documentIds",
          "firstObservedFiledAt",
          "lastObservedFiledAt",
          "continuityRelationshipIds",
          "continuityState"
        ],
        "properties": {
          "historyId": {
            "type": "string"
          },
          "identity": {
            "$ref": "#/components/schemas/DebtHistoryIdentity"
          },
          "observationIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "documentIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "firstObservedFiledAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date"
          },
          "lastObservedFiledAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date"
          },
          "continuityRelationshipIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "continuityState": {
            "type": "string",
            "enum": [
              "candidate_continuity",
              "single_observation",
              "unresolved_identity"
            ]
          }
        }
      }
    },
    "timeline": {
      "type": "array",
      "maxItems": 100,
      "items": {
        "type": "object",
        "required": [
          "filedAt",
          "accession",
          "documentIds",
          "observationIds"
        ],
        "properties": {
          "filedAt": {
            "type": "string",
            "format": "date"
          },
          "accession": {
            "type": "string"
          },
          "documentIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "observationIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      }
    },
    "gaps": {
      "type": "array",
      "maxItems": 200,
      "items": {
        "type": "object",
        "required": [
          "reason",
          "documentId",
          "observationId"
        ],
        "properties": {
          "reason": {
            "type": "string"
          },
          "documentId": {
            "type": [
              "string",
              "null"
            ]
          },
          "observationId": {
            "type": [
              "string",
              "null"
            ]
          }
        }
      }
    },
    "bounds": {
      "type": "object",
      "description": "Independent processing/response bounds within the selected input. A truncated document collection also prevents inspection of its omitted observations; observed counts are not universe totals.",
      "required": [
        "maximumFilings",
        "requestedFilings",
        "historyStart",
        "inputTruncated",
        "filingLimitReached",
        "maximumDocuments",
        "observedDocumentCount",
        "documentsTruncated",
        "maximumObservations",
        "observedObservationCount",
        "observationsTruncated",
        "maximumRelationships",
        "observedRelationshipCount",
        "relationshipsTruncated",
        "maximumGaps",
        "returnedGapCount",
        "gapsTruncated"
      ],
      "properties": {
        "maximumFilings": {
          "type": "integer",
          "const": 100
        },
        "requestedFilings": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100
        },
        "historyStart": {
          "type": [
            "string",
            "null"
          ],
          "format": "date"
        },
        "inputTruncated": {
          "type": "boolean"
        },
        "filingLimitReached": {
          "type": "boolean"
        },
        "maximumDocuments": {
          "type": "integer",
          "const": 400
        },
        "observedDocumentCount": {
          "type": "integer",
          "minimum": 0
        },
        "documentsTruncated": {
          "type": "boolean"
        },
        "maximumObservations": {
          "type": "integer",
          "const": 1000
        },
        "observedObservationCount": {
          "type": "integer",
          "minimum": 0
        },
        "observationsTruncated": {
          "type": "boolean"
        },
        "maximumRelationships": {
          "type": "integer",
          "const": 1000
        },
        "observedRelationshipCount": {
          "type": "integer",
          "minimum": 0
        },
        "relationshipsTruncated": {
          "type": "boolean"
        },
        "maximumGaps": {
          "type": "integer",
          "const": 200
        },
        "returnedGapCount": {
          "type": "integer",
          "minimum": 0,
          "maximum": 200
        },
        "gapsTruncated": {
          "type": "boolean"
        }
      }
    },
    "limitations": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
DebtAmendmentHistoryResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/DebtAmendmentHistory"
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
DebtHistoryDocument
{
  "type": "object",
  "required": [
    "documentId",
    "kind",
    "name",
    "documentType",
    "materialCategory",
    "extractionState",
    "referenceExtractionState",
    "referenceCoverage",
    "agreementIdentityCandidates",
    "source"
  ],
  "properties": {
    "documentId": {
      "type": "string"
    },
    "kind": {
      "type": "string",
      "enum": [
        "primary",
        "material_exhibit"
      ]
    },
    "name": {
      "type": [
        "string",
        "null"
      ]
    },
    "documentType": {
      "type": [
        "string",
        "null"
      ]
    },
    "materialCategory": {
      "type": [
        "string",
        "null"
      ]
    },
    "extractionState": {
      "type": "string",
      "enum": [
        "available",
        "missing"
      ]
    },
    "referenceExtractionState": {
      "type": "string",
      "enum": [
        "available",
        "unavailable"
      ]
    },
    "referenceCoverage": {
      "type": [
        "object",
        "null"
      ],
      "description": "Retained bounded-parser coverage; absent output is unknown, not a successful empty extraction",
      "additionalProperties": true,
      "properties": {
        "totalBlockCount": {
          "type": "integer",
          "minimum": 0
        },
        "scannedBlockCount": {
          "type": "integer",
          "minimum": 0
        },
        "maximumBlocks": {
          "type": "integer",
          "const": 2000
        },
        "maximumReferences": {
          "type": "integer",
          "const": 200
        },
        "maximumBlockCharacters": {
          "type": "integer",
          "const": 12000
        },
        "oversizedBlockCount": {
          "type": "integer",
          "minimum": 0
        },
        "invalidDateReferenceCount": {
          "type": "integer",
          "minimum": 0
        },
        "referenceLimitReached": {
          "type": "boolean"
        },
        "blockLimitReached": {
          "type": "boolean"
        },
        "truncated": {
          "type": "boolean"
        }
      }
    },
    "agreementIdentityCandidates": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "agreement",
          "sourceObservationId",
          "status",
          "method"
        ],
        "properties": {
          "agreement": {
            "type": "object",
            "additionalProperties": true
          },
          "sourceObservationId": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "const": "candidate"
          },
          "method": {
            "type": "string",
            "const": "explicit_dated_agreement_header_candidate_v1"
          }
        }
      }
    },
    "source": {
      "$ref": "#/components/schemas/DebtHistorySource"
    }
  }
}
DebtHistoryIdentity
{
  "type": "object",
  "description": "Candidate grouping requires explicit binding, known issuer CIK, non-rejected evidence, a canonical key, and a note/bond/debenture name with exactly one numeric coupon and exactly one 20xx year stated as its due-date. Exact normalized identities remain candidates; generic or named facilities remain unresolved. Dated agreement-document target matching is separate and does not resolve balance instrument identity.",
  "required": [
    "status",
    "method",
    "reason",
    "canonicalKey",
    "reportedName"
  ],
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "candidate",
        "unresolved"
      ]
    },
    "method": {
      "type": [
        "string",
        "null"
      ]
    },
    "reason": {
      "type": "string"
    },
    "canonicalKey": {
      "type": [
        "string",
        "null"
      ]
    },
    "reportedName": {
      "type": [
        "string",
        "null"
      ]
    },
    "components": {
      "type": [
        "object",
        "null"
      ],
      "description": "Transparently parsed candidate components; null for unresolved generic identities",
      "properties": {
        "couponText": {
          "type": [
            "string",
            "null"
          ]
        },
        "dueYear": {
          "type": [
            "integer",
            "null"
          ]
        },
        "securityType": {
          "type": [
            "string",
            "null"
          ]
        }
      }
    }
  }
}
DebtHistoryObservation
{
  "type": "object",
  "required": [
    "observationId",
    "documentId",
    "kind",
    "concept",
    "balanceType",
    "observedFiledAt",
    "reportedDate",
    "reportedDateBasis",
    "value",
    "reportedValue",
    "amount",
    "currency",
    "unit",
    "instrument",
    "instrumentBinding",
    "identity",
    "reference",
    "eventOccurrence",
    "source"
  ],
  "properties": {
    "observationId": {
      "type": "string"
    },
    "documentId": {
      "type": "string"
    },
    "kind": {
      "type": "string",
      "enum": [
        "balance",
        "event",
        "agreement_reference"
      ]
    },
    "concept": {
      "type": "string"
    },
    "balanceType": {
      "type": [
        "string",
        "null"
      ],
      "enum": [
        "reported_capacity",
        "reported_drawn_amount",
        "reported_availability",
        "reported_letters_of_credit",
        "reported_total_debt",
        "reported_outstanding_amount",
        "reported_debt_amount",
        "derived_total_debt",
        "derived_debt_amount",
        null
      ],
      "description": "Reported and previously derived extraction amounts remain distinct; derived provenance and component evidence hashes are retained. No observation is selected as the current balance."
    },
    "observedFiledAt": {
      "type": "string",
      "format": "date"
    },
    "reportedDate": {
      "type": [
        "string",
        "null"
      ],
      "format": "date"
    },
    "reportedDateBasis": {
      "type": "string",
      "enum": [
        "source_reported",
        "unknown"
      ]
    },
    "value": {
      "type": [
        "number",
        "string",
        "null"
      ]
    },
    "reportedValue": {
      "description": "Original extraction value or null; no numeric coercion"
    },
    "amount": {
      "description": "Original extraction amount or null"
    },
    "currency": {
      "type": [
        "string",
        "null"
      ]
    },
    "unit": {
      "type": [
        "string",
        "null"
      ]
    },
    "instrument": {
      "type": [
        "object",
        "null"
      ],
      "additionalProperties": true
    },
    "instrumentBinding": {
      "type": [
        "object",
        "null"
      ],
      "additionalProperties": true
    },
    "identity": {
      "$ref": "#/components/schemas/DebtHistoryIdentity"
    },
    "reference": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/DebtAgreementReference"
        },
        {
          "type": "null"
        }
      ]
    },
    "eventOccurrence": {
      "description": "Original event-occurrence metadata or null; not inferred legal effect"
    },
    "source": {
      "$ref": "#/components/schemas/DebtHistorySource"
    }
  }
}
DebtHistoryRelationship
{
  "type": "object",
  "description": "Reference targets are document IDs; same-instrument and co-disclosed targets are observation IDs. A unique target is still only a candidate. co_disclosed_with requires identical accession/document/evidence hash/text and has no causal or identity meaning.",
  "required": [
    "relationshipId",
    "fromId",
    "toId",
    "relation",
    "status",
    "method",
    "reason",
    "candidateTargetIds",
    "source"
  ],
  "properties": {
    "relationshipId": {
      "type": "string"
    },
    "fromId": {
      "type": "string"
    },
    "toId": {
      "type": [
        "string",
        "null"
      ]
    },
    "relation": {
      "type": "string",
      "enum": [
        "candidate_same_instrument",
        "amends",
        "refinances",
        "references_agreement",
        "co_disclosed_with"
      ]
    },
    "status": {
      "type": "string",
      "enum": [
        "candidate",
        "unresolved"
      ]
    },
    "method": {
      "type": "string"
    },
    "reason": {
      "type": "string"
    },
    "candidateTargetIds": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "source": {
      "$ref": "#/components/schemas/DebtHistorySource"
    }
  }
}
DebtHistorySource
{
  "type": "object",
  "description": "Document metadata may have null passage evidence. Observations require evidence, its matching SHA-256, a locator, accession, and SEC filing/document URLs; incomplete observations become gaps. Hashes are not signatures.",
  "required": [
    "accession",
    "cik",
    "form",
    "filedAt",
    "periodEnd",
    "filingUrl",
    "url",
    "documentId",
    "evidence",
    "evidenceSha256",
    "locator",
    "verificationState",
    "readerUrl"
  ],
  "properties": {
    "accession": {
      "type": "string"
    },
    "cik": {
      "type": [
        "string",
        "null"
      ],
      "pattern": "^[0-9]{10}$"
    },
    "form": {
      "type": "string"
    },
    "filedAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date"
    },
    "periodEnd": {
      "type": [
        "string",
        "null"
      ],
      "format": "date"
    },
    "filingUrl": {
      "type": [
        "string",
        "null"
      ],
      "format": "uri"
    },
    "url": {
      "type": [
        "string",
        "null"
      ],
      "format": "uri"
    },
    "documentId": {
      "type": "string"
    },
    "evidence": {
      "type": [
        "string",
        "null"
      ]
    },
    "evidenceSha256": {
      "type": [
        "string",
        "null"
      ],
      "pattern": "^[A-Fa-f0-9]{64}$"
    },
    "locator": {
      "description": "Original source locator or provenance; null for metadata-only documents"
    },
    "verificationState": {
      "type": "string",
      "description": "Retained source state; absent states are source-captured and rejected sources cannot establish candidate identity links"
    },
    "readerUrl": {
      "type": [
        "string",
        "null"
      ]
    }
  }
}
DeprecationPolicyResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "type": "object",
      "required": [
        "currentVersion",
        "currentSchemaVersion",
        "status",
        "breakingChanges",
        "notice",
        "lifecycleHeaders",
        "currentSunsetDate"
      ],
      "properties": {
        "currentVersion": {
          "type": "string",
          "const": "1"
        },
        "currentSchemaVersion": {
          "type": "string",
          "const": "1.0.0"
        },
        "status": {
          "type": "string",
          "const": "active"
        },
        "breakingChanges": {
          "type": "string"
        },
        "notice": {
          "type": "string"
        },
        "lifecycleHeaders": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "currentSunsetDate": {
          "type": "null"
        }
      }
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
E (52)
EconomicCalculation
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^c[1-4]$"
    },
    "label": {
      "type": "string",
      "maxLength": 100
    },
    "operation": {
      "enum": [
        "difference",
        "ratio"
      ]
    },
    "left": {
      "type": "string"
    },
    "right": {
      "type": "string"
    }
  },
  "required": [
    "id",
    "label",
    "operation",
    "left",
    "right"
  ],
  "additionalProperties": false
}
EconomicCatalogResponse
{
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "schemaVersion": {
          "const": "filingsift-economics-catalog-v1"
        },
        "series": {
          "type": "array",
          "items": {
            "allOf": [
              {
                "$ref": "#/components/schemas/EconomicDefinition"
              },
              {
                "type": "object",
                "required": [
                  "available",
                  "coverage",
                  "notice"
                ],
                "properties": {
                  "available": {
                    "type": "boolean"
                  },
                  "coverage": {
                    "type": "object",
                    "properties": {
                      "firstDate": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "lastDate": {
                        "type": [
                          "string",
                          "null"
                        ]
                      }
                    },
                    "required": [
                      "firstDate",
                      "lastDate"
                    ],
                    "additionalProperties": false
                  },
                  "notice": {
                    "type": "string"
                  }
                }
              }
            ]
          }
        },
        "maximumLines": {
          "const": 8
        },
        "maximumCharts": {
          "const": 6
        },
        "maximumYearsPerQuery": {
          "const": 10
        }
      },
      "required": [
        "schemaVersion",
        "series",
        "maximumLines",
        "maximumCharts",
        "maximumYearsPerQuery"
      ],
      "additionalProperties": false
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  },
  "required": [
    "data",
    "meta"
  ],
  "additionalProperties": false
}
EconomicChart
{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "maxLength": 100
    },
    "request": {
      "$ref": "#/components/schemas/EconomicRequest"
    }
  },
  "required": [
    "title",
    "request"
  ],
  "additionalProperties": false
}
EconomicCoverage
{
  "type": "object",
  "properties": {
    "status": {
      "enum": [
        "available",
        "partial",
        "unavailable"
      ]
    },
    "firstReturnedDate": {
      "type": [
        "string",
        "null"
      ]
    },
    "lastReturnedDate": {
      "type": [
        "string",
        "null"
      ]
    },
    "lastCheckedAt": {
      "type": [
        "string",
        "null"
      ]
    },
    "refreshFailed": {
      "type": "boolean"
    },
    "stale": {
      "type": "boolean"
    },
    "expectedSourceCompleteness": {
      "const": "unknown"
    }
  },
  "required": [
    "status"
  ],
  "additionalProperties": false
}
EconomicDashboardInput
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 120
    },
    "visibility": {
      "enum": [
        "personal",
        "team"
      ]
    },
    "charts": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/EconomicChart"
      },
      "minItems": 1,
      "maxItems": 6
    }
  },
  "required": [
    "name",
    "visibility",
    "charts"
  ],
  "additionalProperties": false
}
EconomicDashboardListResponse
{
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "name": {
                "type": "string"
              },
              "visibility": {
                "enum": [
                  "personal",
                  "team"
                ]
              },
              "widgets": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "kind": {
                      "const": "economic_chart"
                    },
                    "title": {
                      "type": "string"
                    },
                    "request": {
                      "$ref": "#/components/schemas/EconomicRequest"
                    }
                  },
                  "required": [
                    "kind",
                    "title",
                    "request"
                  ],
                  "additionalProperties": false
                }
              },
              "editable": {
                "type": "boolean"
              },
              "updated_at": {
                "type": "string",
                "format": "date-time"
              }
            },
            "required": [
              "id",
              "name",
              "visibility",
              "widgets",
              "editable",
              "updated_at"
            ],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "items"
      ],
      "additionalProperties": false
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  },
  "required": [
    "data",
    "meta"
  ],
  "additionalProperties": false
}
EconomicDashboardSavedResponse
{
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "required": [
        "id",
        "displayName",
        "visibility",
        "widgets"
      ],
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid"
        },
        "displayName": {
          "type": "string"
        },
        "visibility": {
          "enum": [
            "personal",
            "team"
          ]
        },
        "widgets": {
          "type": "array",
          "items": {
            "type": "object"
          }
        }
      }
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  },
  "required": [
    "data",
    "meta"
  ],
  "additionalProperties": false
}
EconomicData
{
  "type": "object",
  "properties": {
    "schemaVersion": {
      "const": "filingsift-economics-v1"
    },
    "request": {
      "$ref": "#/components/schemas/EconomicRequest"
    },
    "series": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/EconomicResultLine"
      }
    },
    "calculations": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/EconomicResultCalculation"
      }
    },
    "precision": {
      "type": "string"
    },
    "sourceData": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "series": {
            "type": "string"
          },
          "observations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EconomicObservation"
            }
          },
          "tableFootnotes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Notes from the reviewed BEA source table; also retain table/line/cell evidence in observation details."
          },
          "receipts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EconomicReceipt"
            }
          },
          "coverage": {
            "$ref": "#/components/schemas/EconomicCoverage"
          }
        },
        "required": [
          "series",
          "observations",
          "receipts",
          "coverage"
        ],
        "additionalProperties": false
      }
    },
    "limitations": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "sha256": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    }
  },
  "required": [
    "schemaVersion",
    "request",
    "series",
    "calculations",
    "precision",
    "sourceData",
    "limitations",
    "sha256"
  ],
  "additionalProperties": false
}
EconomicDefinition
{
  "description": "Selected series; BLS includes 32 inflation, labor-market, industry payroll and hourly-earnings measures; BEA includes GDP, income, saving, spending, investment and industry compensation/profits. Use catalog coverage dates, not an assumed common start date.",
  "type": "object",
  "required": [
    "id",
    "source",
    "label",
    "unit",
    "frequency"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "source": {
      "type": "string"
    },
    "label": {
      "type": "string"
    },
    "unit": {
      "type": "string"
    },
    "frequency": {
      "enum": [
        "daily",
        "monthly",
        "quarterly",
        "annual"
      ]
    },
    "table": {
      "type": "string"
    },
    "sourceCode": {
      "type": "string"
    },
    "category": {
      "type": "string"
    },
    "sourceTitle": {
      "type": "string"
    },
    "metadataUrl": {
      "type": "string"
    },
    "group": {
      "type": "string"
    },
    "startYear": {
      "type": "integer"
    },
    "startPeriod": {
      "type": "string"
    },
    "windowId": {
      "type": "string"
    },
    "adjustment": {
      "type": "string"
    },
    "termsUrl": {
      "type": "string"
    },
    "sourceUrl": {
      "type": "string"
    },
    "public": {
      "type": "boolean"
    },
    "warning": {
      "type": "string"
    }
  }
}
EconomicLine
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^s[1-8]$"
    },
    "series": {
      "type": "string"
    },
    "transform": {
      "enum": [
        "level",
        "change",
        "pct_change",
        "yoy",
        "index100",
        "moving_average_3",
        "moving_average_12"
      ]
    }
  },
  "required": [
    "id",
    "series",
    "transform"
  ],
  "additionalProperties": false
}
EconomicObservation
{
  "type": "object",
  "properties": {
    "date": {
      "type": "string",
      "format": "date"
    },
    "value": {
      "type": [
        "string",
        "null"
      ]
    },
    "state": {
      "type": "string"
    },
    "sourceHashes": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "details": {
      "type": "object"
    }
  },
  "required": [
    "date",
    "value",
    "state",
    "sourceHashes",
    "details"
  ],
  "additionalProperties": false
}
EconomicPoint
{
  "type": "object",
  "properties": {
    "date": {
      "type": "string",
      "format": "date"
    },
    "value": {
      "type": [
        "string",
        "null"
      ]
    },
    "reason": {
      "type": [
        "string",
        "null"
      ]
    },
    "observationCount": {
      "type": "integer"
    },
    "sourceDates": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "date"
      }
    },
    "inputDates": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "date"
      }
    },
    "sourceHashes": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "date",
    "value",
    "reason",
    "inputDates",
    "sourceHashes"
  ],
  "additionalProperties": false
}
EconomicReceipt
{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "format": "uri"
    },
    "method": {
      "type": "string"
    },
    "requestBody": {
      "type": "object"
    },
    "retrievedAt": {
      "type": "string",
      "format": "date-time"
    },
    "sha256": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    }
  },
  "required": [
    "url",
    "retrievedAt",
    "sha256"
  ],
  "additionalProperties": false
}
EconomicRequest
{
  "type": "object",
  "properties": {
    "startDate": {
      "type": "string",
      "format": "date"
    },
    "endDate": {
      "type": "string",
      "format": "date"
    },
    "frequency": {
      "enum": [
        "monthly",
        "quarterly",
        "annual"
      ]
    },
    "aggregation": {
      "enum": [
        "mean",
        "last"
      ]
    },
    "lines": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/EconomicLine"
      },
      "minItems": 1,
      "maxItems": 8
    },
    "calculations": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/EconomicCalculation"
      },
      "maxItems": 4
    }
  },
  "required": [
    "startDate",
    "endDate",
    "frequency",
    "aggregation",
    "lines"
  ],
  "additionalProperties": false
}
EconomicResponse
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/EconomicData"
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  },
  "required": [
    "data",
    "meta"
  ],
  "additionalProperties": false
}
EconomicResultCalculation
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "label": {
      "type": "string"
    },
    "operation": {
      "type": "string"
    },
    "left": {
      "type": "string"
    },
    "right": {
      "type": "string"
    },
    "unit": {
      "type": "string"
    },
    "points": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/EconomicPoint"
      }
    }
  },
  "required": [
    "id",
    "label",
    "operation",
    "left",
    "right",
    "unit",
    "points"
  ],
  "additionalProperties": false
}
EconomicResultLine
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "definition": {
      "$ref": "#/components/schemas/EconomicDefinition"
    },
    "transform": {
      "type": "string"
    },
    "unit": {
      "type": "string"
    },
    "points": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/EconomicPoint"
      }
    },
    "coverage": {
      "$ref": "#/components/schemas/EconomicCoverage"
    },
    "receipts": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/EconomicReceipt"
      }
    },
    "baseline": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "required": [
    "id",
    "definition",
    "transform",
    "unit",
    "points",
    "coverage",
    "receipts",
    "baseline"
  ],
  "additionalProperties": false
}
EmailActionRequest
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "email",
    "turnstileToken"
  ],
  "properties": {
    "email": {
      "type": "string",
      "format": "email",
      "maxLength": 254
    },
    "turnstileToken": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2048,
      "writeOnly": true,
      "description": "Single-use Cloudflare Turnstile token bound to the corresponding recovery action."
    }
  }
}
EmailVerificationPendingResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "type": "object",
      "required": [
        "verificationRequired",
        "verificationExpiresAt",
        "emailDelivery",
        "handoffTicket",
        "user",
        "organization"
      ],
      "properties": {
        "verificationRequired": {
          "type": "boolean",
          "const": true
        },
        "verificationExpiresAt": {
          "type": "string",
          "format": "date-time"
        },
        "emailDelivery": {
          "type": "string",
          "const": "sent"
        },
        "handoffTicket": {
          "$ref": "#/components/schemas/SignupHandoffTicket"
        },
        "user": {
          "type": "object",
          "required": [
            "email",
            "displayName"
          ],
          "properties": {
            "email": {
              "type": "string",
              "format": "email"
            },
            "displayName": {
              "type": "string"
            }
          }
        },
        "organization": {
          "type": "object",
          "required": [
            "name",
            "slug"
          ],
          "properties": {
            "name": {
              "type": "string"
            },
            "slug": {
              "type": "string"
            }
          }
        }
      }
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
EntityMatchArtifact
{
  "type": "object",
  "description": "Frozen normalized reviewed evidence, at most 100000 compact-JSON UTF-8 bytes; not a raw-response archive or arbitrary historical-vintage query",
  "required": [
    "schemaVersion",
    "subject",
    "entity",
    "parents",
    "provider",
    "contentSha256"
  ],
  "properties": {
    "schemaVersion": {
      "type": "string",
      "const": "filingsift-entity-match-artifact-v1"
    },
    "subject": {
      "$ref": "#/components/schemas/EntityMatchSubject"
    },
    "entity": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/GleifEntity"
        },
        {
          "type": "null"
        }
      ]
    },
    "parents": {
      "type": [
        "object",
        "null"
      ],
      "required": [
        "direct",
        "ultimate"
      ],
      "properties": {
        "direct": {
          "$ref": "#/components/schemas/GleifParentObservation"
        },
        "ultimate": {
          "$ref": "#/components/schemas/GleifParentObservation"
        }
      }
    },
    "provider": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/EntityMatchProvider"
        },
        {
          "type": "null"
        }
      ]
    },
    "contentSha256": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$",
      "description": "Canonical normalized artifact hash",
      "not an authenticity signature": null
    }
  }
}
EntityMatchCandidatesResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "type": "object",
      "required": [
        "schemaVersion",
        "subject",
        "state",
        "provider",
        "candidates",
        "limitations"
      ],
      "properties": {
        "schemaVersion": {
          "type": "string",
          "const": "filingsift-entity-candidates-v1"
        },
        "subject": {
          "$ref": "#/components/schemas/EntityMatchSubject"
        },
        "state": {
          "type": "string",
          "enum": [
            "candidate",
            "unresolved"
          ]
        },
        "provider": {
          "$ref": "#/components/schemas/EntityMatchProvider"
        },
        "candidates": {
          "type": "array",
          "maxItems": 10,
          "items": {
            "allOf": [
              {
                "$ref": "#/components/schemas/GleifEntity"
              },
              {
                "type": "object",
                "required": [
                  "matchReason"
                ],
                "properties": {
                  "matchReason": {
                    "type": "string",
                    "enum": [
                      "normalized_name_equal_not_verified",
                      "provider_name_candidate_not_verified"
                    ]
                  }
                }
              }
            ]
          }
        },
        "limitations": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
EntityMatchDecisionRequest
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "state",
    "expectedVersion",
    "subjectSha256",
    "note",
    "acknowledgeIdentityOnly"
  ],
  "properties": {
    "state": {
      "type": "string",
      "enum": [
        "confirmed",
        "unresolved"
      ]
    },
    "expectedVersion": {
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "subjectSha256": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    },
    "lei": {
      "$ref": "#/components/schemas/EntityMatchLei"
    },
    "previewSha256": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    },
    "note": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2000,
      "description": "Nonblank private rationale; control characters except newline are rejected"
    },
    "acknowledgeIdentityOnly": {
      "type": "boolean",
      "const": true
    }
  },
  "allOf": [
    {
      "if": {
        "properties": {
          "state": {
            "const": "confirmed"
          }
        }
      },
      "then": {
        "required": [
          "lei",
          "previewSha256"
        ]
      },
      "else": {
        "not": {
          "anyOf": [
            {
              "required": [
                "lei"
              ]
            },
            {
              "required": [
                "previewSha256"
              ]
            }
          ]
        }
      }
    }
  ]
}
EntityMatchLei
{
  "type": "string",
  "pattern": "^[A-Z0-9]{18}[0-9]{2}$",
  "description": "Uppercase twenty-character LEI; server additionally verifies MOD 97 check digits"
}
EntityMatchPreviewResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "type": "object",
      "required": [
        "schemaVersion",
        "state",
        "artifact",
        "limitations"
      ],
      "properties": {
        "schemaVersion": {
          "type": "string",
          "const": "filingsift-entity-match-preview-v1"
        },
        "state": {
          "type": "string",
          "enum": [
            "candidate",
            "unresolved"
          ]
        },
        "artifact": {
          "$ref": "#/components/schemas/EntityMatchArtifact"
        },
        "limitations": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
EntityMatchProvider
{
  "type": "object",
  "required": [
    "provider",
    "status",
    "license",
    "rightsReviewId",
    "termsUrl",
    "retrievedAt",
    "receipts",
    "coverage",
    "gaps",
    "limitations"
  ],
  "properties": {
    "provider": {
      "type": "string",
      "const": "gleif"
    },
    "status": {
      "type": "string",
      "enum": [
        "disabled",
        "available",
        "partial",
        "empty",
        "unavailable"
      ]
    },
    "license": {
      "type": "string",
      "const": "CC0-1.0"
    },
    "rightsReviewId": {
      "type": [
        "string",
        "null"
      ],
      "description": "Server-owned operational source-admission reference",
      "not a paid license or evidence of GLEIF endorsement": null
    },
    "termsUrl": {
      "type": "string",
      "const": "https://www.gleif.org/en/meta/lei-data-terms-of-use"
    },
    "retrievedAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "receipts": {
      "type": "array",
      "maxItems": 5,
      "items": {
        "type": "object",
        "required": [
          "sourceUrl",
          "retrievedAt",
          "sourceResponseSha256",
          "goldenCopyPublishedAt"
        ],
        "properties": {
          "sourceUrl": {
            "type": "string",
            "format": "uri"
          },
          "retrievedAt": {
            "type": "string",
            "format": "date-time"
          },
          "sourceResponseSha256": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$"
          },
          "goldenCopyPublishedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          }
        }
      }
    },
    "coverage": {
      "type": "object",
      "description": "Candidate-search receipt only; lookup defaults to limit 10, returnedCount 0 and unknown total/truncation, not a count of parents or LEI matches",
      "required": [
        "limit",
        "returnedCount",
        "total",
        "truncated"
      ],
      "properties": {
        "limit": {
          "type": "integer",
          "const": 10
        },
        "returnedCount": {
          "type": "integer",
          "minimum": 0,
          "maximum": 10
        },
        "total": {
          "type": [
            "integer",
            "null"
          ],
          "minimum": 0
        },
        "truncated": {
          "type": [
            "boolean",
            "null"
          ]
        }
      }
    },
    "gaps": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "limitations": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
EntityMatchResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/EntityMatchView"
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
EntityMatchReview
{
  "type": "object",
  "description": "Private reviewer attestation; immutable until explicit owned-subject or account cleanup",
  "required": [
    "id",
    "version",
    "state",
    "note",
    "createdAt",
    "artifact"
  ],
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "version": {
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    },
    "state": {
      "type": "string",
      "enum": [
        "confirmed",
        "unresolved"
      ]
    },
    "note": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    },
    "createdAt": {
      "type": "string",
      "format": "date-time"
    },
    "artifact": {
      "$ref": "#/components/schemas/EntityMatchArtifact"
    }
  }
}
EntityMatchReviewResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/EntityMatchReview"
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
EntityMatchReviewSummary
{
  "type": "object",
  "required": [
    "id",
    "version",
    "state",
    "note",
    "createdAt",
    "lei",
    "subjectSha256",
    "contentSha256"
  ],
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "version": {
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    },
    "state": {
      "type": "string",
      "enum": [
        "confirmed",
        "unresolved"
      ]
    },
    "note": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    },
    "createdAt": {
      "type": "string",
      "format": "date-time"
    },
    "lei": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/EntityMatchLei"
        },
        {
          "type": "null"
        }
      ]
    },
    "subjectSha256": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    },
    "contentSha256": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    }
  }
}
EntityMatchSubject
{
  "type": "object",
  "required": [
    "ticker",
    "cik",
    "name",
    "source",
    "subjectSha256"
  ],
  "properties": {
    "ticker": {
      "type": "string",
      "pattern": "^[A-Z0-9][A-Z0-9.-]{0,15}$"
    },
    "cik": {
      "type": "string",
      "pattern": "^(?!0000000000$)[0-9]{10}$"
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 500
    },
    "subjectSha256": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    },
    "source": {
      "type": "object",
      "description": "Exact retained SEC issuer metadata, not a filing-passage extraction or a verified GLEIF identity",
      "required": [
        "accession",
        "filedAt",
        "filingUrl",
        "contentSha256",
        "verificationState",
        "metadataEvidence",
        "illustrative"
      ],
      "properties": {
        "accession": {
          "type": "string",
          "pattern": "^\\d{10}-\\d{2}-\\d{6}$"
        },
        "filedAt": {
          "type": "string",
          "format": "date"
        },
        "filingUrl": {
          "type": "string",
          "format": "uri"
        },
        "contentSha256": {
          "type": "string",
          "pattern": "^[a-f0-9]{64}$"
        },
        "verificationState": {
          "type": "string"
        },
        "metadataEvidence": {
          "type": "string",
          "description": "Serialized retained ticker/CIK/name metadata"
        },
        "illustrative": {
          "type": "boolean"
        }
      }
    }
  }
}
EntityMatchView
{
  "type": "object",
  "required": [
    "schemaVersion",
    "subject",
    "current",
    "history",
    "historyTruncated",
    "limitations"
  ],
  "properties": {
    "schemaVersion": {
      "type": "string",
      "const": "filingsift-entity-match-v1"
    },
    "subject": {
      "$ref": "#/components/schemas/EntityMatchSubject"
    },
    "current": {
      "type": "object",
      "required": [
        "state",
        "reason",
        "version",
        "review"
      ],
      "properties": {
        "state": {
          "type": "string",
          "enum": [
            "confirmed",
            "unresolved"
          ]
        },
        "reason": {
          "type": "string",
          "enum": [
            "not_reviewed",
            "review_source_outside_entitlement",
            "sec_source_changed_since_review",
            "reviewer_confirmed_saved_sources",
            "reviewer_left_unresolved"
          ]
        },
        "version": {
          "type": "integer",
          "minimum": 0,
          "maximum": 200,
          "description": "Latest saved version is retained even when its source artifact is outside current access"
        },
        "review": {
          "anyOf": [
            {
              "$ref": "#/components/schemas/EntityMatchReview"
            },
            {
              "type": "null"
            }
          ]
        }
      }
    },
    "history": {
      "type": "array",
      "maxItems": 20,
      "items": {
        "$ref": "#/components/schemas/EntityMatchReviewSummary"
      }
    },
    "historyTruncated": {
      "type": "boolean",
      "description": "Older stored revisions exceeded the twenty-row return window; returned summaries also honor current source entitlements"
    },
    "limitations": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
ErrorReason
{
  "type": "object",
  "required": [
    "category",
    "retryable"
  ],
  "properties": {
    "category": {
      "type": "string",
      "enum": [
        "request",
        "rate_limit",
        "response_limit",
        "service"
      ]
    },
    "retryable": {
      "type": "boolean"
    },
    "retryAfterSeconds": {
      "type": "integer"
    },
    "details": {
      "type": [
        "object",
        "null"
      ],
      "additionalProperties": true
    },
    "maximumCost": {
      "type": "integer"
    },
    "calculatedCost": {
      "type": "integer"
    },
    "maximumBytes": {
      "type": "integer"
    },
    "actualBytes": {
      "type": "integer"
    }
  }
}
ErrorResponse
{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message",
        "reason"
      ],
      "properties": {
        "code": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "reason": {
          "$ref": "#/components/schemas/ErrorReason"
        }
      }
    },
    "requestId": {
      "type": "string"
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
Event
{
  "type": "object",
  "required": [
    "id",
    "ticker",
    "category",
    "severity",
    "severityStatus",
    "headline",
    "effectiveDate",
    "filedAt",
    "before",
    "after",
    "values",
    "source",
    "disclaimer"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "ticker": {
      "type": "string"
    },
    "cik": {
      "type": [
        "string",
        "null"
      ]
    },
    "category": {
      "$ref": "#/components/schemas/Category"
    },
    "changeType": {
      "type": "string"
    },
    "severity": {
      "type": "null"
    },
    "severityStatus": {
      "type": "string",
      "const": "not_assigned_no_validated_methodology"
    },
    "headline": {
      "type": "string"
    },
    "effectiveDate": {
      "type": "string",
      "format": "date"
    },
    "filedAt": {
      "type": "string",
      "format": "date-time"
    },
    "before": {
      "type": "string"
    },
    "after": {
      "type": "string"
    },
    "values": {
      "type": "object",
      "additionalProperties": true
    },
    "source": {
      "$ref": "#/components/schemas/Source"
    },
    "previousSource": {
      "oneOf": [
        {
          "$ref": "#/components/schemas/Source"
        },
        {
          "type": "null"
        }
      ]
    },
    "currentSource": {
      "oneOf": [
        {
          "$ref": "#/components/schemas/Source"
        },
        {
          "type": "null"
        }
      ]
    },
    "comparison": {
      "$ref": "#/components/schemas/Comparison"
    },
    "disclaimer": {
      "type": "string"
    }
  }
}
EventListResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Event"
      }
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
EvidencePassage
{
  "type": "object",
  "required": [
    "category",
    "evidence",
    "evidenceSha256",
    "locator",
    "verification"
  ],
  "properties": {
    "category": {
      "$ref": "#/components/schemas/Category"
    },
    "evidence": {
      "type": "string"
    },
    "evidenceSha256": {
      "type": "string"
    },
    "locator": {
      "$ref": "#/components/schemas/Locator"
    },
    "verification": {
      "$ref": "#/components/schemas/VerificationState"
    }
  }
}
ExplorerChildren
{
  "type": "object",
  "required": [
    "provider",
    "status",
    "license",
    "rightsReviewId",
    "termsUrl",
    "retrievedAt",
    "receipts",
    "entities",
    "entity",
    "parents",
    "gaps",
    "limitations"
  ],
  "properties": {
    "provider": {
      "const": "gleif"
    },
    "status": {
      "enum": [
        "available",
        "partial",
        "empty",
        "unavailable",
        "disabled"
      ]
    },
    "license": {
      "const": "CC0-1.0"
    },
    "rightsReviewId": {
      "type": [
        "string",
        "null"
      ]
    },
    "termsUrl": {
      "type": "string"
    },
    "retrievedAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "receipts": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ExplorerReceipt"
      }
    },
    "entities": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/GleifEntity"
      }
    },
    "entity": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/GleifEntity"
        },
        {
          "type": "null"
        }
      ]
    },
    "parents": {
      "anyOf": [
        {
          "type": "object",
          "required": [
            "direct",
            "ultimate"
          ],
          "properties": {
            "direct": {
              "$ref": "#/components/schemas/GleifParentObservation"
            },
            "ultimate": {
              "$ref": "#/components/schemas/GleifParentObservation"
            }
          }
        },
        {
          "type": "null"
        }
      ]
    },
    "gaps": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "limitations": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "lei": {
      "$ref": "#/components/schemas/EntityMatchLei"
    },
    "kind": {
      "enum": [
        "direct",
        "ultimate"
      ]
    },
    "records": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "relationshipId",
          "kind",
          "relationshipType",
          "childLei",
          "parentLei",
          "relationshipStatus",
          "validFrom",
          "validTo",
          "deletedAt",
          "periods",
          "registration",
          "gaps"
        ],
        "properties": {
          "relationshipId": {
            "type": "string"
          },
          "kind": {
            "enum": [
              "direct",
              "ultimate"
            ]
          },
          "relationshipType": {
            "type": "string"
          },
          "childLei": {
            "$ref": "#/components/schemas/EntityMatchLei"
          },
          "parentLei": {
            "$ref": "#/components/schemas/EntityMatchLei"
          },
          "relationshipStatus": {
            "type": [
              "string",
              "null"
            ]
          },
          "validFrom": {
            "type": [
              "string",
              "null"
            ]
          },
          "validTo": {
            "type": [
              "string",
              "null"
            ]
          },
          "deletedAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "periods": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "type",
                "startDate",
                "endDate"
              ],
              "properties": {
                "type": {
                  "type": "string"
                },
                "startDate": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "format": "date-time"
                },
                "endDate": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "format": "date-time"
                }
              }
            }
          },
          "registration": {
            "type": "object",
            "required": [
              "initialRegistrationDate",
              "lastUpdateDate",
              "nextRenewalDate",
              "status",
              "managingLou",
              "corroborationLevel",
              "corroborationDocuments",
              "corroborationReference"
            ],
            "properties": {
              "initialRegistrationDate": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "date-time"
              },
              "lastUpdateDate": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "date-time"
              },
              "nextRenewalDate": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "date-time"
              },
              "status": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "managingLou": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "corroborationLevel": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "corroborationDocuments": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "corroborationReference": {
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          },
          "gaps": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      }
    },
    "coverage": {
      "type": "object",
      "required": [
        "page",
        "limit",
        "returned",
        "total",
        "hasNext",
        "capped",
        "truncated"
      ],
      "properties": {
        "page": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100
        },
        "limit": {
          "const": 20
        },
        "returned": {
          "type": "integer",
          "minimum": 0
        },
        "total": {
          "type": [
            "integer",
            "null"
          ],
          "minimum": 0
        },
        "hasNext": {
          "type": "boolean"
        },
        "capped": {
          "type": "boolean"
        },
        "truncated": {
          "type": [
            "boolean",
            "null"
          ]
        }
      }
    }
  }
}
ExplorerChildrenResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/ExplorerChildren"
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
ExplorerComparison
{
  "type": "object",
  "required": [
    "schemaVersion",
    "lei",
    "from",
    "to",
    "comparisons",
    "changedFields",
    "incomparableFields",
    "notice"
  ],
  "properties": {
    "schemaVersion": {
      "const": "filingsift-entity-comparison-v1"
    },
    "lei": {
      "$ref": "#/components/schemas/EntityMatchLei"
    },
    "from": {
      "$ref": "#/components/schemas/ExplorerObservation"
    },
    "to": {
      "$ref": "#/components/schemas/ExplorerObservation"
    },
    "comparisons": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "field",
          "before",
          "after",
          "state"
        ],
        "properties": {
          "field": {
            "enum": [
              "legalName",
              "jurisdiction",
              "entityStatus",
              "registrationStatus",
              "registrationUpdatedAt",
              "directParent",
              "ultimateParent"
            ]
          },
          "before": {
            "anyOf": [
              {
                "type": [
                  "string",
                  "null"
                ]
              },
              {
                "anyOf": [
                  {
                    "type": "object",
                    "required": [
                      "status",
                      "parentLei",
                      "relationshipType",
                      "relationshipStatus",
                      "registrationStatus",
                      "validFrom",
                      "validTo",
                      "deletedAt",
                      "exception"
                    ],
                    "properties": {
                      "status": {
                        "type": "string",
                        "enum": [
                          "reported",
                          "reporting_exception",
                          "unknown",
                          "unavailable"
                        ]
                      },
                      "parentLei": {
                        "anyOf": [
                          {
                            "$ref": "#/components/schemas/EntityMatchLei"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "relationshipType": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "enum": [
                          "IS_DIRECTLY_CONSOLIDATED_BY",
                          "IS_ULTIMATELY_CONSOLIDATED_BY",
                          null
                        ]
                      },
                      "relationshipStatus": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "registrationStatus": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "validFrom": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "format": "date-time"
                      },
                      "validTo": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "format": "date-time"
                      },
                      "deletedAt": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "format": "date-time"
                      },
                      "exception": {
                        "type": [
                          "object",
                          "null"
                        ],
                        "required": [
                          "category",
                          "reason",
                          "reference"
                        ],
                        "properties": {
                          "category": {
                            "type": "string",
                            "enum": [
                              "DIRECT_ACCOUNTING_CONSOLIDATION_PARENT",
                              "ULTIMATE_ACCOUNTING_CONSOLIDATION_PARENT"
                            ]
                          },
                          "reason": {
                            "type": "string"
                          },
                          "reference": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "maxLength": 4000
                          }
                        }
                      }
                    }
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            ]
          },
          "after": {
            "anyOf": [
              {
                "type": [
                  "string",
                  "null"
                ]
              },
              {
                "anyOf": [
                  {
                    "type": "object",
                    "required": [
                      "status",
                      "parentLei",
                      "relationshipType",
                      "relationshipStatus",
                      "registrationStatus",
                      "validFrom",
                      "validTo",
                      "deletedAt",
                      "exception"
                    ],
                    "properties": {
                      "status": {
                        "type": "string",
                        "enum": [
                          "reported",
                          "reporting_exception",
                          "unknown",
                          "unavailable"
                        ]
                      },
                      "parentLei": {
                        "anyOf": [
                          {
                            "$ref": "#/components/schemas/EntityMatchLei"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "relationshipType": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "enum": [
                          "IS_DIRECTLY_CONSOLIDATED_BY",
                          "IS_ULTIMATELY_CONSOLIDATED_BY",
                          null
                        ]
                      },
                      "relationshipStatus": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "registrationStatus": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "validFrom": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "format": "date-time"
                      },
                      "validTo": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "format": "date-time"
                      },
                      "deletedAt": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "format": "date-time"
                      },
                      "exception": {
                        "type": [
                          "object",
                          "null"
                        ],
                        "required": [
                          "category",
                          "reason",
                          "reference"
                        ],
                        "properties": {
                          "category": {
                            "type": "string",
                            "enum": [
                              "DIRECT_ACCOUNTING_CONSOLIDATION_PARENT",
                              "ULTIMATE_ACCOUNTING_CONSOLIDATION_PARENT"
                            ]
                          },
                          "reason": {
                            "type": "string"
                          },
                          "reference": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "maxLength": 4000
                          }
                        }
                      }
                    }
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            ]
          },
          "state": {
            "enum": [
              "changed",
              "unchanged",
              "unavailable"
            ]
          }
        }
      }
    },
    "changedFields": {
      "type": "integer",
      "minimum": 0
    },
    "incomparableFields": {
      "type": "integer",
      "minimum": 0
    },
    "notice": {
      "type": "string"
    }
  }
}
ExplorerComparisonResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/ExplorerComparison"
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
ExplorerEntity
{
  "type": "object",
  "required": [
    "provider",
    "status",
    "license",
    "rightsReviewId",
    "termsUrl",
    "retrievedAt",
    "receipts",
    "entities",
    "entity",
    "parents",
    "gaps",
    "limitations"
  ],
  "properties": {
    "provider": {
      "const": "gleif"
    },
    "status": {
      "enum": [
        "available",
        "partial",
        "empty",
        "unavailable",
        "disabled"
      ]
    },
    "license": {
      "const": "CC0-1.0"
    },
    "rightsReviewId": {
      "type": [
        "string",
        "null"
      ]
    },
    "termsUrl": {
      "type": "string"
    },
    "retrievedAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "receipts": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ExplorerReceipt"
      }
    },
    "entities": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/GleifEntity"
      }
    },
    "entity": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/GleifEntity"
        },
        {
          "type": "null"
        }
      ]
    },
    "parents": {
      "anyOf": [
        {
          "type": "object",
          "required": [
            "direct",
            "ultimate"
          ],
          "properties": {
            "direct": {
              "$ref": "#/components/schemas/GleifParentObservation"
            },
            "ultimate": {
              "$ref": "#/components/schemas/GleifParentObservation"
            }
          }
        },
        {
          "type": "null"
        }
      ]
    },
    "gaps": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "limitations": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
ExplorerEntityResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/ExplorerEntity"
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
ExplorerHistory
{
  "type": "object",
  "required": [
    "schemaVersion",
    "lei",
    "items",
    "page",
    "limit",
    "hasNext",
    "capped",
    "historyStart",
    "notice"
  ],
  "properties": {
    "schemaVersion": {
      "const": "filingsift-entity-history-v1"
    },
    "lei": {
      "$ref": "#/components/schemas/EntityMatchLei"
    },
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "observedAt",
          "observationDate",
          "legalName",
          "registrationStatus",
          "receipts"
        ],
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$"
          },
          "observedAt": {
            "type": "string",
            "format": "date-time"
          },
          "observationDate": {
            "type": "string",
            "format": "date"
          },
          "legalName": {
            "type": [
              "string",
              "null"
            ]
          },
          "registrationStatus": {
            "type": [
              "string",
              "null"
            ]
          },
          "receipts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExplorerReceipt"
            }
          }
        }
      }
    },
    "page": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "limit": {
      "const": 20
    },
    "hasNext": {
      "type": "boolean"
    },
    "capped": {
      "type": "boolean"
    },
    "historyStart": {
      "type": "string",
      "format": "date"
    },
    "notice": {
      "type": "string"
    }
  }
}
ExplorerHistoryResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/ExplorerHistory"
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
ExplorerObservation
{
  "type": "object",
  "required": [
    "id",
    "observedAt",
    "observationDate",
    "values",
    "receipts",
    "verification",
    "basis"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "observedAt": {
      "type": "string",
      "format": "date-time"
    },
    "observationDate": {
      "type": "string",
      "format": "date"
    },
    "values": {
      "type": "object",
      "required": [
        "legalName",
        "jurisdiction",
        "entityStatus",
        "registrationStatus",
        "registrationUpdatedAt",
        "directParent",
        "ultimateParent"
      ],
      "properties": {
        "legalName": {
          "type": [
            "string",
            "null"
          ]
        },
        "jurisdiction": {
          "type": [
            "string",
            "null"
          ]
        },
        "entityStatus": {
          "type": [
            "string",
            "null"
          ]
        },
        "registrationStatus": {
          "type": [
            "string",
            "null"
          ]
        },
        "registrationUpdatedAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "directParent": {
          "anyOf": [
            {
              "type": "object",
              "required": [
                "status",
                "parentLei",
                "relationshipType",
                "relationshipStatus",
                "registrationStatus",
                "validFrom",
                "validTo",
                "deletedAt",
                "exception"
              ],
              "properties": {
                "status": {
                  "type": "string",
                  "enum": [
                    "reported",
                    "reporting_exception",
                    "unknown",
                    "unavailable"
                  ]
                },
                "parentLei": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/EntityMatchLei"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "relationshipType": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "enum": [
                    "IS_DIRECTLY_CONSOLIDATED_BY",
                    "IS_ULTIMATELY_CONSOLIDATED_BY",
                    null
                  ]
                },
                "relationshipStatus": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "registrationStatus": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "validFrom": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "format": "date-time"
                },
                "validTo": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "format": "date-time"
                },
                "deletedAt": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "format": "date-time"
                },
                "exception": {
                  "type": [
                    "object",
                    "null"
                  ],
                  "required": [
                    "category",
                    "reason",
                    "reference"
                  ],
                  "properties": {
                    "category": {
                      "type": "string",
                      "enum": [
                        "DIRECT_ACCOUNTING_CONSOLIDATION_PARENT",
                        "ULTIMATE_ACCOUNTING_CONSOLIDATION_PARENT"
                      ]
                    },
                    "reason": {
                      "type": "string"
                    },
                    "reference": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "maxLength": 4000
                    }
                  }
                }
              }
            },
            {
              "type": "null"
            }
          ]
        },
        "ultimateParent": {
          "anyOf": [
            {
              "type": "object",
              "required": [
                "status",
                "parentLei",
                "relationshipType",
                "relationshipStatus",
                "registrationStatus",
                "validFrom",
                "validTo",
                "deletedAt",
                "exception"
              ],
              "properties": {
                "status": {
                  "type": "string",
                  "enum": [
                    "reported",
                    "reporting_exception",
                    "unknown",
                    "unavailable"
                  ]
                },
                "parentLei": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/EntityMatchLei"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "relationshipType": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "enum": [
                    "IS_DIRECTLY_CONSOLIDATED_BY",
                    "IS_ULTIMATELY_CONSOLIDATED_BY",
                    null
                  ]
                },
                "relationshipStatus": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "registrationStatus": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "validFrom": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "format": "date-time"
                },
                "validTo": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "format": "date-time"
                },
                "deletedAt": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "format": "date-time"
                },
                "exception": {
                  "type": [
                    "object",
                    "null"
                  ],
                  "required": [
                    "category",
                    "reason",
                    "reference"
                  ],
                  "properties": {
                    "category": {
                      "type": "string",
                      "enum": [
                        "DIRECT_ACCOUNTING_CONSOLIDATION_PARENT",
                        "ULTIMATE_ACCOUNTING_CONSOLIDATION_PARENT"
                      ]
                    },
                    "reason": {
                      "type": "string"
                    },
                    "reference": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "maxLength": 4000
                    }
                  }
                }
              }
            },
            {
              "type": "null"
            }
          ]
        }
      }
    },
    "receipts": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ExplorerReceipt"
      }
    },
    "verification": {
      "type": "string"
    },
    "basis": {
      "enum": [
        "retained_observation",
        "current_provider_response"
      ]
    },
    "gaps": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
ExplorerReceipt
{
  "type": "object",
  "required": [
    "sourceUrl",
    "retrievedAt",
    "sourceResponseSha256"
  ],
  "properties": {
    "sourceUrl": {
      "type": "string",
      "format": "uri"
    },
    "retrievedAt": {
      "type": "string",
      "format": "date-time"
    },
    "sourceResponseSha256": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    },
    "goldenCopyPublishedAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "status": {
      "type": "integer",
      "minimum": 0
    }
  }
}
ExplorerSearch
{
  "type": "object",
  "required": [
    "provider",
    "status",
    "license",
    "rightsReviewId",
    "termsUrl",
    "retrievedAt",
    "receipts",
    "entities",
    "entity",
    "parents",
    "gaps",
    "limitations"
  ],
  "properties": {
    "provider": {
      "const": "gleif"
    },
    "status": {
      "enum": [
        "available",
        "partial",
        "empty",
        "unavailable",
        "disabled"
      ]
    },
    "license": {
      "const": "CC0-1.0"
    },
    "rightsReviewId": {
      "type": [
        "string",
        "null"
      ]
    },
    "termsUrl": {
      "type": "string"
    },
    "retrievedAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "receipts": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ExplorerReceipt"
      }
    },
    "entities": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/GleifEntity"
      }
    },
    "entity": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/GleifEntity"
        },
        {
          "type": "null"
        }
      ]
    },
    "parents": {
      "anyOf": [
        {
          "type": "object",
          "required": [
            "direct",
            "ultimate"
          ],
          "properties": {
            "direct": {
              "$ref": "#/components/schemas/GleifParentObservation"
            },
            "ultimate": {
              "$ref": "#/components/schemas/GleifParentObservation"
            }
          }
        },
        {
          "type": "null"
        }
      ]
    },
    "gaps": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "limitations": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "search": {
      "type": "object",
      "required": [
        "page",
        "limit",
        "returned",
        "total",
        "hasNext",
        "capped",
        "name",
        "country",
        "entityStatus",
        "registrationStatus"
      ],
      "properties": {
        "page": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100
        },
        "limit": {
          "const": 20
        },
        "returned": {
          "type": "integer",
          "minimum": 0
        },
        "total": {
          "type": [
            "integer",
            "null"
          ],
          "minimum": 0
        },
        "hasNext": {
          "type": "boolean"
        },
        "capped": {
          "type": "boolean"
        },
        "name": {
          "type": "string"
        },
        "country": {
          "type": "string"
        },
        "entityStatus": {
          "type": "string"
        },
        "registrationStatus": {
          "type": "string"
        }
      }
    }
  }
}
ExplorerSearchResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/ExplorerSearch"
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
ExplorerTimeline
{
  "type": "object",
  "required": [
    "provider",
    "status",
    "license",
    "rightsReviewId",
    "termsUrl",
    "retrievedAt",
    "receipts",
    "entities",
    "entity",
    "parents",
    "gaps",
    "limitations"
  ],
  "properties": {
    "provider": {
      "const": "gleif"
    },
    "status": {
      "enum": [
        "available",
        "partial",
        "empty",
        "unavailable",
        "disabled"
      ]
    },
    "license": {
      "const": "CC0-1.0"
    },
    "rightsReviewId": {
      "type": [
        "string",
        "null"
      ]
    },
    "termsUrl": {
      "type": "string"
    },
    "retrievedAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "receipts": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ExplorerReceipt"
      }
    },
    "entities": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/GleifEntity"
      }
    },
    "entity": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/GleifEntity"
        },
        {
          "type": "null"
        }
      ]
    },
    "parents": {
      "anyOf": [
        {
          "type": "object",
          "required": [
            "direct",
            "ultimate"
          ],
          "properties": {
            "direct": {
              "$ref": "#/components/schemas/GleifParentObservation"
            },
            "ultimate": {
              "$ref": "#/components/schemas/GleifParentObservation"
            }
          }
        },
        {
          "type": "null"
        }
      ]
    },
    "gaps": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "limitations": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "lei": {
      "$ref": "#/components/schemas/EntityMatchLei"
    },
    "record": {
      "type": "object",
      "required": [
        "lei",
        "sourceUrl",
        "registration",
        "entityLifecycle",
        "entityEvents",
        "coverage"
      ],
      "properties": {
        "lei": {
          "$ref": "#/components/schemas/EntityMatchLei"
        },
        "sourceUrl": {
          "type": "string"
        },
        "registration": {
          "type": "object",
          "required": [
            "initialRegistrationDate",
            "lastUpdateDate",
            "nextRenewalDate",
            "status"
          ],
          "properties": {
            "initialRegistrationDate": {
              "type": [
                "string",
                "null"
              ]
            },
            "lastUpdateDate": {
              "type": [
                "string",
                "null"
              ]
            },
            "nextRenewalDate": {
              "type": [
                "string",
                "null"
              ]
            },
            "status": {
              "type": [
                "string",
                "null"
              ]
            }
          }
        },
        "entityLifecycle": {
          "type": "object",
          "required": [
            "creationDate",
            "expirationDate",
            "expirationReason"
          ],
          "properties": {
            "creationDate": {
              "type": [
                "string",
                "null"
              ]
            },
            "expirationDate": {
              "type": [
                "string",
                "null"
              ]
            },
            "expirationReason": {
              "type": [
                "string",
                "null"
              ]
            }
          }
        },
        "entityEvents": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "groupType",
              "type",
              "status",
              "effectiveDate",
              "recordedDate",
              "validationDocuments",
              "validationReference",
              "affectedFields"
            ],
            "properties": {
              "groupType": {
                "type": "string"
              },
              "type": {
                "type": "string"
              },
              "status": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "effectiveDate": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "recordedDate": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "validationDocuments": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "validationReference": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "affectedFields": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "xpath",
                    "value"
                  ],
                  "properties": {
                    "xpath": {
                      "type": "string"
                    },
                    "value": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "coverage": {
          "type": "object",
          "required": [
            "basis",
            "historicalSnapshotsIncluded",
            "entityEventHistoryReported"
          ],
          "properties": {
            "basis": {
              "const": "current_golden_copy_record_with_provider_reported_dates"
            },
            "historicalSnapshotsIncluded": {
              "const": false
            },
            "entityEventHistoryReported": {
              "type": "boolean"
            }
          }
        }
      }
    }
  }
}
ExplorerTimelineResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/ExplorerTimeline"
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
ExtractedTable
{
  "type": "object",
  "required": [
    "tableIndex",
    "rows",
    "rowCount",
    "columnCount",
    "tableSha256"
  ],
  "properties": {
    "tableIndex": {
      "type": "integer"
    },
    "rows": {
      "type": "array",
      "items": {
        "type": "array",
        "items": {
          "type": "string"
        }
      }
    },
    "rowCount": {
      "type": "integer"
    },
    "columnCount": {
      "type": "integer"
    },
    "contextEvidence": {
      "type": [
        "string",
        "null"
      ]
    },
    "tableSha256": {
      "type": "string"
    }
  }
}
ExtractionStats
{
  "type": "object",
  "required": [
    "blockCount",
    "sectionCount",
    "tableCount",
    "evidenceCount"
  ],
  "properties": {
    "blockCount": {
      "type": "integer",
      "minimum": 0
    },
    "sectionCount": {
      "type": "integer",
      "minimum": 0
    },
    "tableCount": {
      "type": "integer",
      "minimum": 0
    },
    "evidenceCount": {
      "type": "integer",
      "minimum": 0
    },
    "factCount": {
      "type": "integer",
      "minimum": 0
    },
    "signalCount": {
      "type": "integer",
      "minimum": 0
    },
    "refusalCount": {
      "type": "integer",
      "minimum": 0
    },
    "machineCheckedFactCount": {
      "type": "integer",
      "minimum": 0
    },
    "candidateFactCount": {
      "type": "integer",
      "minimum": 0
    }
  }
}
F (50)
Facility
{
  "type": "object",
  "required": [
    "id",
    "issuer",
    "facilityType",
    "metric",
    "category",
    "value",
    "source"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "issuer": {
      "$ref": "#/components/schemas/IssuerIdentity"
    },
    "facilityType": {
      "type": "string",
      "const": "revolving_credit_facility"
    },
    "metric": {
      "type": "string",
      "enum": [
        "revolver_capacity",
        "revolver_drawn",
        "revolver_availability"
      ]
    },
    "category": {
      "type": "string",
      "const": "liquidity"
    },
    "value": {
      "type": "number"
    },
    "reportedValue": {
      "type": [
        "string",
        "null"
      ]
    },
    "unit": {
      "type": [
        "string",
        "null"
      ]
    },
    "currency": {
      "type": [
        "string",
        "null"
      ]
    },
    "scale": {
      "type": [
        "number",
        "null"
      ]
    },
    "period": {
      "oneOf": [
        {
          "$ref": "#/components/schemas/Period"
        },
        {
          "type": "null"
        }
      ]
    },
    "uncertainty": {
      "oneOf": [
        {
          "$ref": "#/components/schemas/Uncertainty"
        },
        {
          "type": "null"
        }
      ]
    },
    "source": {
      "$ref": "#/components/schemas/Source"
    }
  }
}
FacilityListResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Facility"
      }
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
FdicBankFinancialObservation
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "cert",
    "name",
    "reportDate",
    "rssdId",
    "certCons",
    "parCert",
    "values",
    "sourceUrl"
  ],
  "properties": {
    "cert": {
      "$ref": "#/components/schemas/BankPeerCertificate"
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 500
    },
    "reportDate": {
      "$ref": "#/components/schemas/BankPeerQuarterEnd"
    },
    "rssdId": {
      "type": [
        "string",
        "null"
      ],
      "pattern": "^[1-9][0-9]{0,9}$"
    },
    "certCons": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/BankPeerCertificate"
        },
        {
          "type": "null"
        }
      ],
      "description": "Parent-bank consolidation identifier; reports can overlap and must not be added together"
    },
    "parCert": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/BankPeerCertificate"
        },
        {
          "type": "null"
        }
      ],
      "description": "Reported parent-bank certificate; not a guarantee or SEC issuer mapping"
    },
    "values": {
      "$ref": "#/components/schemas/BankPeerValues"
    },
    "sourceUrl": {
      "$ref": "#/components/schemas/FdicBankFinancialSourceUrl"
    }
  }
}
FdicBankFinancialSourceUrl
{
  "type": "string",
  "format": "uri",
  "maxLength": 8000,
  "pattern": "^https://api[.]fdic[.]gov/banks/financials([?][^#]*)?$",
  "description": "Exact requested bank certificates and report dates; live URL can later return revised data"
}
FdicBankInstitution
{
  "type": "object",
  "additionalProperties": false,
  "description": "Current bank reference metadata; regulatory high-holder IDs identify a different entity and do not establish historical ownership or guarantees",
  "required": [
    "cert",
    "name",
    "city",
    "state",
    "active",
    "rssdId",
    "holdingCompanyRssdId",
    "holdingCompanyName",
    "lei",
    "reportDate",
    "dateUpdated",
    "bankClass",
    "sourceUrl"
  ],
  "properties": {
    "cert": {
      "$ref": "#/components/schemas/BankPeerCertificate"
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 500
    },
    "city": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 500
    },
    "state": {
      "type": [
        "string",
        "null"
      ],
      "pattern": "^[A-Z]{2}$"
    },
    "active": {
      "type": [
        "boolean",
        "null"
      ],
      "description": "FDIC institution status, not a financial-safety assessment"
    },
    "rssdId": {
      "type": [
        "string",
        "null"
      ],
      "pattern": "^[1-9][0-9]{0,9}$",
      "description": "Bank institution Federal Reserve identifier"
    },
    "holdingCompanyRssdId": {
      "type": [
        "string",
        "null"
      ],
      "pattern": "^[1-9][0-9]{0,9}$",
      "description": "Regulatory high-holder identifier, not the bank's own identifier or an SEC CIK"
    },
    "holdingCompanyName": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 500
    },
    "lei": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/EntityMatchLei"
        },
        {
          "type": "null"
        }
      ]
    },
    "reportDate": {
      "type": [
        "string",
        "null"
      ],
      "format": "date"
    },
    "dateUpdated": {
      "type": [
        "string",
        "null"
      ],
      "format": "date"
    },
    "bankClass": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 10
    },
    "sourceUrl": {
      "$ref": "#/components/schemas/FdicBankInstitutionSourceUrl"
    }
  }
}
FdicBankInstitutionSourceUrl
{
  "type": "string",
  "format": "uri",
  "maxLength": 8000,
  "pattern": "^https://api[.]fdic[.]gov/banks/institutions([?][^#]*)?$",
  "description": "Exact bounded server-constructed FDIC institution request, never a provider-supplied arbitrary redirect"
}
FdicBankProvider
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "provider",
    "status",
    "rightsReviewId",
    "license",
    "termsUrl",
    "retrievedAt",
    "receipts",
    "coverage",
    "gaps",
    "limitations"
  ],
  "properties": {
    "provider": {
      "type": "string",
      "const": "fdic"
    },
    "status": {
      "type": "string",
      "enum": [
        "disabled",
        "available",
        "partial",
        "empty",
        "unavailable"
      ]
    },
    "rightsReviewId": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 200,
      "description": "Operator source-admission reference, not FDIC endorsement or an invented paid license"
    },
    "license": {
      "type": "string",
      "const": "US-PUBLIC-DOMAIN"
    },
    "termsUrl": {
      "type": "string",
      "const": "https://www.fdic.gov/data.json"
    },
    "retrievedAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "receipts": {
      "type": "array",
      "maxItems": 2,
      "items": {
        "$ref": "#/components/schemas/FdicBankReceipt"
      }
    },
    "coverage": {
      "$ref": "#/components/schemas/FdicBankProviderCoverage"
    },
    "gaps": {
      "type": "array",
      "maxItems": 30,
      "items": {
        "type": "string",
        "pattern": "^[a-z_]{1,100}$"
      }
    },
    "limitations": {
      "type": "array",
      "maxItems": 30,
      "items": {
        "type": "string",
        "maxLength": 2000
      }
    }
  }
}
FdicBankProviderCoverage
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "limit",
    "returnedCount",
    "total",
    "truncated"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "enum": [
        5,
        6,
        10,
        41
      ],
      "description": "Expansion geography limit 5, exact institutions/failure limit 6, name search limit 10, financial request limit 41; overflow rows expose duplicates rather than silently choosing one"
    },
    "returnedCount": {
      "type": "integer",
      "minimum": 0,
      "maximum": 41
    },
    "total": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "truncated": {
      "type": [
        "boolean",
        "null"
      ],
      "description": "Unknown when provider total is absent; otherwise total exceeds returnedCount"
    }
  }
}
FdicBankReceipt
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "sourceUrl",
    "retrievedAt",
    "sourceResponseSha256",
    "indexName",
    "indexCreatedAt"
  ],
  "properties": {
    "sourceUrl": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/FdicBankInstitutionSourceUrl"
        },
        {
          "$ref": "#/components/schemas/FdicBankFinancialSourceUrl"
        }
      ]
    },
    "retrievedAt": {
      "type": "string",
      "format": "date-time"
    },
    "sourceResponseSha256": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$",
      "description": "SHA-256 of bounded raw response bytes; not a signature or a promise that raw bytes are archived"
    },
    "indexName": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 100
    },
    "indexCreatedAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time",
      "description": "Provider index metadata, not original publication time or immutable reporting vintage"
    }
  }
}
FdicExpansion
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "schemaVersion",
    "request",
    "metrics",
    "additionalCallReport",
    "depositGeography",
    "failureHistory",
    "limitations",
    "contentSha256"
  ],
  "properties": {
    "schemaVersion": {
      "type": "string",
      "const": "filingsift-fdic-expansion-v1"
    },
    "request": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "certs",
        "reportDates",
        "sodYear",
        "failureStartDate",
        "failureEndDate"
      ],
      "properties": {
        "certs": {
          "type": "array",
          "minItems": 1,
          "maxItems": 5,
          "uniqueItems": true,
          "items": {
            "$ref": "#/components/schemas/BankPeerCertificate"
          }
        },
        "reportDates": {
          "type": "array",
          "minItems": 1,
          "maxItems": 8,
          "uniqueItems": true,
          "items": {
            "$ref": "#/components/schemas/BankPeerQuarterEnd"
          },
          "description": "Canonical ascending order"
        },
        "sodYear": {
          "type": "integer",
          "minimum": 1994
        },
        "failureStartDate": {
          "type": "string",
          "format": "date"
        },
        "failureEndDate": {
          "type": "string",
          "format": "date"
        }
      }
    },
    "metrics": {
      "type": "array",
      "minItems": 6,
      "maxItems": 6,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "code",
          "label",
          "unit",
          "periodBasis",
          "definitionUrl"
        ],
        "properties": {
          "code": {
            "type": "string",
            "enum": [
              "DEPDOM",
              "NETINC",
              "ROA",
              "ROE",
              "NCLNLSR",
              "RBCT1CER"
            ]
          },
          "label": {
            "type": "string"
          },
          "unit": {
            "type": "string",
            "enum": [
              "USD_thousands",
              "percent"
            ]
          },
          "periodBasis": {
            "type": "string",
            "enum": [
              "period_end",
              "year_to_date",
              "annualized_year_to_date"
            ]
          },
          "definitionUrl": {
            "type": "string",
            "const": "https://api.fdic.gov/banks/docs/risview_properties.yaml"
          }
        }
      }
    },
    "additionalCallReport": {
      "allOf": [
        {
          "$ref": "#/components/schemas/FdicExpansionDatasetEnvelope"
        },
        {
          "type": "object",
          "required": [
            "observations"
          ],
          "properties": {
            "observations": {
              "type": "array",
              "maxItems": 41,
              "items": {
                "type": "object"
              }
            }
          }
        }
      ]
    },
    "depositGeography": {
      "allOf": [
        {
          "$ref": "#/components/schemas/FdicExpansionDatasetEnvelope"
        },
        {
          "type": "object",
          "required": [
            "year",
            "basis",
            "banks"
          ],
          "properties": {
            "year": {
              "type": "integer",
              "minimum": 1994
            },
            "basis": {
              "type": "string",
              "const": "Summary of Deposits annual branch state"
            },
            "banks": {
              "type": "array",
              "maxItems": 5,
              "items": {
                "type": "object"
              }
            }
          }
        }
      ]
    },
    "failureHistory": {
      "allOf": [
        {
          "$ref": "#/components/schemas/FdicExpansionDatasetEnvelope"
        },
        {
          "type": "object",
          "required": [
            "dateRange",
            "records"
          ],
          "properties": {
            "dateRange": {
              "type": "object",
              "required": [
                "startDate",
                "endDate"
              ],
              "properties": {
                "startDate": {
                  "type": "string",
                  "format": "date"
                },
                "endDate": {
                  "type": "string",
                  "format": "date"
                }
              }
            },
            "records": {
              "type": "array",
              "maxItems": 6,
              "items": {
                "type": "object"
              }
            }
          }
        }
      ]
    },
    "limitations": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "contentSha256": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    }
  }
}
FdicExpansionDatasetEnvelope
{
  "type": "object",
  "description": "Dataset-specific fields are composed by each expansion envelope; rights_review_required guarantees zero rows and receipts.",
  "required": [
    "dataset",
    "status",
    "rightsReviewId",
    "license",
    "termsUrl",
    "retrievedAt",
    "receipts",
    "coverage",
    "gaps"
  ],
  "properties": {
    "dataset": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "enum": [
        "rights_review_required",
        "available",
        "partial",
        "empty",
        "unavailable"
      ]
    },
    "rightsReviewId": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 200
    },
    "license": {
      "type": "string",
      "const": "US-PUBLIC-DOMAIN"
    },
    "termsUrl": {
      "type": "string",
      "const": "https://www.fdic.gov/data.json"
    },
    "retrievedAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "receipts": {
      "type": "array",
      "maxItems": 5,
      "items": {
        "type": "object"
      }
    },
    "coverage": {
      "$ref": "#/components/schemas/FdicBankProviderCoverage"
    },
    "gaps": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 120
      }
    }
  }
}
FdicExpansionResponse
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/FdicExpansion"
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
FilingCalendarEntry
{
  "type": "object",
  "required": [
    "accession",
    "cik",
    "ticker",
    "issuerName",
    "form",
    "filedAt",
    "periodEnd",
    "filingUrl",
    "verificationState",
    "illustrative",
    "source",
    "readerUrl"
  ],
  "properties": {
    "accession": {
      "type": "string",
      "pattern": "^\\d{10}-\\d{2}-\\d{6}$"
    },
    "cik": {
      "type": "string",
      "pattern": "^\\d{10}$"
    },
    "ticker": {
      "type": "string"
    },
    "issuerName": {
      "type": [
        "string",
        "null"
      ]
    },
    "form": {
      "type": "string"
    },
    "filedAt": {
      "type": "string",
      "format": "date",
      "description": "Actual retained filing date",
      "not period end or corporate-event effective date": null
    },
    "periodEnd": {
      "type": [
        "string",
        "null"
      ],
      "format": "date"
    },
    "filingUrl": {
      "type": "string",
      "format": "uri",
      "description": "HTTPS SEC archive URL bound to CIK and accession"
    },
    "verificationState": {
      "type": "string",
      "description": "Retained source state; an absent state is source-captured and calendar inclusion is tracked separately from filing validation"
    },
    "illustrative": {
      "type": "boolean"
    },
    "readerUrl": {
      "type": "string",
      "description": "Relative source Reader deep link"
    },
    "source": {
      "type": "object",
      "required": [
        "kind",
        "dateField"
      ],
      "properties": {
        "kind": {
          "type": "string",
          "const": "filing_metadata"
        },
        "dateField": {
          "type": "string",
          "const": "filedAt"
        }
      }
    }
  }
}
FilingCalendarResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    },
    "data": {
      "type": "object",
      "required": [
        "schemaVersion",
        "generatedAt",
        "scope",
        "entries",
        "coverage",
        "limitations",
        "icalendar"
      ],
      "properties": {
        "schemaVersion": {
          "type": "string",
          "const": "filingsift-filing-calendar-v1"
        },
        "generatedAt": {
          "type": "string",
          "format": "date-time"
        },
        "scope": {
          "type": "object",
          "required": [
            "month",
            "ticker",
            "form",
            "limit",
            "filedFrom",
            "filedTo"
          ],
          "properties": {
            "month": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}$"
            },
            "ticker": {
              "type": "string"
            },
            "form": {
              "type": [
                "string",
                "null"
              ]
            },
            "limit": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            },
            "filedFrom": {
              "type": "string",
              "format": "date"
            },
            "filedTo": {
              "type": "string",
              "format": "date"
            }
          }
        },
        "entries": {
          "type": "array",
          "maxItems": 100,
          "items": {
            "$ref": "#/components/schemas/FilingCalendarEntry"
          }
        },
        "coverage": {
          "type": "object",
          "required": [
            "returnedFilings",
            "historyMayBeTruncated",
            "expectedSecFilings",
            "sourceCompleteness",
            "basis"
          ],
          "properties": {
            "returnedFilings": {
              "type": "integer",
              "minimum": 0,
              "maximum": 100
            },
            "historyMayBeTruncated": {
              "type": "boolean",
              "description": "A lookahead proves more indexed records exist; false is not evidence of complete SEC coverage"
            },
            "expectedSecFilings": {
              "type": "null",
              "description": "Unknown external SEC denominator"
            },
            "sourceCompleteness": {
              "type": "string",
              "const": "unknown"
            },
            "basis": {
              "type": "string",
              "const": "indexed_filing_metadata"
            }
          }
        },
        "limitations": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "icalendar": {
          "type": "string",
          "description": "RFC 5545 calendar for exactly the returned entries; browser download does not requery"
        }
      }
    }
  }
}
FilingIdentity
{
  "type": "object",
  "required": [
    "accession",
    "form",
    "filedAt",
    "periodEnd",
    "primaryDocument",
    "primaryDocumentUrl",
    "contentSha256",
    "sourceByteLength"
  ],
  "properties": {
    "accession": {
      "type": "string",
      "pattern": "^\\d{10}-\\d{2}-\\d{6}$"
    },
    "form": {
      "$ref": "#/components/schemas/Form"
    },
    "filedAt": {
      "type": "string",
      "format": "date"
    },
    "periodEnd": {
      "type": [
        "string",
        "null"
      ],
      "format": "date"
    },
    "primaryDocument": {
      "type": "string"
    },
    "primaryDocumentUrl": {
      "type": "string",
      "format": "uri"
    },
    "contentSha256": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    },
    "sourceByteLength": {
      "type": "integer",
      "minimum": 0
    }
  }
}
FilingListResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/FilingSummary"
      }
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
FilingResearchSnapshotArtifact
{
  "type": "object",
  "description": "Immutable bounded materialized result plus source/version manifests. Not arbitrary historical-engine replay or a raw filing archive. Hash recipe recursively sorts object keys, preserves array order, serializes finite JSON primitives, and hashes UTF-8 bytes. Hashes are integrity checks, not signatures or authenticity/verification claims.",
  "required": [
    "schemaVersion",
    "kind",
    "definition",
    "sources",
    "versions",
    "coverage",
    "result",
    "resultSha256",
    "definitionSha256",
    "sourcesSha256",
    "limitations",
    "contentSha256"
  ],
  "properties": {
    "schemaVersion": {
      "type": "string",
      "const": "filingsift-research-snapshot-v1"
    },
    "kind": {
      "type": "string",
      "enum": [
        "debt_amendment_history",
        "financing_tables",
        "filing_timeline"
      ]
    },
    "definition": {
      "allOf": [
        {
          "$ref": "#/components/schemas/ResearchSnapshotDefinition"
        },
        {
          "required": [
            "limit"
          ]
        }
      ]
    },
    "sources": {
      "type": "array",
      "maxItems": 40,
      "items": {
        "$ref": "#/components/schemas/ResearchSnapshotSource"
      }
    },
    "versions": {
      "type": "object",
      "required": [
        "hashRecipe",
        "analysisRevision",
        "runtime",
        "analysisModules",
        "parserVersions",
        "mappingVersion",
        "mappingApplicability"
      ],
      "properties": {
        "hashRecipe": {
          "type": "string",
          "const": "sha256-canonical-json-v1"
        },
        "analysisRevision": {
          "type": "string",
          "const": "research-analysis-v1"
        },
        "runtime": {
          "type": "string",
          "description": "Node runtime version observed at capture"
        },
        "analysisModules": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "name",
              "sha256"
            ],
            "properties": {
              "name": {
                "type": "string"
              },
              "sha256": {
                "type": "string",
                "pattern": "^[a-f0-9]{64}$"
              }
            }
          }
        },
        "parserVersions": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "uniqueItems": true
        },
        "mappingVersion": {
          "type": "null"
        },
        "mappingApplicability": {
          "type": "string",
          "const": "supported_analyses_do_not_use_xbrl_concept_mappings"
        }
      }
    },
    "coverage": {
      "type": "object",
      "required": [
        "selectedFilingCount",
        "selectedDocumentCount",
        "filingLimit",
        "additionalEligibleFilings",
        "historyStartAtCapture",
        "expectedFilingCount",
        "sourceReadConsistency",
        "missingExtractionDocumentCount",
        "unknownParserVersionDocumentCount",
        "maximumFinancingTablePeriods"
      ],
      "properties": {
        "selectedFilingCount": {
          "type": "integer",
          "minimum": 0,
          "maximum": 40
        },
        "selectedDocumentCount": {
          "type": "integer",
          "minimum": 0,
          "maximum": 400
        },
        "filingLimit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 40
        },
        "additionalEligibleFilings": {
          "type": "boolean"
        },
        "historyStartAtCapture": {
          "type": [
            "string",
            "null"
          ],
          "format": "date"
        },
        "expectedFilingCount": {
          "type": "null"
        },
        "sourceReadConsistency": {
          "type": "string",
          "enum": [
            "single_postgres_statement",
            "best_effort_collection"
          ],
          "description": "Consistency of the captured source read",
          "not an SEC publication completeness or arbitrary historical-time claim": null
        },
        "missingExtractionDocumentCount": {
          "type": "integer",
          "minimum": 0,
          "maximum": 400
        },
        "unknownParserVersionDocumentCount": {
          "type": "integer",
          "minimum": 0,
          "maximum": 400
        },
        "maximumFinancingTablePeriods": {
          "type": [
            "integer",
            "null"
          ],
          "minimum": 1,
          "maximum": 20
        }
      }
    },
    "result": {
      "type": "object",
      "description": "Exact bounded debt-history",
      "financing-table": null,
      "or filing-timeline result after the snapshot's stricter nested-field/evidence validation. Missing values": null,
      "evidence": null,
      "gaps": null,
      "and verification states remain unchanged. Debt-builder omissions already represented as gaps are not restored; unsafe included evidence refuses capture.": null
    },
    "resultSha256": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    },
    "definitionSha256": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    },
    "sourcesSha256": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    },
    "limitations": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "contentSha256": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$",
      "description": "Hash of every artifact field except contentSha256; saved-record ID",
      "name": null,
      "and createdAt are separate metadata": null
    }
  },
  "allOf": [
    {
      "if": {
        "properties": {
          "kind": {
            "const": "debt_amendment_history"
          }
        }
      },
      "then": {
        "properties": {
          "result": {
            "$ref": "#/components/schemas/DebtAmendmentHistory"
          }
        }
      }
    },
    {
      "if": {
        "properties": {
          "kind": {
            "const": "filing_timeline"
          }
        }
      },
      "then": {
        "properties": {
          "result": {
            "$ref": "#/components/schemas/FilingTimelineSnapshot"
          }
        }
      }
    }
  ]
}
FilingSummary
{
  "type": "object",
  "required": [
    "issuer",
    "filing",
    "extraction",
    "verification",
    "parserVersion",
    "processingVersion",
    "ingestedAt"
  ],
  "properties": {
    "issuer": {
      "$ref": "#/components/schemas/IssuerIdentity"
    },
    "filing": {
      "$ref": "#/components/schemas/FilingIdentity"
    },
    "extraction": {
      "$ref": "#/components/schemas/ExtractionStats"
    },
    "verification": {
      "$ref": "#/components/schemas/Verification"
    },
    "parserVersion": {
      "type": [
        "string",
        "null"
      ]
    },
    "processingVersion": {
      "type": [
        "string",
        "null"
      ]
    },
    "ingestedAt": {
      "type": "string",
      "format": "date-time"
    }
  }
}
FilingTableCatalogResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    },
    "data": {
      "type": "object",
      "required": [
        "schemaVersion",
        "filing",
        "tables",
        "coverage",
        "limits",
        "limitations"
      ],
      "properties": {
        "schemaVersion": {
          "type": "string",
          "const": "filingsift-table-catalog-v1"
        },
        "filing": {
          "$ref": "#/components/schemas/FilingTableSource"
        },
        "tables": {
          "type": "array",
          "maxItems": 50,
          "items": {
            "$ref": "#/components/schemas/FilingTableMetadata"
          }
        },
        "coverage": {
          "$ref": "#/components/schemas/FilingTableCoverage"
        },
        "limits": {
          "$ref": "#/components/schemas/FilingTableLimits"
        },
        "limitations": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    }
  }
}
FilingTableCoverage
{
  "type": "object",
  "required": [
    "observedTableCount",
    "returnedTableCount",
    "omittedTableCount",
    "catalogTruncated",
    "sourceCompleteness",
    "extractionState"
  ],
  "properties": {
    "observedTableCount": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 0,
      "description": "Null means unavailable inventory",
      "not no tables in the filing": null
    },
    "returnedTableCount": {
      "type": "integer",
      "minimum": 0,
      "maximum": 50
    },
    "omittedTableCount": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 0
    },
    "catalogTruncated": {
      "type": "boolean"
    },
    "sourceCompleteness": {
      "type": "string",
      "const": "unknown"
    },
    "extractionState": {
      "type": "string",
      "enum": [
        "missing",
        "available",
        "invalid"
      ]
    }
  }
}
FilingTableLimits
{
  "type": "object",
  "required": [
    "maximumTables",
    "maximumRows",
    "maximumColumns",
    "maximumCharacters",
    "maximumContextCharacters",
    "characterCountUnit"
  ],
  "properties": {
    "maximumTables": {
      "type": "integer",
      "const": 50
    },
    "maximumRows": {
      "type": "integer",
      "const": 200
    },
    "maximumColumns": {
      "type": "integer",
      "const": 50
    },
    "maximumCharacters": {
      "type": "integer",
      "const": 100000
    },
    "maximumContextCharacters": {
      "type": "integer",
      "const": 2000
    },
    "characterCountUnit": {
      "type": "string",
      "const": "utf16_code_units"
    }
  }
}
FilingTableMetadata
{
  "type": "object",
  "required": [
    "tableId",
    "ordinal",
    "tableIndex",
    "contextEvidence",
    "retainedRowCount",
    "retainedColumnCount",
    "declaredRowCount",
    "declaredColumnCount",
    "verificationState",
    "reviewEligible",
    "unavailableReason"
  ],
  "properties": {
    "tableId": {
      "type": "string",
      "pattern": "^table-[a-f0-9]{64}$"
    },
    "ordinal": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50
    },
    "tableIndex": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 0
    },
    "contextEvidence": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 2000
    },
    "retainedRowCount": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 0
    },
    "retainedColumnCount": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 0
    },
    "declaredRowCount": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 0
    },
    "declaredColumnCount": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 0
    },
    "verificationState": {
      "type": "string",
      "description": "Explicit source state without promotion; missing state uses the filing's retained state"
    },
    "reviewEligible": {
      "type": "boolean"
    },
    "unavailableReason": {
      "type": [
        "string",
        "null"
      ]
    }
  }
}
FilingTableReviewResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    },
    "data": {
      "type": "object",
      "required": [
        "schemaVersion",
        "filing",
        "table",
        "coverage",
        "limits",
        "limitations",
        "exports",
        "contentSha256"
      ],
      "properties": {
        "schemaVersion": {
          "type": "string",
          "const": "filingsift-table-review-v1"
        },
        "filing": {
          "$ref": "#/components/schemas/FilingTableSource"
        },
        "table": {
          "allOf": [
            {
              "$ref": "#/components/schemas/FilingTableMetadata"
            },
            {
              "type": "object",
              "required": [
                "rows",
                "rowsSha256",
                "storedTableSha256",
                "hashRecipes"
              ],
              "properties": {
                "rows": {
                  "type": "array",
                  "maxItems": 200,
                  "items": {
                    "type": "array",
                    "maxItems": 50,
                    "items": {
                      "type": "string"
                    }
                  }
                },
                "rowsSha256": {
                  "type": "string",
                  "pattern": "^[a-f0-9]{64}$"
                },
                "storedTableSha256": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "pattern": "^[a-f0-9]{64}$"
                },
                "hashRecipes": {
                  "type": "object",
                  "required": [
                    "rows",
                    "storedTable"
                  ],
                  "properties": {
                    "rows": {
                      "type": "string",
                      "const": "sha256-compact-json-utf8-v1"
                    },
                    "storedTable": {
                      "type": "string",
                      "const": "sha256-tsv-utf8-v1"
                    }
                  }
                }
              }
            }
          ]
        },
        "coverage": {
          "allOf": [
            {
              "$ref": "#/components/schemas/FilingTableCoverage"
            },
            {
              "type": "object",
              "required": [
                "retainedRowCount",
                "returnedRowCount"
              ],
              "properties": {
                "retainedRowCount": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 200
                },
                "returnedRowCount": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 200
                }
              }
            }
          ]
        },
        "limits": {
          "$ref": "#/components/schemas/FilingTableLimits"
        },
        "limitations": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "exports": {
          "type": "object",
          "required": [
            "csv",
            "csvPolicy"
          ],
          "properties": {
            "csv": {
              "type": "string",
              "description": "Quoted CRLF CSV with provenance on each row and disclosed protective transformations"
            },
            "csvPolicy": {
              "type": "object",
              "required": [
                "formulaProtection",
                "protectedCellCount",
                "raggedRowsPadded"
              ],
              "properties": {
                "formulaProtection": {
                  "type": "string",
                  "const": "apostrophe_prefix"
                },
                "protectedCellCount": {
                  "type": "integer",
                  "minimum": 0,
                  "description": "All exported fields prefixed for formula protection",
                  "not exclusively source cells": null
                },
                "raggedRowsPadded": {
                  "type": "boolean"
                }
              }
            }
          }
        },
        "contentSha256": {
          "type": "string",
          "pattern": "^[a-f0-9]{64}$",
          "description": "Hash of sorted-key canonical result JSON excluding this field; not an authenticity signature"
        }
      }
    }
  }
}
FilingTableSource
{
  "type": "object",
  "required": [
    "accession",
    "cik",
    "ticker",
    "form",
    "filedAt",
    "filingUrl",
    "verificationState",
    "parserVersion",
    "illustrative"
  ],
  "properties": {
    "accession": {
      "type": "string",
      "pattern": "^\\d{10}-\\d{2}-\\d{6}$"
    },
    "cik": {
      "type": "string",
      "pattern": "^\\d{10}$"
    },
    "ticker": {
      "type": [
        "string",
        "null"
      ]
    },
    "form": {
      "type": "string"
    },
    "filedAt": {
      "type": "string",
      "format": "date"
    },
    "filingUrl": {
      "type": "string",
      "format": "uri",
      "description": "HTTPS SEC archive source bound to accession and CIK"
    },
    "verificationState": {
      "type": "string"
    },
    "parserVersion": {
      "type": [
        "string",
        "null"
      ]
    },
    "illustrative": {
      "type": "boolean"
    }
  }
}
FilingTimelineSnapshot
{
  "type": "object",
  "required": [
    "schemaVersion",
    "issuer",
    "order",
    "filings",
    "limitations"
  ],
  "properties": {
    "schemaVersion": {
      "type": "string",
      "const": "filingsift-filing-timeline-v1"
    },
    "issuer": {
      "type": "object",
      "required": [
        "ticker",
        "cik",
        "name"
      ],
      "properties": {
        "ticker": {
          "type": "string"
        },
        "cik": {
          "type": [
            "string",
            "null"
          ]
        },
        "name": {
          "type": [
            "string",
            "null"
          ]
        }
      }
    },
    "order": {
      "type": "string",
      "const": "filed_at_desc_accession_desc"
    },
    "filings": {
      "type": "array",
      "maxItems": 40,
      "items": {
        "type": "object",
        "required": [
          "accession",
          "cik",
          "form",
          "formFamily",
          "isAmendment",
          "filedAt",
          "acceptedAt",
          "periodEnd",
          "currentReportItems",
          "filingUrl",
          "verificationState",
          "extractionState",
          "materialExhibitCount"
        ],
        "properties": {
          "accession": {
            "type": "string",
            "pattern": "^\\d{10}-\\d{2}-\\d{6}$"
          },
          "cik": {
            "type": [
              "string",
              "null"
            ]
          },
          "form": {
            "type": [
              "string",
              "null"
            ]
          },
          "formFamily": {
            "type": [
              "string",
              "null"
            ]
          },
          "isAmendment": {
            "type": "boolean"
          },
          "filedAt": {
            "type": "string",
            "format": "date"
          },
          "acceptedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "periodEnd": {
            "type": [
              "string",
              "null"
            ],
            "format": "date"
          },
          "currentReportItems": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "filingUrl": {
            "type": "string",
            "format": "uri"
          },
          "verificationState": {
            "type": "string"
          },
          "extractionState": {
            "type": "string",
            "enum": [
              "available",
              "missing"
            ]
          },
          "materialExhibitCount": {
            "type": "integer",
            "minimum": 0
          }
        }
      }
    },
    "limitations": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
FinancialComparabilityReason
{
  "type": "object",
  "required": [
    "code",
    "category",
    "status",
    "left",
    "right",
    "message"
  ],
  "properties": {
    "code": {
      "type": "string"
    },
    "category": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "enum": [
        "same",
        "different",
        "unknown",
        "observation"
      ]
    },
    "left": {},
    "right": {},
    "message": {
      "type": "string"
    },
    "blocking": {
      "type": "boolean",
      "description": "Present on a candidate issue; whether unresolved candidate metadata prevents scalar resolution"
    }
  }
}
FinancialComparabilityResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/FinancialComparabilityReview"
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
FinancialComparabilityReview
{
  "type": "object",
  "description": "All-pairs review of a bounded candidate set. Reported numeric text is normalized without currency or scale conversion. Different rounding declarations may explain a disagreement but never resolve it. same_observed_value records exact numeric agreement while financial comparability remains a separate analyst determination. selectedFactId and value remain null in this read-only review, including when observed values are the same.",
  "required": [
    "schemaVersion",
    "scope",
    "reviewState",
    "selectedFactId",
    "value",
    "candidates",
    "comparisons",
    "summary",
    "bounds",
    "limitations"
  ],
  "properties": {
    "schemaVersion": {
      "type": "string",
      "const": "filingsift-financial-comparability-v1"
    },
    "scope": {
      "type": "object",
      "description": "Echoed normalized review scope; not an immutable data edition",
      "required": [
        "cik",
        "standardConcept",
        "periodEnd",
        "limit",
        "order"
      ],
      "properties": {
        "cik": {
          "type": "string",
          "pattern": "^[0-9]{10}$"
        },
        "standardConcept": {
          "type": "string"
        },
        "periodEnd": {
          "type": [
            "string",
            "null"
          ],
          "format": "date"
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100
        },
        "order": {
          "type": "string",
          "const": "fact_id_ascending"
        }
      }
    },
    "reviewState": {
      "type": "string",
      "enum": [
        "insufficient_facts",
        "unresolved_value_conflict",
        "scope_difference",
        "insufficient_metadata",
        "same_observed_value"
      ]
    },
    "selectedFactId": {
      "type": "null"
    },
    "value": {
      "type": "null"
    },
    "candidates": {
      "type": "array",
      "maxItems": 100,
      "items": {
        "type": "object",
        "required": [
          "candidateId",
          "sourceFact",
          "normalizedNumericValue",
          "valueState",
          "issues"
        ],
        "properties": {
          "candidateId": {
            "type": "string"
          },
          "sourceFact": {
            "type": "object",
            "additionalProperties": true,
            "description": "Unmodified source fact retaining its accession, SEC/evidence provenance, exact parsed context, unit, taxonomy/mapping metadata and verification state; missing metadata is not invented"
          },
          "normalizedNumericValue": {
            "type": [
              "string",
              "null"
            ]
          },
          "valueState": {
            "type": "string",
            "enum": [
              "numeric",
              "nil",
              "missing",
              "invalid",
              "unsafe_numeric_input"
            ]
          },
          "issues": {
            "type": "array",
            "items": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/FinancialComparabilityReason"
                },
                {
                  "type": "object",
                  "required": [
                    "blocking"
                  ]
                }
              ]
            }
          }
        }
      }
    },
    "comparisons": {
      "type": "array",
      "maxItems": 200,
      "description": "Prioritized sample ordered by value conflict, scope difference, insufficient metadata, then same observed value, with stable input-index ties",
      "items": {
        "type": "object",
        "required": [
          "comparisonId",
          "leftCandidateId",
          "rightCandidateId",
          "leftFactId",
          "rightFactId",
          "reviewState",
          "selectedFactId",
          "value",
          "reasons"
        ],
        "properties": {
          "comparisonId": {
            "type": "string"
          },
          "leftCandidateId": {
            "type": "string"
          },
          "rightCandidateId": {
            "type": "string"
          },
          "leftFactId": {
            "type": [
              "string",
              "null"
            ]
          },
          "rightFactId": {
            "type": [
              "string",
              "null"
            ]
          },
          "reviewState": {
            "type": "string",
            "enum": [
              "unresolved_value_conflict",
              "scope_difference",
              "insufficient_metadata",
              "same_observed_value"
            ]
          },
          "selectedFactId": {
            "type": "null"
          },
          "value": {
            "type": "null"
          },
          "reasons": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FinancialComparabilityReason"
            }
          }
        }
      }
    },
    "summary": {
      "type": "object",
      "description": "Counts all pairs evaluated within the bounded candidate set, including pair details omitted from comparisons",
      "required": [
        "factCount",
        "comparisonCount",
        "unresolvedPairCount",
        "scopeDifferencePairCount",
        "insufficientMetadataPairCount",
        "sameObservedValuePairCount"
      ],
      "properties": {
        "factCount": {
          "type": "integer",
          "minimum": 0,
          "maximum": 100
        },
        "comparisonCount": {
          "type": "integer",
          "minimum": 0,
          "maximum": 4950
        },
        "unresolvedPairCount": {
          "type": "integer",
          "minimum": 0,
          "maximum": 4950
        },
        "scopeDifferencePairCount": {
          "type": "integer",
          "minimum": 0,
          "maximum": 4950
        },
        "insufficientMetadataPairCount": {
          "type": "integer",
          "minimum": 0,
          "maximum": 4950
        },
        "sameObservedValuePairCount": {
          "type": "integer",
          "minimum": 0,
          "maximum": 4950
        }
      }
    },
    "bounds": {
      "type": "object",
      "required": [
        "maximumFacts",
        "maximumComparisons",
        "maximumReturnedComparisons",
        "returnedComparisonCount",
        "comparisonsTruncated",
        "inputTruncated"
      ],
      "properties": {
        "maximumFacts": {
          "type": "integer",
          "const": 100
        },
        "maximumComparisons": {
          "type": "integer",
          "const": 4950
        },
        "maximumReturnedComparisons": {
          "type": "integer",
          "const": 200
        },
        "returnedComparisonCount": {
          "type": "integer",
          "minimum": 0,
          "maximum": 200
        },
        "comparisonsTruncated": {
          "type": "boolean"
        },
        "inputTruncated": {
          "type": "boolean"
        }
      }
    },
    "limitations": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
FinancialFact
{
  "type": "object",
  "required": [
    "factType",
    "concept",
    "label",
    "value",
    "evidence",
    "evidenceSha256",
    "provenance",
    "verification",
    "uncertainty"
  ],
  "properties": {
    "factType": {
      "type": "string"
    },
    "concept": {
      "type": "string"
    },
    "label": {
      "type": "string"
    },
    "value": {
      "type": "number"
    },
    "reportedValue": {
      "type": [
        "string",
        "null"
      ]
    },
    "unit": {
      "type": [
        "string",
        "null"
      ]
    },
    "currency": {
      "type": [
        "string",
        "null"
      ]
    },
    "scale": {
      "type": [
        "number",
        "null"
      ]
    },
    "scaleLabel": {
      "type": [
        "string",
        "null"
      ]
    },
    "period": {
      "$ref": "#/components/schemas/Period"
    },
    "maturityYear": {
      "type": [
        "integer",
        "null"
      ]
    },
    "referenceRate": {
      "type": [
        "string",
        "null"
      ]
    },
    "instrument": {
      "type": "object",
      "properties": {
        "reportedName": {
          "type": "string"
        },
        "canonicalKey": {
          "type": "string"
        }
      }
    },
    "evidence": {
      "type": "string"
    },
    "evidenceSha256": {
      "type": "string"
    },
    "provenance": {
      "$ref": "#/components/schemas/Locator"
    },
    "verification": {
      "$ref": "#/components/schemas/VerificationState"
    },
    "uncertainty": {
      "$ref": "#/components/schemas/Uncertainty"
    }
  }
}
FinancingBenchmarkHistory
{
  "type": "object",
  "description": "Disabled or expired rights approval yields rights_review_required with no series or notices; provider failures do not erase SEC context",
  "required": [
    "provider",
    "status",
    "rightsReviewId",
    "termsUrl",
    "notices",
    "historyBasis",
    "series",
    "limitations"
  ],
  "properties": {
    "provider": {
      "type": "string",
      "const": "new_york_fed"
    },
    "status": {
      "type": "string",
      "enum": [
        "rights_review_required",
        "available",
        "partial",
        "no_observations",
        "unavailable"
      ]
    },
    "rightsReviewId": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 200
    },
    "termsUrl": {
      "type": "string",
      "const": "https://www.newyorkfed.org/privacy/termsofuse"
    },
    "notices": {
      "type": "array",
      "maxItems": 10,
      "items": {
        "type": "string",
        "maxLength": 4000
      },
      "description": "Approved presentation notices; consumers must display these when presenting the source"
    },
    "historyBasis": {
      "type": "string",
      "const": "latest_available_revisions_not_point_in_time"
    },
    "series": {
      "type": "array",
      "maxItems": 4,
      "items": {
        "$ref": "#/components/schemas/FinancingBenchmarkSeries"
      }
    },
    "limitations": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
FinancingBenchmarkObservation
{
  "type": "object",
  "required": [
    "effectiveDate",
    "value",
    "state",
    "candidates",
    "revisionIndicator",
    "statistics"
  ],
  "properties": {
    "effectiveDate": {
      "type": "string",
      "format": "date"
    },
    "value": {
      "type": [
        "number",
        "null"
      ],
      "description": "Percentage per annum; null for missing or conflicting values"
    },
    "state": {
      "type": "string",
      "enum": [
        "observed",
        "missing",
        "conflict"
      ]
    },
    "candidates": {
      "type": "array",
      "maxItems": 800,
      "uniqueItems": true,
      "items": {
        "type": "number"
      },
      "description": "Distinct finite same-date source values; conflicts do not select a winner"
    },
    "revisionIndicator": {
      "type": [
        "string",
        "null"
      ],
      "enum": [
        "Y",
        "",
        null
      ]
    },
    "statistics": {
      "type": "object",
      "description": "Source-reported transaction volume and volume-weighted percentile rates; contingency omissions remain null, never zero",
      "required": [
        "state",
        "volumeInBillions",
        "percentiles"
      ],
      "properties": {
        "state": {
          "type": "string",
          "enum": [
            "observed",
            "partial",
            "unavailable",
            "conflict"
          ]
        },
        "volumeInBillions": {
          "type": [
            "number",
            "null"
          ]
        },
        "percentiles": {
          "type": "object",
          "required": [
            "p1",
            "p25",
            "p75",
            "p99"
          ],
          "properties": {
            "p1": {
              "type": [
                "number",
                "null"
              ]
            },
            "p25": {
              "type": [
                "number",
                "null"
              ]
            },
            "p75": {
              "type": [
                "number",
                "null"
              ]
            },
            "p99": {
              "type": [
                "number",
                "null"
              ]
            }
          }
        }
      }
    }
  }
}
FinancingBenchmarkSeries
{
  "type": "object",
  "description": "Overnight benchmark context only, not CME Term SOFR or issuer borrowing cost; hashes and retrieval timestamps do not create an immutable snapshot",
  "required": [
    "id",
    "label",
    "currency",
    "unit",
    "status",
    "sourceUrl",
    "retrievedAt",
    "sourceResponseSha256",
    "observations",
    "gaps"
  ],
  "properties": {
    "id": {
      "type": "string",
      "enum": [
        "sofr",
        "effr",
        "tgcr",
        "bgcr"
      ]
    },
    "label": {
      "type": "string"
    },
    "currency": {
      "type": "string",
      "const": "USD"
    },
    "unit": {
      "type": "string",
      "const": "percent_per_annum"
    },
    "status": {
      "type": "string",
      "enum": [
        "available",
        "partial",
        "no_observations",
        "unavailable"
      ]
    },
    "sourceUrl": {
      "type": "string",
      "format": "uri",
      "description": "Fixed New York Fed series endpoint with only date query bounds"
    },
    "retrievedAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time",
      "description": "Successful fetch time",
      "not original publication time": null
    },
    "sourceResponseSha256": {
      "type": [
        "string",
        "null"
      ],
      "pattern": "^[a-f0-9]{64}$"
    },
    "observations": {
      "type": "array",
      "maxItems": 366,
      "items": {
        "$ref": "#/components/schemas/FinancingBenchmarkObservation"
      }
    },
    "gaps": {
      "type": "array",
      "uniqueItems": true,
      "items": {
        "type": "string"
      },
      "description": "Explicit missing",
      "conflicting": null,
      "empty": null,
      "transport": null,
      "capacity": null,
      "or parser conditions; no forward-fill is performed": null
    }
  }
}
FinancingConditions
{
  "type": "object",
  "required": [
    "schemaVersion",
    "issuer",
    "request",
    "generatedAt",
    "filingContext",
    "benchmarks",
    "excludedSources",
    "limitations"
  ],
  "properties": {
    "schemaVersion": {
      "type": "string",
      "const": "filingsift-financing-conditions-v1"
    },
    "issuer": {
      "type": "object",
      "required": [
        "ticker",
        "name",
        "cik"
      ],
      "properties": {
        "ticker": {
          "type": "string",
          "pattern": "^[A-Z0-9.-]{1,16}$"
        },
        "name": {
          "type": [
            "string",
            "null"
          ]
        },
        "cik": {
          "type": [
            "string",
            "null"
          ],
          "pattern": "^[0-9]{1,10}$"
        }
      }
    },
    "request": {
      "type": "object",
      "description": "Original requested dates, subject to the independent provider retrieval lookback",
      "required": [
        "startDate",
        "endDate"
      ],
      "properties": {
        "startDate": {
          "type": "string",
          "format": "date"
        },
        "endDate": {
          "type": "string",
          "format": "date"
        }
      }
    },
    "generatedAt": {
      "type": "string",
      "format": "date-time"
    },
    "filingContext": {
      "type": "object",
      "required": [
        "events",
        "coverage",
        "limitations"
      ],
      "properties": {
        "events": {
          "type": "array",
          "maxItems": 200,
          "items": {
            "$ref": "#/components/schemas/FinancingConditionsEvent"
          }
        },
        "coverage": {
          "$ref": "#/components/schemas/FinancingConditionsCoverage"
        },
        "limitations": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "benchmarks": {
      "$ref": "#/components/schemas/FinancingBenchmarkHistory"
    },
    "excludedSources": {
      "type": "array",
      "maxItems": 1,
      "items": {
        "type": "object",
        "required": [
          "id",
          "status",
          "reason",
          "termsUrl"
        ],
        "properties": {
          "id": {
            "type": "string",
            "const": "bis"
          },
          "status": {
            "type": "string",
            "const": "rights_review_required"
          },
          "reason": {
            "type": "string"
          },
          "termsUrl": {
            "type": "string",
            "const": "https://data.bis.org/help/legal"
          }
        }
      }
    },
    "limitations": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
FinancingConditionsCoverage
{
  "type": "object",
  "description": "Receipt for inspected stored filings, not a complete SEC denominator; event absence is not proof of no financing activity",
  "required": [
    "filingCount",
    "maximumFilings",
    "truncated",
    "fromFiledAt",
    "toFiledAt",
    "inspectedAccessions",
    "requestedFiledFrom",
    "requestedFiledTo",
    "historyStart",
    "eventLimit",
    "eventTruncated",
    "unsupportedSourceCount",
    "expectedSecFilingCount",
    "sourceCompleteness"
  ],
  "properties": {
    "filingCount": {
      "type": "integer",
      "minimum": 0,
      "maximum": 40
    },
    "maximumFilings": {
      "type": "integer",
      "const": 40
    },
    "truncated": {
      "type": "boolean",
      "description": "The eligible stored filing lookahead exceeded 40"
    },
    "fromFiledAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date"
    },
    "toFiledAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date"
    },
    "inspectedAccessions": {
      "type": "array",
      "maxItems": 40,
      "uniqueItems": true,
      "items": {
        "type": "string",
        "pattern": "^\\d{10}-\\d{2}-\\d{6}$"
      }
    },
    "requestedFiledFrom": {
      "type": "string",
      "format": "date",
      "description": "Effective SEC start after history-entitlement clamping"
    },
    "requestedFiledTo": {
      "type": "string",
      "format": "date"
    },
    "historyStart": {
      "type": "string",
      "format": "date"
    },
    "eventLimit": {
      "type": "integer",
      "const": 200
    },
    "eventTruncated": {
      "type": "boolean"
    },
    "unsupportedSourceCount": {
      "type": "integer",
      "minimum": 0
    },
    "expectedSecFilingCount": {
      "type": "null"
    },
    "sourceCompleteness": {
      "type": "string",
      "const": "unknown"
    }
  }
}
FinancingConditionsEvent
{
  "type": "object",
  "description": "Retained extraction candidate; reported_action is source metadata, not independent transaction verification",
  "required": [
    "id",
    "concept",
    "eventDate",
    "filedAt",
    "amount",
    "currency",
    "occurrenceStatus",
    "source"
  ],
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    },
    "concept": {
      "type": "string",
      "enum": [
        "issuance",
        "repayment",
        "redemption",
        "refinancing",
        "amendment"
      ]
    },
    "eventDate": {
      "type": [
        "string",
        "null"
      ],
      "format": "date",
      "description": "Explicit valid extraction date only; never replaced with the filing date"
    },
    "filedAt": {
      "type": "string",
      "format": "date"
    },
    "amount": {
      "type": [
        "number",
        "null"
      ],
      "description": "Finite extracted amount only; missing is not zero"
    },
    "currency": {
      "type": [
        "string",
        "null"
      ],
      "pattern": "^[A-Z]{3}$"
    },
    "occurrenceStatus": {
      "type": "string",
      "enum": [
        "reported_action",
        "unresolved"
      ]
    },
    "source": {
      "$ref": "#/components/schemas/FinancingConditionsSource"
    }
  }
}
FinancingConditionsResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/FinancingConditions"
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
FinancingConditionsSource
{
  "type": "object",
  "description": "SEC accession and exact document evidence; observation, document, and filing review states remain independent and are never upgraded",
  "required": [
    "accession",
    "form",
    "filedAt",
    "periodEnd",
    "document",
    "url",
    "filingUrl",
    "evidence",
    "evidenceSha256",
    "locator",
    "verificationState",
    "documentVerificationState",
    "filingVerificationState",
    "illustrative",
    "readerUrl"
  ],
  "properties": {
    "accession": {
      "type": "string",
      "pattern": "^\\d{10}-\\d{2}-\\d{6}$"
    },
    "form": {
      "type": "string"
    },
    "filedAt": {
      "type": "string",
      "format": "date"
    },
    "periodEnd": {
      "type": [
        "string",
        "null"
      ],
      "format": "date"
    },
    "document": {
      "type": "object",
      "required": [
        "kind",
        "category"
      ],
      "properties": {
        "kind": {
          "type": "string",
          "enum": [
            "primary",
            "material_exhibit"
          ]
        },
        "name": {
          "type": "string"
        },
        "documentType": {
          "type": "string"
        },
        "category": {
          "type": "string"
        }
      }
    },
    "url": {
      "type": "string",
      "format": "uri",
      "description": "Exact retained SEC primary or exhibit document URL"
    },
    "filingUrl": {
      "type": "string",
      "format": "uri",
      "description": "SEC primary filing document URL"
    },
    "evidence": {
      "type": "string",
      "minLength": 1
    },
    "evidenceSha256": {
      "type": "string",
      "description": "Retained extraction evidence hash; not an authenticity signature"
    },
    "locator": {
      "description": "Original extraction provenance or locator",
      "or null when unavailable": null
    },
    "verificationState": {
      "type": "string",
      "description": "Observation validation state; absent states are represented as source-captured"
    },
    "documentVerificationState": {
      "type": "string"
    },
    "filingVerificationState": {
      "type": "string"
    },
    "illustrative": {
      "type": "boolean",
      "description": "True when any retained source level is marked illustrative; consumers must preserve that label"
    },
    "readerUrl": {
      "type": "string"
    }
  }
}
FinancingCorpusCoverage
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "schemaVersion",
    "corpusId",
    "manifestSha256",
    "status",
    "coverageBasis",
    "declaredScope",
    "observedFilingCount",
    "completedIssuerCount",
    "completedFilingCount",
    "queuedFilingCount",
    "processingFilingCount",
    "retryWaitFilingCount",
    "rejectedFilingCount",
    "latestCompletedAt",
    "completionPercent",
    "measuredAt",
    "limitations"
  ],
  "properties": {
    "schemaVersion": {
      "type": "string",
      "const": "filingsift-financing-corpus-coverage-v1"
    },
    "corpusId": {
      "type": "string",
      "const": "financing-v1"
    },
    "manifestSha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "status": {
      "type": "string",
      "enum": [
        "not_started",
        "partial",
        "processing",
        "partial_with_failures"
      ]
    },
    "coverageBasis": {
      "type": "string",
      "const": "production_ingestion_jobs_with_financing_corpus_discovery_source"
    },
    "declaredScope": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "issuerCount",
        "filingCount",
        "filedFrom",
        "filedThrough",
        "forms"
      ],
      "properties": {
        "issuerCount": {
          "type": "integer",
          "const": 6047
        },
        "filingCount": {
          "type": "null",
          "description": "The manifest does not declare a final eligible filing denominator."
        },
        "filedFrom": {
          "type": "string",
          "format": "date",
          "const": "2020-01-01"
        },
        "filedThrough": {
          "type": "string",
          "format": "date",
          "const": "2026-10-15"
        },
        "forms": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "observedFilingCount": {
      "type": "integer",
      "minimum": 0
    },
    "completedIssuerCount": {
      "type": "integer",
      "minimum": 0,
      "maximum": 6047
    },
    "completedFilingCount": {
      "type": "integer",
      "minimum": 0
    },
    "queuedFilingCount": {
      "type": "integer",
      "minimum": 0
    },
    "processingFilingCount": {
      "type": "integer",
      "minimum": 0
    },
    "retryWaitFilingCount": {
      "type": "integer",
      "minimum": 0
    },
    "rejectedFilingCount": {
      "type": "integer",
      "minimum": 0
    },
    "latestCompletedAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "completionPercent": {
      "type": "null",
      "description": "Unavailable because the final eligible filing denominator is not declared."
    },
    "measuredAt": {
      "type": "string",
      "format": "date-time"
    },
    "limitations": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
FinancingScreenRequest
{
  "type": "object",
  "required": [
    "screen"
  ],
  "properties": {
    "screen": {
      "type": "string",
      "enum": [
        "lifecycle",
        "maturity",
        "liquidity",
        "availability",
        "covenant",
        "default"
      ]
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 50
    },
    "filters": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "tickers": {
          "type": "array",
          "maxItems": 50,
          "uniqueItems": true,
          "items": {
            "type": "string",
            "pattern": "^[A-Z0-9.-]{1,16}$"
          }
        },
        "forms": {
          "type": "array",
          "maxItems": 6,
          "uniqueItems": true,
          "items": {
            "type": "string"
          }
        },
        "verificationStates": {
          "type": "array",
          "maxItems": 4,
          "uniqueItems": true,
          "items": {
            "$ref": "#/components/schemas/VerificationState"
          }
        },
        "filedFrom": {
          "type": [
            "string",
            "null"
          ],
          "format": "date"
        },
        "filedTo": {
          "type": [
            "string",
            "null"
          ],
          "format": "date"
        },
        "minimum": {
          "type": [
            "number",
            "null"
          ],
          "description": "Maturity year for the maturity screen; otherwise a retained numeric value",
          "threshold or ratio.": null
        },
        "maximum": {
          "type": [
            "number",
            "null"
          ],
          "description": "Maturity year for the maturity screen; otherwise a retained numeric value",
          "threshold or ratio.": null
        }
      }
    }
  }
}
FinancingSignal
{
  "type": "object",
  "required": [
    "signalType",
    "concept",
    "action",
    "evidence",
    "evidenceSha256",
    "locator",
    "verification",
    "uncertainty"
  ],
  "properties": {
    "signalType": {
      "type": "string"
    },
    "concept": {
      "type": "string"
    },
    "action": {
      "type": "string"
    },
    "threshold": {
      "type": [
        "number",
        "null"
      ]
    },
    "currency": {
      "type": [
        "string",
        "null"
      ]
    },
    "ratio": {
      "type": [
        "number",
        "null"
      ]
    },
    "comparator": {
      "type": [
        "string",
        "null"
      ],
      "enum": [
        "maximum",
        "minimum",
        null
      ]
    },
    "evidence": {
      "type": "string"
    },
    "evidenceSha256": {
      "type": "string"
    },
    "locator": {
      "$ref": "#/components/schemas/Locator"
    },
    "verification": {
      "$ref": "#/components/schemas/VerificationState"
    },
    "uncertainty": {
      "$ref": "#/components/schemas/Uncertainty"
    }
  }
}
FootnoteCatalog
{
  "type": "object",
  "required": [
    "schemaVersion",
    "categories",
    "limitations"
  ],
  "properties": {
    "schemaVersion": {
      "type": "string",
      "const": "filingsift-footnotes-v1"
    },
    "categories": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "label",
          "metrics"
        ],
        "properties": {
          "id": {
            "type": "string",
            "enum": [
              "leases",
              "income_taxes",
              "warranties"
            ]
          },
          "label": {
            "type": "string"
          },
          "metrics": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FootnoteMetric"
            }
          }
        }
      }
    },
    "limitations": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
FootnoteCatalogResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/FootnoteCatalog"
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
FootnoteComparison
{
  "type": "object",
  "required": [
    "schemaVersion",
    "left",
    "right",
    "state",
    "reasons",
    "difference",
    "calculation",
    "unitKey",
    "limitations"
  ],
  "properties": {
    "schemaVersion": {
      "type": "string",
      "const": "filingsift-footnotes-v1"
    },
    "left": {
      "$ref": "#/components/schemas/FootnoteRecord"
    },
    "right": {
      "$ref": "#/components/schemas/FootnoteRecord"
    },
    "state": {
      "type": "string",
      "enum": [
        "not_comparable",
        "same_reported_value",
        "unresolved_value_conflict",
        "reported_change"
      ]
    },
    "reasons": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "difference": {
      "type": [
        "string",
        "null"
      ],
      "pattern": "^-?\\d+(?:\\.\\d+)?$"
    },
    "calculation": {
      "type": [
        "string",
        "null"
      ],
      "enum": [
        "right_minus_left_as_reported",
        null
      ]
    },
    "unitKey": {
      "type": [
        "string",
        "null"
      ]
    },
    "limitations": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
FootnoteComparisonResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/FootnoteComparison"
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
FootnoteMetric
{
  "type": "object",
  "required": [
    "metricId",
    "category",
    "label",
    "conceptName",
    "periodKind",
    "unitType",
    "role"
  ],
  "properties": {
    "metricId": {
      "type": "string"
    },
    "category": {
      "type": "string",
      "enum": [
        "leases",
        "income_taxes",
        "warranties"
      ]
    },
    "label": {
      "type": "string"
    },
    "conceptName": {
      "type": "string"
    },
    "periodKind": {
      "type": "string",
      "enum": [
        "instant",
        "duration"
      ]
    },
    "unitType": {
      "type": "string",
      "enum": [
        "currency",
        "fraction"
      ]
    },
    "role": {
      "type": "string",
      "enum": [
        "balance",
        "expense",
        "rate",
        "movement",
        "maturity_fiscal",
        "maturity_rolling"
      ]
    }
  }
}
FootnotePage
{
  "type": "object",
  "required": [
    "schemaVersion",
    "scope",
    "records",
    "pagination",
    "coverage",
    "package",
    "limitations"
  ],
  "properties": {
    "schemaVersion": {
      "type": "string",
      "const": "filingsift-footnotes-v1"
    },
    "scope": {
      "type": "object",
      "required": [
        "category",
        "accession"
      ],
      "properties": {
        "category": {
          "type": "string",
          "enum": [
            "leases",
            "income_taxes",
            "warranties"
          ]
        },
        "accession": {
          "type": "string",
          "pattern": "^\\d{10}-\\d{2}-\\d{6}$"
        }
      }
    },
    "records": {
      "type": "array",
      "maxItems": 100,
      "items": {
        "$ref": "#/components/schemas/FootnoteRecord"
      }
    },
    "pagination": {
      "type": "object",
      "required": [
        "limit",
        "afterFactId",
        "hasMore",
        "nextCursor"
      ],
      "properties": {
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100
        },
        "afterFactId": {
          "type": [
            "string",
            "null"
          ],
          "pattern": "^[a-f0-9]{64}$"
        },
        "hasMore": {
          "type": "boolean"
        },
        "nextCursor": {
          "type": [
            "string",
            "null"
          ],
          "pattern": "^[a-f0-9]{64}$"
        }
      }
    },
    "coverage": {
      "type": "object",
      "required": [
        "basis",
        "completeHistoricalCoverage",
        "snapshotStable"
      ],
      "properties": {
        "basis": {
          "type": "string",
          "const": "retained_selected_concepts"
        },
        "completeHistoricalCoverage": {
          "type": "boolean",
          "const": false
        },
        "snapshotStable": {
          "type": "boolean",
          "const": false
        }
      }
    },
    "package": {
      "type": "object",
      "required": [
        "status",
        "factCount"
      ],
      "properties": {
        "status": {
          "type": "string"
        },
        "factCount": {
          "type": [
            "integer",
            "null"
          ],
          "minimum": 0
        }
      }
    },
    "limitations": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
FootnotePageResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/FootnotePage"
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
FootnoteRecord
{
  "type": "object",
  "required": [
    "metricId",
    "category",
    "label",
    "role",
    "unitType",
    "valueState",
    "normalizedNumericValue",
    "unitKey",
    "state",
    "issues",
    "sourceFact"
  ],
  "properties": {
    "metricId": {
      "type": "string"
    },
    "category": {
      "type": "string",
      "enum": [
        "leases",
        "income_taxes",
        "warranties"
      ]
    },
    "label": {
      "type": "string"
    },
    "role": {
      "type": "string"
    },
    "unitType": {
      "type": "string",
      "enum": [
        "currency",
        "fraction"
      ]
    },
    "valueState": {
      "type": "string",
      "enum": [
        "numeric",
        "nil",
        "missing",
        "invalid"
      ]
    },
    "normalizedNumericValue": {
      "type": [
        "string",
        "null"
      ],
      "pattern": "^-?\\d+(?:\\.\\d+)?$"
    },
    "unitKey": {
      "type": [
        "string",
        "null"
      ]
    },
    "state": {
      "type": "string",
      "enum": [
        "observed",
        "needs_review"
      ]
    },
    "issues": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "sourceFact": {
      "$ref": "#/components/schemas/FootnoteSourceFact"
    }
  }
}
FootnoteSourceFact
{
  "type": "object",
  "required": [
    "factId",
    "accession",
    "cik",
    "conceptName",
    "qualifiedName",
    "namespaceUri",
    "value",
    "numericValue",
    "isNil",
    "context",
    "unit",
    "evidenceText",
    "filingUrl",
    "sourceUrl",
    "sourceLocator",
    "verification"
  ],
  "properties": {
    "factId": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    },
    "accession": {
      "type": "string",
      "pattern": "^\\d{10}-\\d{2}-\\d{6}$"
    },
    "cik": {
      "type": "string",
      "pattern": "^\\d{10}$"
    },
    "conceptName": {
      "type": "string"
    },
    "qualifiedName": {
      "type": "string"
    },
    "namespaceUri": {
      "type": "string"
    },
    "namespacePrefix": {
      "type": [
        "string",
        "null"
      ]
    },
    "taxonomyVersion": {
      "type": [
        "string",
        "null"
      ]
    },
    "parserVersion": {
      "type": [
        "string",
        "null"
      ]
    },
    "packageSourceSha256": {
      "type": [
        "object",
        "null"
      ],
      "additionalProperties": {
        "type": [
          "string",
          "null"
        ]
      }
    },
    "form": {
      "type": [
        "string",
        "null"
      ]
    },
    "filedAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date"
    },
    "periodEnd": {
      "type": [
        "string",
        "null"
      ],
      "format": "date"
    },
    "filingUrl": {
      "type": [
        "string",
        "null"
      ]
    },
    "sourceUrl": {
      "type": [
        "string",
        "null"
      ]
    },
    "sourceLocator": {
      "type": [
        "string",
        "object",
        "null"
      ]
    },
    "evidenceText": {
      "type": [
        "string",
        "null"
      ]
    },
    "verification": {
      "type": [
        "string",
        "null"
      ]
    },
    "value": {
      "type": [
        "string",
        "null"
      ]
    },
    "numericValue": {
      "type": [
        "string",
        "null"
      ],
      "pattern": "^-?\\d+(?:\\.\\d+)?$"
    },
    "isNil": {
      "type": "boolean"
    },
    "decimals": {
      "type": [
        "string",
        "null"
      ]
    },
    "precision": {
      "type": [
        "string",
        "null"
      ]
    },
    "contextId": {
      "type": [
        "string",
        "null"
      ]
    },
    "context": {
      "type": "object",
      "required": [
        "contextId",
        "entityIdentifier",
        "entityScheme",
        "periodKind",
        "instant",
        "startDate",
        "endDate",
        "hasScenario",
        "dimensions",
        "contextSha256"
      ],
      "properties": {
        "contextId": {
          "type": [
            "string",
            "null"
          ]
        },
        "entityIdentifier": {
          "type": [
            "string",
            "null"
          ]
        },
        "entityScheme": {
          "type": [
            "string",
            "null"
          ]
        },
        "periodKind": {
          "type": [
            "string",
            "null"
          ]
        },
        "instant": {
          "type": [
            "string",
            "null"
          ],
          "format": "date"
        },
        "startDate": {
          "type": [
            "string",
            "null"
          ],
          "format": "date"
        },
        "endDate": {
          "type": [
            "string",
            "null"
          ],
          "format": "date"
        },
        "hasScenario": {
          "type": [
            "boolean",
            "null"
          ]
        },
        "dimensions": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [],
            "properties": {
              "axis": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "member": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "typedValue": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "kind": {
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          }
        },
        "contextSha256": {
          "type": [
            "string",
            "null"
          ]
        }
      }
    },
    "unitId": {
      "type": [
        "string",
        "null"
      ]
    },
    "unit": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "measures": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "numerator": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "denominator": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "unitId": {
          "type": [
            "string",
            "null"
          ]
        },
        "unitSha256": {
          "type": [
            "string",
            "null"
          ]
        }
      }
    },
    "mapping": {
      "type": [
        "object",
        "null"
      ],
      "additionalProperties": true
    },
    "standardConcept": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "description": "Unmodified retained fact. Evidence text may be the tagged numeric token, not surrounding narrative. Nullable or missing metadata is never invented; extra raw parser fields are preserved."
}
Form
{
  "type": "string",
  "enum": [
    "10-Q",
    "10-Q/A",
    "10-K",
    "10-K/A",
    "8-K",
    "8-K/A",
    "20-F",
    "20-F/A",
    "6-K",
    "6-K/A",
    "S-1",
    "S-1/A",
    "S-3",
    "S-3/A",
    "S-4",
    "S-4/A",
    "424B1",
    "424B2",
    "424B3",
    "424B4",
    "424B5",
    "424B7",
    "424B8",
    "DEF 14A",
    "DEFA14A",
    "3",
    "3/A",
    "4",
    "4/A",
    "5",
    "5/A",
    "SC 13D",
    "SC 13D/A",
    "SC 13G",
    "SC 13G/A",
    "SCHEDULE 13D",
    "SCHEDULE 13D/A",
    "SCHEDULE 13G",
    "SCHEDULE 13G/A",
    "13F-HR",
    "13F-HR/A",
    "13F-NT",
    "13F-NT/A",
    "SC TO-C",
    "SC TO-C/A",
    "SC TO-I",
    "SC TO-I/A",
    "SC TO-T",
    "SC TO-T/A",
    "SC 14D9",
    "SC 14D9/A",
    "SC 13E3",
    "SC 13E3/A",
    "PREM14A",
    "PRER14A",
    "DEFM14A",
    "DEFM14A/A",
    "425"
  ]
}
G (5)
GenericResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "type": "object",
      "additionalProperties": true
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
GleifEntity
{
  "type": "object",
  "required": [
    "lei",
    "legalName",
    "otherNames",
    "jurisdiction",
    "legalAddress",
    "entityStatus",
    "registrationStatus",
    "lastUpdated",
    "nextRenewal",
    "successorLei",
    "successorLeis",
    "registeredAs",
    "registrationAuthorityId",
    "corroborationLevel",
    "validationAuthorityId",
    "validatedAs",
    "sourceUrl"
  ],
  "properties": {
    "lei": {
      "$ref": "#/components/schemas/EntityMatchLei"
    },
    "legalName": {
      "type": "string",
      "minLength": 1,
      "maxLength": 500
    },
    "otherNames": {
      "type": "array",
      "maxItems": 100,
      "items": {
        "type": "object",
        "required": [
          "name",
          "language",
          "type"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 500
          },
          "language": {
            "type": [
              "string",
              "null"
            ]
          },
          "type": {
            "type": [
              "string",
              "null"
            ]
          }
        }
      }
    },
    "jurisdiction": {
      "type": [
        "string",
        "null"
      ]
    },
    "legalAddress": {
      "type": [
        "object",
        "null"
      ],
      "required": [
        "lines",
        "city",
        "region",
        "country",
        "postalCode"
      ],
      "properties": {
        "lines": {
          "type": "array",
          "maxItems": 20,
          "items": {
            "type": "string"
          }
        },
        "city": {
          "type": [
            "string",
            "null"
          ]
        },
        "region": {
          "type": [
            "string",
            "null"
          ]
        },
        "country": {
          "type": [
            "string",
            "null"
          ]
        },
        "postalCode": {
          "type": [
            "string",
            "null"
          ]
        }
      }
    },
    "entityStatus": {
      "type": [
        "string",
        "null"
      ]
    },
    "registrationStatus": {
      "type": [
        "string",
        "null"
      ],
      "description": "LEI registration state is not issuer-match confidence"
    },
    "lastUpdated": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "nextRenewal": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "successorLei": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/EntityMatchLei"
        },
        {
          "type": "null"
        }
      ],
      "description": "Set only when one successor is reported; never automatically followed"
    },
    "successorLeis": {
      "type": "array",
      "maxItems": 100,
      "uniqueItems": true,
      "items": {
        "$ref": "#/components/schemas/EntityMatchLei"
      }
    },
    "registeredAs": {
      "type": [
        "string",
        "null"
      ]
    },
    "registrationAuthorityId": {
      "type": [
        "string",
        "null"
      ]
    },
    "corroborationLevel": {
      "type": [
        "string",
        "null"
      ]
    },
    "validationAuthorityId": {
      "type": [
        "string",
        "null"
      ]
    },
    "validatedAs": {
      "type": [
        "string",
        "null"
      ]
    },
    "sourceUrl": {
      "type": "string",
      "format": "uri",
      "description": "Fixed GLEIF exact-LEI record URL"
    }
  }
}
GleifExpansion
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "schemaVersion",
    "provider",
    "status",
    "lei",
    "license",
    "rightsReviewId",
    "termsUrl",
    "retrievedAt",
    "receipts",
    "datasets",
    "gaps",
    "limitations"
  ],
  "properties": {
    "schemaVersion": {
      "type": "string",
      "const": "filingsift-gleif-expansion-v1"
    },
    "provider": {
      "type": "string",
      "const": "gleif"
    },
    "status": {
      "type": "string",
      "enum": [
        "disabled",
        "available",
        "partial",
        "unavailable"
      ]
    },
    "lei": {
      "$ref": "#/components/schemas/EntityMatchLei"
    },
    "license": {
      "type": "string",
      "const": "CC0-1.0"
    },
    "rightsReviewId": {
      "type": [
        "string",
        "null"
      ]
    },
    "termsUrl": {
      "type": "string",
      "const": "https://www.gleif.org/en/meta/lei-data-terms-of-use"
    },
    "retrievedAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "receipts": {
      "type": "array",
      "maxItems": 6,
      "items": {
        "type": "object",
        "required": [
          "sourceUrl",
          "retrievedAt",
          "sourceResponseSha256",
          "goldenCopyPublishedAt"
        ],
        "properties": {
          "sourceUrl": {
            "type": "string",
            "format": "uri"
          },
          "retrievedAt": {
            "type": "string",
            "format": "date-time"
          },
          "sourceResponseSha256": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$"
          },
          "goldenCopyPublishedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          }
        }
      }
    },
    "datasets": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "timeline",
        "level2"
      ],
      "properties": {
        "timeline": {
          "type": "object",
          "required": [
            "status",
            "contract",
            "record",
            "gaps"
          ],
          "properties": {
            "status": {
              "type": "string",
              "enum": [
                "available",
                "empty",
                "unavailable",
                "rights_review_required"
              ]
            },
            "contract": {
              "type": "string",
              "const": "lei-record-event-timeline-2026-10-14"
            },
            "record": {
              "type": [
                "object",
                "null"
              ],
              "description": "Current-record creation",
              "registration": null,
              "renewal": null,
              "expiration and up to 200 provider-reported entity events with affected fields": null
            },
            "gaps": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        },
        "level2": {
          "type": "object",
          "required": [
            "status",
            "contract",
            "directChildren",
            "ultimateChildren",
            "coverage",
            "gaps"
          ],
          "properties": {
            "status": {
              "type": "string",
              "enum": [
                "available",
                "partial",
                "empty",
                "unavailable",
                "rights_review_required"
              ]
            },
            "contract": {
              "type": "string",
              "const": "level2-child-relationships-2026-10-14"
            },
            "directChildren": {
              "type": "array",
              "maxItems": 20,
              "items": {
                "type": "object",
                "description": "Source-reported direct accounting-consolidation child relationship",
                "registration metadata and periods": null
              }
            },
            "ultimateChildren": {
              "type": "array",
              "maxItems": 20,
              "items": {
                "type": "object",
                "description": "Source-reported ultimate accounting-consolidation child relationship",
                "registration metadata and periods": null
              }
            },
            "coverage": {
              "type": [
                "object",
                "null"
              ],
              "description": "Direct/ultimate first-page returned",
              "total": null,
              "limit 20 and explicit truncation": null
            },
            "gaps": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "gaps": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "limitations": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
GleifParentObservation
{
  "type": "object",
  "description": "Reported accounting consolidation or reporting exception; never guarantees, equity percentages, beneficial ownership or complete ownership",
  "required": [
    "kind",
    "status",
    "relationshipType",
    "parentLei",
    "relationshipStatus",
    "registrationStatus",
    "lastUpdated",
    "periods",
    "corroborationLevel",
    "exception",
    "sourceUrl",
    "validFrom",
    "validTo",
    "deletedAt",
    "gaps"
  ],
  "properties": {
    "kind": {
      "type": "string",
      "enum": [
        "direct",
        "ultimate"
      ]
    },
    "status": {
      "type": "string",
      "enum": [
        "reported",
        "reporting_exception",
        "unknown",
        "unavailable"
      ]
    },
    "relationshipType": {
      "type": [
        "string",
        "null"
      ],
      "enum": [
        "IS_DIRECTLY_CONSOLIDATED_BY",
        "IS_ULTIMATELY_CONSOLIDATED_BY",
        null
      ]
    },
    "parentLei": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/EntityMatchLei"
        },
        {
          "type": "null"
        }
      ]
    },
    "relationshipStatus": {
      "type": [
        "string",
        "null"
      ]
    },
    "registrationStatus": {
      "type": [
        "string",
        "null"
      ]
    },
    "lastUpdated": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "periods": {
      "type": "array",
      "maxItems": 30,
      "items": {
        "type": "object",
        "required": [
          "type",
          "startDate",
          "endDate"
        ],
        "properties": {
          "type": {
            "type": "string"
          },
          "startDate": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "endDate": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          }
        }
      }
    },
    "corroborationLevel": {
      "type": [
        "string",
        "null"
      ]
    },
    "exception": {
      "type": [
        "object",
        "null"
      ],
      "required": [
        "category",
        "reason",
        "reference"
      ],
      "properties": {
        "category": {
          "type": "string",
          "enum": [
            "DIRECT_ACCOUNTING_CONSOLIDATION_PARENT",
            "ULTIMATE_ACCOUNTING_CONSOLIDATION_PARENT"
          ]
        },
        "reason": {
          "type": "string"
        },
        "reference": {
          "type": [
            "string",
            "null"
          ],
          "maxLength": 4000
        }
      }
    },
    "sourceUrl": {
      "type": [
        "string",
        "null"
      ],
      "format": "uri"
    },
    "validFrom": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "validTo": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "deletedAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "gaps": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
GleifResearchResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "schemaVersion",
        "subject",
        "expansion"
      ],
      "properties": {
        "schemaVersion": {
          "type": "string",
          "const": "filingsift-gleif-research-v1"
        },
        "subject": {
          "$ref": "#/components/schemas/EntityMatchSubject"
        },
        "expansion": {
          "$ref": "#/components/schemas/GleifExpansion"
        }
      }
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
I (10)
Identity
{
  "type": "object",
  "required": [
    "keyId",
    "userId",
    "email",
    "displayName",
    "role",
    "scopes",
    "platformAdmin"
  ],
  "properties": {
    "keyId": {
      "type": "string",
      "format": "uuid"
    },
    "userId": {
      "type": "string",
      "format": "uuid"
    },
    "email": {
      "type": "string",
      "format": "email"
    },
    "displayName": {
      "type": "string"
    },
    "role": {
      "$ref": "#/components/schemas/MembershipRole"
    },
    "scopes": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ApiKeyScope"
      }
    },
    "platformAdmin": {
      "type": "boolean"
    }
  }
}
IntegrationChannelRequest
{
  "type": "object",
  "required": [
    "kind",
    "displayName",
    "url"
  ],
  "properties": {
    "kind": {
      "type": "string",
      "enum": [
        "slack",
        "teams"
      ]
    },
    "displayName": {
      "type": "string",
      "minLength": 1,
      "maxLength": 120
    },
    "url": {
      "type": "string",
      "format": "uri",
      "description": "Customer-owned provider webhook URL. Treat it as a secret; only supported provider hosts are accepted."
    }
  }
}
IntegrationDashboardRequest
{
  "type": "object",
  "required": [
    "displayName"
  ],
  "properties": {
    "displayName": {
      "type": "string",
      "minLength": 1,
      "maxLength": 120
    },
    "visibility": {
      "type": "string",
      "enum": [
        "personal",
        "team"
      ],
      "default": "team"
    },
    "widgets": {
      "type": "array",
      "items": {
        "type": "object"
      },
      "minItems": 0,
      "maxItems": 20
    },
    "calculatedFields": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "label",
          "expression"
        ],
        "properties": {
          "id": {
            "type": "string",
            "maxLength": 64
          },
          "label": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120
          },
          "expression": {
            "type": "string",
            "description": "Bounded arithmetic with identifiers, numbers, parentheses and + - * /. No code execution."
          }
        }
      },
      "minItems": 0,
      "maxItems": 20
    }
  }
}
IntegrationDestinationRequest
{
  "oneOf": [
    {
      "type": "object",
      "required": [
        "kind",
        "displayName",
        "bucket",
        "roleArn"
      ],
      "properties": {
        "kind": {
          "type": "string",
          "const": "s3"
        },
        "displayName": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120
        },
        "bucket": {
          "type": "string"
        },
        "region": {
          "type": "string",
          "default": "us-east-1"
        },
        "roleArn": {
          "type": "string",
          "description": "Customer cross-account role ARN. Configure trust using the external ID returned once after destination creation."
        },
        "prefix": {
          "type": "string",
          "default": "filingsift",
          "maxLength": 256
        }
      }
    },
    {
      "type": "object",
      "required": [
        "kind",
        "displayName",
        "spreadsheetId"
      ],
      "properties": {
        "kind": {
          "type": "string",
          "const": "google_sheets"
        },
        "displayName": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120
        },
        "spreadsheetId": {
          "type": "string",
          "minLength": 20,
          "maxLength": 200
        },
        "range": {
          "type": "string",
          "default": "FilingSift!A1",
          "maxLength": 200
        }
      }
    }
  ]
}
Invoice
{
  "type": "object",
  "required": [
    "id",
    "orgId",
    "status",
    "amountDueCents",
    "amountPaidCents",
    "currency",
    "createdAt"
  ],
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "orgId": {
      "type": "string",
      "format": "uuid"
    },
    "status": {
      "type": "string",
      "enum": [
        "paid",
        "open",
        "void"
      ]
    },
    "amountDueCents": {
      "type": "integer",
      "minimum": 0
    },
    "amountPaidCents": {
      "type": "integer",
      "minimum": 0
    },
    "currency": {
      "type": "string",
      "pattern": "^[A-Z]{3}$"
    },
    "hostedInvoiceUrl": {
      "type": [
        "string",
        "null"
      ],
      "format": "uri"
    },
    "receiptUrl": {
      "type": [
        "string",
        "null"
      ],
      "format": "uri"
    },
    "periodStart": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "periodEnd": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "createdAt": {
      "type": "string",
      "format": "date-time"
    },
    "updatedAt": {
      "type": "string",
      "format": "date-time"
    }
  }
}
InvoiceListResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Invoice"
      }
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
Issuer
{
  "allOf": [
    {
      "$ref": "#/components/schemas/IssuerIdentity"
    },
    {
      "type": "object",
      "required": [
        "filingCount",
        "forms",
        "latestFiling",
        "verificationStates"
      ],
      "properties": {
        "filingCount": {
          "type": "integer",
          "minimum": 1
        },
        "forms": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/Form"
          }
        },
        "verificationStates": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/VerificationState"
          }
        },
        "latestFiling": {
          "type": "object",
          "required": [
            "accession",
            "form",
            "filedAt",
            "periodEnd",
            "url"
          ],
          "properties": {
            "accession": {
              "type": "string"
            },
            "form": {
              "$ref": "#/components/schemas/Form"
            },
            "filedAt": {
              "type": "string",
              "format": "date"
            },
            "periodEnd": {
              "type": [
                "string",
                "null"
              ],
              "format": "date"
            },
            "url": {
              "type": "string",
              "format": "uri"
            }
          }
        }
      }
    }
  ]
}
IssuerIdentity
{
  "type": "object",
  "required": [
    "cik",
    "ticker",
    "name"
  ],
  "properties": {
    "cik": {
      "type": "string",
      "pattern": "^\\d{10}$"
    },
    "ticker": {
      "type": "string"
    },
    "name": {
      "type": "string"
    }
  }
}
IssuerListResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Issuer"
      }
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
IssuerOnboarding
{
  "type": "object",
  "required": [
    "ticker",
    "status",
    "queuedFilingCount",
    "processingFilingCount",
    "rejectedFilingCount",
    "indexedFilingCount"
  ],
  "properties": {
    "ticker": {
      "type": "string"
    },
    "cik": {
      "type": [
        "string",
        "null"
      ]
    },
    "legalName": {
      "type": [
        "string",
        "null"
      ]
    },
    "primaryTicker": {
      "type": [
        "string",
        "null"
      ]
    },
    "status": {
      "type": "string",
      "enum": [
        "unavailable",
        "unresolved",
        "not_requested",
        "queued",
        "discovering",
        "processing",
        "indexed",
        "indexed_partial",
        "no_supported_filings",
        "failed"
      ]
    },
    "requestedSince": {
      "type": [
        "string",
        "null"
      ],
      "format": "date"
    },
    "requestedUntil": {
      "type": [
        "string",
        "null"
      ],
      "format": "date"
    },
    "filingLimit": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 1,
      "maximum": 25
    },
    "candidateCount": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 0,
      "maximum": 25
    },
    "queuedFilingCount": {
      "type": "integer",
      "minimum": 0
    },
    "processingFilingCount": {
      "type": "integer",
      "minimum": 0
    },
    "rejectedFilingCount": {
      "type": "integer",
      "minimum": 0
    },
    "indexedFilingCount": {
      "type": "integer",
      "minimum": 0
    },
    "errorCode": {
      "type": [
        "string",
        "null"
      ]
    },
    "latestAcceptedAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "latestIngestedAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "ingestionLagSeconds": {
      "type": [
        "number",
        "null"
      ],
      "minimum": 0
    },
    "oldestPendingAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "lastPollAttemptAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "lastPollSuccessAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "nextPollAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "consecutivePollFailures": {
      "type": "integer",
      "minimum": 0
    },
    "pollErrorCode": {
      "type": [
        "string",
        "null"
      ]
    }
  }
}
L (4)
LeadRequest
{
  "type": "object",
  "required": [
    "name",
    "email",
    "company",
    "workflow",
    "pilot",
    "turnstileToken"
  ],
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 120
    },
    "email": {
      "type": "string",
      "format": "email",
      "maxLength": 254
    },
    "company": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "workflow": {
      "type": "string",
      "enum": [
        "Credit or covenant monitoring",
        "Investment research",
        "Financial data product",
        "AI or agent development",
        "Other"
      ]
    },
    "coverage": {
      "type": "string",
      "maxLength": 2000
    },
    "pilot": {
      "type": "string",
      "enum": [
        "Ready for a paid pilot",
        "Open to a paid pilot after validation",
        "Researching for later"
      ]
    },
    "website": {
      "type": "string",
      "maxLength": 200,
      "description": "Honeypot; human users leave blank."
    },
    "turnstileToken": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2048,
      "writeOnly": true,
      "description": "Single-use Cloudflare Turnstile token for action lead."
    }
  }
}
LeadResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "type": "object",
      "required": [
        "id",
        "receivedAt"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "receivedAt": {
          "type": "string",
          "format": "date-time"
        }
      }
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
Locator
{
  "type": "object",
  "description": "Parser-specific bounded location; fields are additive within v1.",
  "additionalProperties": true
}
LoginRequest
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "email",
    "password",
    "turnstileToken"
  ],
  "properties": {
    "email": {
      "type": "string",
      "format": "email",
      "maxLength": 254
    },
    "password": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128,
      "writeOnly": true
    },
    "rememberMe": {
      "type": "boolean",
      "default": false,
      "description": "When true",
      "issue a seven-day browser session; otherwise issue a 12-hour session.": null
    },
    "turnstileToken": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2048,
      "writeOnly": true,
      "description": "Single-use Cloudflare Turnstile token for action auth-login."
    }
  }
}
M (26)
MarketCoverageMetric
{
  "type": "object",
  "required": [
    "form",
    "discoveredCount",
    "completedCount",
    "pendingCount",
    "rejectedCount",
    "knownGapCount",
    "extractionSuccessRate",
    "latestAcceptedAt",
    "latestDiscoveredAt",
    "latestIngestedAt",
    "freshnessLagSeconds"
  ],
  "properties": {
    "form": {
      "type": "string"
    },
    "discoveredCount": {
      "type": "integer",
      "minimum": 0
    },
    "completedCount": {
      "type": "integer",
      "minimum": 0
    },
    "pendingCount": {
      "type": "integer",
      "minimum": 0
    },
    "rejectedCount": {
      "type": "integer",
      "minimum": 0
    },
    "knownGapCount": {
      "type": "integer",
      "minimum": 0
    },
    "extractionSuccessRate": {
      "type": [
        "number",
        "null"
      ],
      "minimum": 0,
      "maximum": 1
    },
    "latestAcceptedAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "latestDiscoveredAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "latestIngestedAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "freshnessLagSeconds": {
      "type": [
        "number",
        "null"
      ],
      "minimum": 0,
      "description": "Seconds from the newest known SEC acceptance to measuredAt; null when acceptance time is unavailable."
    }
  }
}
MarketCoverageResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "type": "object",
      "required": [
        "scope",
        "measuredAt",
        "stream",
        "forms",
        "issuers",
        "reconciliation",
        "backfills",
        "pagination"
      ],
      "properties": {
        "scope": {
          "type": "string",
          "const": "supported_forms_across_sec_filers"
        },
        "measuredAt": {
          "type": "string",
          "format": "date-time"
        },
        "stream": {
          "type": "object",
          "required": [
            "status",
            "lastAttemptAt",
            "lastSuccessAt",
            "newestAcceptedAt",
            "consecutiveFailures",
            "errorCode"
          ],
          "properties": {
            "status": {
              "type": "string",
              "enum": [
                "current",
                "degraded",
                "not_started"
              ]
            },
            "lastAttemptAt": {
              "type": [
                "string",
                "null"
              ],
              "format": "date-time"
            },
            "lastSuccessAt": {
              "type": [
                "string",
                "null"
              ],
              "format": "date-time"
            },
            "newestAcceptedAt": {
              "type": [
                "string",
                "null"
              ],
              "format": "date-time"
            },
            "consecutiveFailures": {
              "type": "integer",
              "minimum": 0
            },
            "errorCode": {
              "type": [
                "string",
                "null"
              ]
            }
          }
        },
        "forms": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/MarketCoverageMetric"
          }
        },
        "issuers": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "cik",
              "ticker",
              "legalName",
              "forms"
            ],
            "properties": {
              "cik": {
                "type": "string",
                "pattern": "^[0-9]{10}$"
              },
              "ticker": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "legalName": {
                "type": "string"
              },
              "forms": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/MarketCoverageMetric"
                }
              }
            }
          }
        },
        "reconciliation": {
          "type": "array",
          "items": {
            "type": "object"
          }
        },
        "backfills": {
          "type": "array",
          "items": {
            "type": "object"
          }
        },
        "pagination": {
          "type": "object",
          "required": [
            "nextCursor"
          ],
          "properties": {
            "nextCursor": {
              "type": [
                "string",
                "null"
              ],
              "pattern": "^[0-9]{10}$"
            }
          }
        }
      }
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
MarketResearchPagination
{
  "type": "object",
  "required": [
    "limit",
    "nextCursor",
    "hasMore"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "nextCursor": {
      "type": [
        "string",
        "null"
      ]
    },
    "hasMore": {
      "type": "boolean"
    }
  }
}
MarketResearchResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "type": "object",
      "required": [
        "results",
        "resultCount",
        "coverageReceipt",
        "pagination"
      ],
      "properties": {
        "results": {
          "type": "array",
          "maxItems": 100,
          "items": {
            "type": "object",
            "additionalProperties": true
          }
        },
        "resultCount": {
          "type": "integer",
          "minimum": 0,
          "maximum": 100
        },
        "coverageReceipt": {
          "$ref": "#/components/schemas/SearchCoverageReceipt"
        },
        "pagination": {
          "$ref": "#/components/schemas/MarketResearchPagination"
        }
      }
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
MarketScreenRequest
{
  "type": "object",
  "required": [
    "screen"
  ],
  "properties": {
    "kind": {
      "type": "string",
      "const": "market"
    },
    "screen": {
      "type": "string",
      "enum": [
        "registration",
        "offering",
        "ownership",
        "governance",
        "auditor_change"
      ]
    },
    "query": {
      "type": "string",
      "minLength": 1,
      "maxLength": 500
    },
    "useSynonyms": {
      "type": "boolean",
      "default": true
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 20
    },
    "cursor": {
      "type": [
        "string",
        "null"
      ]
    },
    "filters": {
      "$ref": "#/components/schemas/MarketSearchFilters"
    }
  }
}
MarketSearchExportBundle
{
  "type": "object",
  "required": [
    "schemaVersion",
    "rowsSha256",
    "rows",
    "coverageReceipt",
    "pagination"
  ],
  "properties": {
    "schemaVersion": {
      "type": "string",
      "const": "filingsift-market-search-export-v1"
    },
    "rowsSha256": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$",
      "description": "SHA-256 of the exported row array using recursively sorted object keys and preserved array order"
    },
    "rows": {
      "type": "array",
      "maxItems": 100,
      "description": "Existing export columns accession, filed_at, form, cik, ticker, filer, section_topic, title, evidence_text, source_url, source_locator and verification_state",
      "items": {
        "type": "object",
        "additionalProperties": true
      }
    },
    "coverageReceipt": {
      "$ref": "#/components/schemas/SearchCoverageReceipt"
    },
    "pagination": {
      "$ref": "#/components/schemas/MarketResearchPagination"
    }
  }
}
MarketSearchFilters
{
  "type": "object",
  "description": "Market filters have their own normalized bounds, distinct from the legacy SearchFilters contract",
  "properties": {
    "tickers": {
      "type": "array",
      "maxItems": 50,
      "items": {
        "type": "string"
      }
    },
    "ciks": {
      "type": "array",
      "maxItems": 50,
      "items": {
        "type": "string"
      },
      "description": "Exact stored CIK identities; use SEC zero-padded CIKs"
    },
    "filers": {
      "type": "array",
      "maxItems": 20,
      "items": {
        "type": "string"
      }
    },
    "exchanges": {
      "type": "array",
      "maxItems": 50,
      "items": {
        "type": "string"
      }
    },
    "sicCodes": {
      "type": "array",
      "maxItems": 50,
      "items": {
        "type": "string",
        "pattern": "^[0-9]{2,4}$"
      }
    },
    "industries": {
      "type": "array",
      "maxItems": 20,
      "items": {
        "type": "string"
      }
    },
    "forms": {
      "type": "array",
      "maxItems": 50,
      "items": {
        "$ref": "#/components/schemas/Form"
      }
    },
    "formFamilies": {
      "type": "array",
      "maxItems": 50,
      "items": {
        "type": "string",
        "enum": [
          "periodic",
          "registration",
          "prospectus",
          "proxy",
          "ownership",
          "beneficial_ownership",
          "institutional_holdings",
          "tender_offer",
          "merger"
        ]
      }
    },
    "entityTypes": {
      "type": "array",
      "maxItems": 20,
      "items": {
        "type": "string"
      }
    },
    "filerCategories": {
      "type": "array",
      "maxItems": 20,
      "items": {
        "type": "string"
      }
    },
    "marketUniverses": {
      "type": "array",
      "maxItems": 50,
      "items": {
        "type": "string",
        "enum": [
          "exchange_listed",
          "otc_or_unlisted",
          "domestic_periodic",
          "foreign_private_issuer",
          "registration_and_offering",
          "ownership_and_holdings",
          "governance",
          "tender_and_merger",
          "institutional_holdings"
        ]
      }
    },
    "sectionTopics": {
      "type": "array",
      "maxItems": 50,
      "items": {
        "type": "string",
        "enum": [
          "risk_factors",
          "md_and_a",
          "debt_notes",
          "liquidity",
          "registration",
          "offering",
          "ownership",
          "governance",
          "auditor_change",
          "other"
        ]
      }
    },
    "documentKinds": {
      "type": "array",
      "maxItems": 50,
      "items": {
        "type": "string",
        "enum": [
          "primary",
          "material_exhibit"
        ]
      }
    },
    "verificationStates": {
      "type": "array",
      "maxItems": 50,
      "items": {
        "type": "string",
        "enum": [
          "unverified",
          "candidate",
          "machine_checked",
          "verified"
        ]
      }
    },
    "categories": {
      "type": "array",
      "maxItems": 20,
      "items": {
        "type": "string"
      }
    },
    "events": {
      "type": "array",
      "maxItems": 20,
      "items": {
        "type": "string"
      }
    },
    "filedFrom": {
      "type": [
        "string",
        "null"
      ],
      "format": "date"
    },
    "filedTo": {
      "type": [
        "string",
        "null"
      ],
      "format": "date"
    }
  }
}
MarketSearchRequest
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "query": {
      "type": "string",
      "minLength": 1,
      "maxLength": 500
    },
    "useSynonyms": {
      "type": "boolean",
      "default": true
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 20
    },
    "cursor": {
      "type": [
        "string",
        "null"
      ]
    },
    "format": {
      "type": "string",
      "enum": [
        "csv",
        "ndjson",
        "json"
      ],
      "default": "csv",
      "description": "Used by the market-search export endpoint only"
    },
    "filters": {
      "$ref": "#/components/schemas/MarketSearchFilters"
    }
  }
}
MemberCreateRequest
{
  "type": "object",
  "required": [
    "email",
    "displayName",
    "role"
  ],
  "properties": {
    "email": {
      "type": "string",
      "format": "email"
    },
    "displayName": {
      "type": "string",
      "minLength": 1,
      "maxLength": 120
    },
    "role": {
      "$ref": "#/components/schemas/MembershipRole"
    }
  }
}
MemberIssueResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "type": "object",
      "required": [
        "membership",
        "key",
        "token",
        "oneTimeDisplay"
      ],
      "properties": {
        "membership": {
          "$ref": "#/components/schemas/Membership"
        },
        "key": {
          "$ref": "#/components/schemas/ApiKeyMetadata"
        },
        "token": {
          "type": "string",
          "readOnly": true,
          "description": "Returned once; deliver securely."
        },
        "oneTimeDisplay": {
          "type": "boolean",
          "const": true
        }
      }
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
Membership
{
  "type": "object",
  "required": [
    "orgId",
    "userId",
    "role",
    "status"
  ],
  "properties": {
    "orgId": {
      "type": "string",
      "format": "uuid"
    },
    "userId": {
      "type": "string",
      "format": "uuid"
    },
    "role": {
      "$ref": "#/components/schemas/MembershipRole"
    },
    "status": {
      "type": "string",
      "enum": [
        "active",
        "removed"
      ]
    },
    "createdAt": {
      "type": "string",
      "format": "date-time"
    },
    "user": {
      "$ref": "#/components/schemas/User"
    }
  }
}
MembershipResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/Membership"
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
MembershipRole
{
  "type": "string",
  "enum": [
    "owner",
    "admin",
    "member",
    "viewer"
  ]
}
MetadataResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "type": "object",
      "required": [
        "apiVersion",
        "schemaVersion",
        "stability",
        "deprecationPolicy",
        "minimumDeprecationNoticeDays",
        "monitoringEmail",
        "financingAlertsAndScreensV2",
        "savedFinancingScreens",
        "savedScreenAlerts",
        "customerExportDestinations",
        "warehouseExportDestinations",
        "filingReader",
        "searchAndScreening",
        "savedSearchAlerts",
        "dataRights",
        "webhooks",
        "citedAi",
        "mcp",
        "customerAutomation",
        "enterpriseControls",
        "authentication"
      ],
      "properties": {
        "apiVersion": {
          "type": "string",
          "const": "1"
        },
        "schemaVersion": {
          "type": "string",
          "const": "1.0.0"
        },
        "stability": {
          "type": "string",
          "const": "stable"
        },
        "deprecationPolicy": {
          "type": "string"
        },
        "minimumDeprecationNoticeDays": {
          "type": "integer",
          "const": 180
        },
        "monitoringEmail": {
          "type": "string",
          "const": "available_license_free"
        },
        "financingAlertsAndScreensV2": {
          "type": "string",
          "const": "screening_and_opt_in_disclosure_alerts_available"
        },
        "savedFinancingScreens": {
          "type": "string",
          "const": "available_license_free"
        },
        "savedScreenAlerts": {
          "type": "string",
          "const": "available"
        },
        "customerExportDestinations": {
          "type": "array",
          "const": [
            "s3",
            "google_sheets"
          ]
        },
        "warehouseExportDestinations": {
          "type": "string",
          "const": "withdrawn"
        },
        "filingReader": {
          "type": "string",
          "const": "available_license_free"
        },
        "searchAndScreening": {
          "type": "string",
          "const": "available_license_free"
        },
        "savedSearchAlerts": {
          "type": "string",
          "const": "available_license_free"
        },
        "dataRights": {
          "type": "object",
          "required": [
            "policyVersion",
            "status",
            "legalEffect",
            "licenseFreeInputs",
            "excludedFromLicenseFreePlan",
            "issuerMaterial",
            "admissionRule"
          ],
          "properties": {
            "policyVersion": {
              "type": "string",
              "const": "2026-10-09"
            },
            "status": {
              "type": "string",
              "const": "product_boundary_pending_legal_review"
            },
            "legalEffect": {
              "type": "string",
              "const": "not_legal_advice_or_a_redistribution_license"
            },
            "licenseFreeInputs": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "excludedFromLicenseFreePlan": {
              "type": "array",
              "minItems": 9,
              "maxItems": 9,
              "items": {
                "type": "string",
                "enum": [
                  "broker_research",
                  "expert_call_libraries",
                  "consensus_estimates",
                  "commercial_news_archives",
                  "earnings_call_audio_and_third_party_transcripts",
                  "proprietary_market_data",
                  "private_company_financials",
                  "commercial_aggregator_global_filings",
                  "issuer_presentation_redistribution"
                ]
              }
            },
            "issuerMaterial": {
              "type": "object",
              "required": [
                "publicSourceLinking",
                "contentRedistribution",
                "defaultHandling"
              ],
              "properties": {
                "publicSourceLinking": {
                  "type": "string",
                  "const": "allowed"
                },
                "contentRedistribution": {
                  "type": "string",
                  "const": "requires_documented_rights_and_commercial_review"
                },
                "defaultHandling": {
                  "type": "string",
                  "const": "link_only"
                }
              }
            },
            "admissionRule": {
              "type": "string",
              "const": "written_rights_and_commercial_review_required_before_ingestion_or_customer_redistribution"
            }
          }
        },
        "webhooks": {
          "type": "string",
          "description": "Compatibility status; customer product webhooks have been withdrawn."
        },
        "citedAi": {
          "type": "string",
          "description": "Compatibility status; cited AI has been withdrawn."
        },
        "mcp": {
          "type": "string",
          "description": "First failing production gate for MCP."
        },
        "customerAutomation": {
          "type": "object",
          "description": "Shared benchmark evidence plus each feature's required release checks; the read-only REST-backed MCP transport does not require the generated-interpretation benchmark. No secret values are returned.",
          "additionalProperties": true
        },
        "enterpriseControls": {
          "type": "object",
          "description": "Public demand-gated enterprise procurement state. Controlled pilots remain available; unfinished controls and assurance claims remain false.",
          "additionalProperties": true
        },
        "authentication": {
          "type": "string",
          "const": "email_password_sessions_and_api_keys_available"
        }
      }
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
ModelCellChange
{
  "type": "object",
  "required": [
    "cellId",
    "state",
    "oldSha256",
    "newSha256",
    "oldValue",
    "newValue",
    "oldStatus",
    "newStatus",
    "oldSource",
    "newSource",
    "oldCell",
    "newCell",
    "oldFormula",
    "newFormula",
    "explanation"
  ],
  "properties": {
    "cellId": {
      "type": "string"
    },
    "state": {
      "type": "string",
      "enum": [
        "added",
        "changed",
        "removed"
      ]
    },
    "oldSha256": {
      "type": [
        "string",
        "null"
      ]
    },
    "newSha256": {
      "type": [
        "string",
        "null"
      ]
    },
    "oldValue": {
      "description": "Exact stored value; null is unavailable",
      "never an implicit zero": null
    },
    "newValue": {
      "description": "Exact stored value; null is unavailable",
      "never an implicit zero": null
    },
    "oldStatus": {
      "type": [
        "string",
        "null"
      ]
    },
    "newStatus": {
      "type": [
        "string",
        "null"
      ]
    },
    "oldSource": {
      "type": [
        "object",
        "null"
      ],
      "additionalProperties": true
    },
    "newSource": {
      "type": [
        "object",
        "null"
      ],
      "additionalProperties": true
    },
    "oldCell": {
      "type": [
        "object",
        "null"
      ],
      "additionalProperties": true,
      "description": "Full retained prior result including conflict alternatives and comparability review"
    },
    "newCell": {
      "type": [
        "object",
        "null"
      ],
      "additionalProperties": true
    },
    "oldFormula": {
      "type": [
        "object",
        "null"
      ],
      "additionalProperties": true
    },
    "newFormula": {
      "type": [
        "object",
        "null"
      ],
      "additionalProperties": true
    },
    "explanation": {
      "type": "object",
      "required": [
        "schemaVersion",
        "status",
        "reasons",
        "changedFields",
        "causality",
        "correction"
      ],
      "properties": {
        "schemaVersion": {
          "type": "string",
          "const": "filingsift-model-cell-explanation-v1"
        },
        "status": {
          "type": "string",
          "enum": [
            "observed_changes",
            "insufficient_metadata"
          ]
        },
        "causality": {
          "type": "string",
          "const": "not_inferred"
        },
        "reasons": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "code",
              "summary",
              "fields"
            ],
            "properties": {
              "code": {
                "type": "string",
                "description": "Observed change category or explicit unavailable/unclassified metadata"
              },
              "summary": {
                "type": "string"
              },
              "fields": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        },
        "changedFields": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "path",
              "before",
              "after"
            ],
            "properties": {
              "path": {
                "type": "string"
              },
              "before": {
                "description": "Exact prior recorded field value; absent is serialized null"
              },
              "after": {
                "description": "Exact new recorded field value; absent is serialized null"
              }
            }
          }
        },
        "correction": {
          "type": "object",
          "required": [
            "status",
            "reason"
          ],
          "properties": {
            "status": {
              "type": "string",
              "enum": [
                "not_established",
                "same_filing_observation_changed",
                "different_filing_observation"
              ]
            },
            "reason": {
              "type": "string",
              "description": "Recorded observation only; no issuer correction or restatement is established"
            }
          }
        }
      }
    }
  }
}
ModelRefreshReviewResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "meta": {
      "type": "object"
    },
    "data": {
      "type": "object",
      "required": [
        "modelId",
        "schemaVersion",
        "refreshes",
        "bounds",
        "limitations"
      ],
      "properties": {
        "modelId": {
          "type": "string",
          "format": "uuid"
        },
        "schemaVersion": {
          "type": "string",
          "const": "filingsift-model-refresh-review-v1"
        },
        "refreshes": {
          "type": "array",
          "maxItems": 100,
          "items": {
            "type": "object",
            "required": [
              "id",
              "createdAt",
              "trigger",
              "previousSnapshotSha256",
              "snapshotSha256",
              "manifestSha256",
              "counts",
              "explanationStatus",
              "explanationUnavailableReason",
              "changes"
            ],
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "createdAt": {
                "type": "string",
                "format": "date-time"
              },
              "trigger": {
                "type": "string",
                "enum": [
                  "manual",
                  "scheduled"
                ]
              },
              "previousSnapshotSha256": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "snapshotSha256": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "manifestSha256": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "counts": {
                "type": [
                  "object",
                  "null"
                ],
                "description": "Complete manifest counts for added",
                "changed": null,
                "removed and unchanged data cells": null,
                "additionalProperties": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "explanationStatus": {
                "type": "string",
                "enum": [
                  "available",
                  "unavailable"
                ]
              },
              "explanationUnavailableReason": {
                "type": [
                  "string",
                  "null"
                ],
                "enum": [
                  "legacy_manifest_without_explanations",
                  null
                ]
              },
              "changes": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ModelCellChange"
                }
              }
            }
          }
        },
        "bounds": {
          "type": "object",
          "required": [
            "scannedRefreshes",
            "maximumRefreshes",
            "requestedRefreshes",
            "returnedRefreshes",
            "historyMayBeTruncated",
            "cellFilter"
          ],
          "properties": {
            "scannedRefreshes": {
              "type": "integer",
              "minimum": 0,
              "maximum": 100
            },
            "maximumRefreshes": {
              "type": "integer",
              "const": 100
            },
            "requestedRefreshes": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            },
            "returnedRefreshes": {
              "type": "integer",
              "minimum": 0,
              "maximum": 100
            },
            "historyMayBeTruncated": {
              "type": "boolean"
            },
            "cellFilter": {
              "type": [
                "string",
                "null"
              ]
            }
          }
        },
        "limitations": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    }
  }
}
MonitoringDelivery
{
  "type": "object",
  "required": [
    "id",
    "kind",
    "mode",
    "ticker",
    "form",
    "category",
    "accession",
    "filingUrl",
    "evidenceLinks",
    "subject",
    "summary",
    "verificationState",
    "status",
    "attemptCount",
    "scheduledAt",
    "nextRetryAt",
    "lastAttemptAt",
    "deliveredAt",
    "lastErrorCode",
    "createdAt"
  ],
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "kind": {
      "type": "string",
      "enum": [
        "new_filing",
        "financing_change",
        "lifecycle_alert",
        "maturity_alert",
        "covenant_alert",
        "default_alert",
        "delayed_ingestion",
        "saved_search",
        "saved_screen",
        "test"
      ],
      "description": "Advanced disclosure kinds require explicit advancedAlertsEnabled opt-in and a selected category. All listed kinds can appear in delivery history."
    },
    "mode": {
      "type": "string",
      "enum": [
        "instant",
        "daily",
        "weekly"
      ],
      "description": "Recorded delivery schedule after FilingSift detection and processing; not a source-retrieval interval."
    },
    "ticker": {
      "type": "string"
    },
    "form": {
      "type": "string",
      "enum": [
        "10-K",
        "10-K/A",
        "10-Q",
        "10-Q/A",
        "8-K",
        "8-K/A"
      ]
    },
    "category": {
      "type": [
        "string",
        "null"
      ],
      "enum": [
        "debt",
        "liquidity",
        "lifecycle",
        "maturity",
        "covenant",
        "default",
        "going_concern",
        null
      ]
    },
    "accession": {
      "type": "string",
      "pattern": "^[0-9]{10}-[0-9]{2}-[0-9]{6}$"
    },
    "filingUrl": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://www\\.sec\\.gov/Archives/"
    },
    "evidenceLinks": {
      "type": "array",
      "minItems": 1,
      "maxItems": 20,
      "items": {
        "$ref": "#/components/schemas/MonitoringEvidenceLink"
      }
    },
    "subject": {
      "type": "string"
    },
    "summary": {
      "type": "string",
      "description": "Factual alert summary without a severity score or investment conclusion."
    },
    "verificationState": {
      "$ref": "#/components/schemas/VerificationState"
    },
    "status": {
      "type": "string",
      "enum": [
        "pending",
        "sending",
        "retry_wait",
        "delivered",
        "failed",
        "suppressed"
      ]
    },
    "attemptCount": {
      "type": "integer",
      "minimum": 0,
      "maximum": 5
    },
    "scheduledAt": {
      "type": "string",
      "format": "date-time"
    },
    "nextRetryAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "lastAttemptAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "deliveredAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "lastErrorCode": {
      "type": [
        "string",
        "null"
      ]
    },
    "createdAt": {
      "type": "string",
      "format": "date-time"
    }
  }
}
MonitoringDeliveryListResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/MonitoringDelivery"
      }
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
MonitoringDeliveryResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/MonitoringDelivery"
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
MonitoringOverviewResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "type": "object",
      "required": [
        "preferences",
        "deliveries"
      ],
      "properties": {
        "preferences": {
          "$ref": "#/components/schemas/MonitoringPreference"
        },
        "deliveries": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/MonitoringDelivery"
          }
        }
      }
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
MonitoringPreference
{
  "type": "object",
  "required": [
    "enabled",
    "newFilingAlerts",
    "financingChangeAlerts",
    "delayedIngestionAlerts",
    "deliveryMode",
    "tickers",
    "forms",
    "eventCategories",
    "quietStartUtc",
    "quietEndUtc",
    "dailyDeliveryHourUtc",
    "weeklyDeliveryWeekday",
    "recipient"
  ],
  "properties": {
    "enabled": {
      "type": "boolean"
    },
    "newFilingAlerts": {
      "type": "boolean"
    },
    "financingChangeAlerts": {
      "type": "boolean"
    },
    "advancedAlertsEnabled": {
      "type": "boolean",
      "default": false,
      "description": "Explicit opt-in for advanced source-disclosure notifications in selected categories."
    },
    "delayedIngestionAlerts": {
      "type": "boolean"
    },
    "deliveryMode": {
      "type": "string",
      "enum": [
        "instant",
        "daily",
        "weekly"
      ],
      "description": "Email schedule after FilingSift detection and processing. instant makes the alert due for the next ingestion monitoring stage; quiet hours, worker capacity, and provider retries can defer the attempt. Daily and weekly are optional digests. This field does not control source retrieval."
    },
    "tickers": {
      "type": "array",
      "uniqueItems": true,
      "items": {
        "type": "string",
        "pattern": "^[A-Z0-9.-]{1,16}$"
      }
    },
    "forms": {
      "type": "array",
      "minItems": 1,
      "uniqueItems": true,
      "items": {
        "type": "string",
        "enum": [
          "10-K",
          "10-K/A",
          "10-Q",
          "10-Q/A",
          "8-K",
          "8-K/A"
        ]
      }
    },
    "eventCategories": {
      "type": "array",
      "minItems": 1,
      "maxItems": 7,
      "uniqueItems": true,
      "items": {
        "type": "string",
        "enum": [
          "debt",
          "liquidity",
          "going_concern",
          "lifecycle",
          "maturity",
          "covenant",
          "default"
        ]
      },
      "description": "Advanced categories require advancedAlertsEnabled. Newly indexed source disclosures are compared with the preceding indexed same-form filing of any filing age. These are disclosure notifications rather than maturity countdowns or independent legal conclusions."
    },
    "quietStartUtc": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 0,
      "maximum": 23
    },
    "quietEndUtc": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 0,
      "maximum": 23
    },
    "dailyDeliveryHourUtc": {
      "type": "integer",
      "minimum": 0,
      "maximum": 23
    },
    "weeklyDeliveryWeekday": {
      "type": "integer",
      "minimum": 0,
      "maximum": 6
    },
    "lastScannedAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time",
      "readOnly": true
    },
    "updatedAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time",
      "readOnly": true
    },
    "recipient": {
      "$ref": "#/components/schemas/MonitoringRecipient",
      "readOnly": true
    }
  }
}
MonitoringPreferenceRequest
{
  "allOf": [
    {
      "$ref": "#/components/schemas/MonitoringPreference"
    }
  ],
  "description": "Read-only response fields are ignored. An empty ticker list means all issuers in the organization watchlist."
}
MonitoringPreferenceResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/MonitoringPreference"
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
MonitoringRecipient
{
  "type": [
    "object",
    "null"
  ],
  "required": [
    "userId",
    "email"
  ],
  "properties": {
    "userId": {
      "type": "string",
      "format": "uuid"
    },
    "email": {
      "type": "string",
      "format": "email"
    },
    "displayName": {
      "type": [
        "string",
        "null"
      ]
    }
  }
}
MonthlyUsage
{
  "type": "object",
  "required": [
    "orgId",
    "month",
    "requestCount",
    "queryCost",
    "responseBytes"
  ],
  "properties": {
    "orgId": {
      "type": "string",
      "format": "uuid"
    },
    "month": {
      "type": "string",
      "format": "date"
    },
    "requestCount": {
      "type": "integer",
      "minimum": 0
    },
    "queryCost": {
      "type": "integer",
      "minimum": 0
    },
    "responseBytes": {
      "type": "integer",
      "minimum": 0
    }
  }
}
O (6)
Organization
{
  "type": "object",
  "required": [
    "id",
    "slug",
    "name",
    "status",
    "planKey",
    "createdAt"
  ],
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "slug": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "enum": [
        "active",
        "suspended"
      ]
    },
    "planKey": {
      "$ref": "#/components/schemas/PlanKey"
    },
    "createdAt": {
      "type": "string",
      "format": "date-time"
    }
  }
}
OrganizationCreateRequest
{
  "type": "object",
  "required": [
    "name",
    "slug",
    "ownerEmail",
    "ownerName"
  ],
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 160
    },
    "slug": {
      "type": "string",
      "pattern": "^[a-z][a-z0-9-]{1,62}[a-z0-9]$"
    },
    "ownerEmail": {
      "type": "string",
      "format": "email"
    },
    "ownerName": {
      "type": "string",
      "minLength": 1,
      "maxLength": 120
    },
    "planKey": {
      "$ref": "#/components/schemas/PlanKey"
    }
  }
}
OrganizationIssueResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "type": "object",
      "required": [
        "organization",
        "user",
        "membership",
        "key",
        "token",
        "oneTimeDisplay"
      ],
      "properties": {
        "organization": {
          "$ref": "#/components/schemas/Organization"
        },
        "user": {
          "$ref": "#/components/schemas/User"
        },
        "membership": {
          "$ref": "#/components/schemas/Membership"
        },
        "key": {
          "$ref": "#/components/schemas/ApiKeyMetadata"
        },
        "token": {
          "type": "string",
          "readOnly": true,
          "description": "Returned once; deliver securely."
        },
        "oneTimeDisplay": {
          "type": "boolean",
          "const": true
        }
      }
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
OrganizationListResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/AccountOverview"
      }
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
OrganizationResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/Organization"
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
OrganizationSlugConfirmation
{
  "type": "object",
  "required": [
    "slug"
  ],
  "properties": {
    "slug": {
      "type": "string",
      "minLength": 3,
      "maxLength": 64,
      "description": "Exact slug returned by the closure preview; no case folding or trimming."
    }
  }
}
P (6)
Pagination
{
  "type": "object",
  "required": [
    "limit",
    "returned",
    "hasMore",
    "nextCursor"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "returned": {
      "type": "integer",
      "minimum": 0,
      "maximum": 100
    },
    "hasMore": {
      "type": "boolean"
    },
    "nextCursor": {
      "type": [
        "string",
        "null"
      ]
    }
  }
}
PasswordResetConfirmRequest
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "token",
    "password"
  ],
  "properties": {
    "token": {
      "type": "string",
      "pattern": "^fs_reset_[A-Za-z0-9_-]{43}$",
      "writeOnly": true
    },
    "password": {
      "type": "string",
      "minLength": 12,
      "maxLength": 128,
      "writeOnly": true
    }
  }
}
Period
{
  "type": "object",
  "required": [
    "kind",
    "status"
  ],
  "properties": {
    "kind": {
      "type": "string",
      "enum": [
        "instant",
        "duration",
        "unknown"
      ]
    },
    "label": {
      "type": [
        "string",
        "null"
      ]
    },
    "startDate": {
      "type": "string",
      "format": "date"
    },
    "endDate": {
      "type": "string",
      "format": "date"
    },
    "durationMonths": {
      "type": "integer"
    },
    "status": {
      "type": "string"
    }
  }
}
Plan
{
  "type": "object",
  "required": [
    "key",
    "label",
    "monthlyRequests",
    "monthlyQueryCost",
    "companyLimit",
    "indexedHistory",
    "onboardingHistoryDays",
    "referenceHistoryDays",
    "historyDays",
    "activeApiKeyLimit",
    "memberLimit",
    "activeSessionLimit",
    "pendingOnboardingLimit"
  ],
  "properties": {
    "key": {
      "$ref": "#/components/schemas/PlanKey"
    },
    "label": {
      "type": "string"
    },
    "monthlyRequests": {
      "type": "integer",
      "minimum": 1
    },
    "monthlyQueryCost": {
      "type": "integer",
      "minimum": 1
    },
    "companyLimit": {
      "type": "integer",
      "minimum": 1
    },
    "indexedHistory": {
      "type": "string",
      "const": "all_available",
      "description": "All available indexed filing history for permitted companies; no plan-based filing-age cutoff or guarantee of complete coverage."
    },
    "onboardingHistoryDays": {
      "type": "integer",
      "minimum": 1,
      "description": "Lookback for bounded new onboarding processing; does not restrict existing indexed filing reads."
    },
    "referenceHistoryDays": {
      "type": "integer",
      "minimum": 1,
      "description": "Independent lookback for applicable external-reference retrieval; existing request limits also apply."
    },
    "historyDays": {
      "type": "integer",
      "minimum": 1,
      "deprecated": true,
      "description": "Legacy alias for onboardingHistoryDays; no longer an indexed-filing access limit."
    },
    "activeApiKeyLimit": {
      "type": "integer",
      "minimum": 1
    },
    "memberLimit": {
      "type": "integer",
      "minimum": 1
    },
    "activeSessionLimit": {
      "type": "integer",
      "minimum": 1
    },
    "pendingOnboardingLimit": {
      "type": "integer",
      "minimum": 1
    }
  }
}
PlanKey
{
  "type": "string",
  "enum": [
    "evaluation",
    "builder",
    "professional",
    "team",
    "internal"
  ]
}
PublicCoverageStatusResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "type": "object",
      "required": [
        "status",
        "supportedForms",
        "watchedIssuerCount",
        "polledIssuerCount",
        "pollFailureCount",
        "overdueIssuerCount",
        "queuedFilingCount",
        "processingFilingCount",
        "rejectedFilingCount",
        "latestAcceptedAt",
        "latestIngestedAt",
        "maximumIngestionLagSeconds",
        "oldestPendingAt",
        "oldestPendingAgeSeconds",
        "warning",
        "secLatency",
        "financingCorpus",
        "measuredAt"
      ],
      "properties": {
        "status": {
          "type": "string",
          "enum": [
            "current",
            "delayed",
            "degraded",
            "empty"
          ]
        },
        "supportedForms": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "10-Q",
              "10-Q/A",
              "10-K",
              "10-K/A",
              "8-K",
              "8-K/A",
              "20-F",
              "20-F/A",
              "6-K",
              "6-K/A",
              "S-1",
              "S-1/A",
              "S-3",
              "S-3/A",
              "S-4",
              "S-4/A",
              "F-1",
              "F-1/A",
              "F-3",
              "F-3/A",
              "F-3ASR",
              "F-4",
              "F-4/A",
              "SF-1",
              "SF-1/A",
              "SF-3",
              "SF-3/A",
              "N-1A",
              "N-1A/A",
              "N-2",
              "N-2/A",
              "N-2ASR",
              "N-14",
              "N-14/A",
              "424B1",
              "424B2",
              "424B3",
              "424B4",
              "424B5",
              "424B7",
              "424B8",
              "DEF 14A",
              "DEFA14A",
              "3",
              "3/A",
              "4",
              "4/A",
              "5",
              "5/A",
              "SC 13D",
              "SC 13D/A",
              "SC 13G",
              "SC 13G/A",
              "SCHEDULE 13D",
              "SCHEDULE 13D/A",
              "SCHEDULE 13G",
              "SCHEDULE 13G/A",
              "13F-HR",
              "13F-HR/A",
              "13F-NT",
              "13F-NT/A",
              "SC TO-C",
              "SC TO-C/A",
              "SC TO-I",
              "SC TO-I/A",
              "SC TO-T",
              "SC TO-T/A",
              "SC 14D9",
              "SC 14D9/A",
              "SC 13E3",
              "SC 13E3/A",
              "PREM14A",
              "PRER14A",
              "DEFM14A",
              "DEFM14A/A",
              "425"
            ]
          }
        },
        "watchedIssuerCount": {
          "type": "integer",
          "minimum": 0
        },
        "polledIssuerCount": {
          "type": "integer",
          "minimum": 0
        },
        "pollFailureCount": {
          "type": "integer",
          "minimum": 0
        },
        "overdueIssuerCount": {
          "type": "integer",
          "minimum": 0
        },
        "queuedFilingCount": {
          "type": "integer",
          "minimum": 0
        },
        "processingFilingCount": {
          "type": "integer",
          "minimum": 0
        },
        "rejectedFilingCount": {
          "type": "integer",
          "minimum": 0
        },
        "latestAcceptedAt": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "latestIngestedAt": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "maximumIngestionLagSeconds": {
          "type": [
            "number",
            "null"
          ],
          "minimum": 0
        },
        "oldestPendingAt": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "oldestPendingAgeSeconds": {
          "type": [
            "integer",
            "null"
          ],
          "minimum": 0
        },
        "warning": {
          "type": [
            "string",
            "null"
          ]
        },
        "secLatency": {
          "$ref": "#/components/schemas/SecLatencyReport"
        },
        "financingCorpus": {
          "$ref": "#/components/schemas/FinancingCorpusCoverage"
        },
        "measuredAt": {
          "type": "string",
          "format": "date-time"
        }
      }
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
R (53)
ReaderAnnotation
{
  "type": "object",
  "required": [
    "id",
    "userId",
    "accession",
    "passageId",
    "passageKind",
    "evidenceSha256",
    "quote",
    "note",
    "color",
    "createdAt",
    "updatedAt"
  ],
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "userId": {
      "type": "string",
      "format": "uuid"
    },
    "accession": {
      "type": "string"
    },
    "passageId": {
      "type": "string"
    },
    "passageKind": {
      "type": "string"
    },
    "evidenceSha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "quote": {
      "type": "string"
    },
    "note": {
      "type": "string"
    },
    "color": {
      "type": "string",
      "enum": [
        "yellow",
        "green",
        "blue",
        "pink"
      ]
    },
    "visibility": {
      "type": "string",
      "enum": [
        "personal",
        "team"
      ]
    },
    "mentionedUserIds": {
      "type": "array",
      "maxItems": 20,
      "uniqueItems": true,
      "items": {
        "type": "string",
        "format": "uuid"
      }
    },
    "editable": {
      "type": "boolean"
    },
    "createdAt": {
      "type": "string",
      "format": "date-time"
    },
    "updatedAt": {
      "type": "string",
      "format": "date-time"
    }
  }
}
ReaderAnnotationListResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ReaderAnnotation"
      }
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
ReaderAnnotationRequest
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "accession",
    "passageId"
  ],
  "properties": {
    "accession": {
      "type": "string",
      "pattern": "^\\d{10}-\\d{2}-\\d{6}$"
    },
    "passageId": {
      "type": "string",
      "pattern": "^(evidence|section|table)-[0-9a-f]{20}$"
    },
    "note": {
      "type": "string",
      "maxLength": 4000
    },
    "color": {
      "type": "string",
      "enum": [
        "yellow",
        "green",
        "blue",
        "pink"
      ],
      "default": "yellow"
    },
    "visibility": {
      "type": "string",
      "enum": [
        "personal",
        "team"
      ],
      "default": "personal"
    },
    "mentionedUserIds": {
      "type": "array",
      "maxItems": 20,
      "uniqueItems": true,
      "items": {
        "type": "string",
        "format": "uuid"
      }
    }
  }
}
ReaderAnnotationResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/ReaderAnnotation"
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
ReaderComparisonResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "type": "object",
      "required": [
        "kind",
        "previous",
        "current",
        "pairs",
        "changedCount",
        "unchangedCount",
        "disclaimer"
      ],
      "properties": {
        "kind": {
          "type": "string",
          "enum": [
            "filing",
            "agreement_or_amendment"
          ]
        },
        "previous": {
          "type": "object",
          "additionalProperties": true
        },
        "current": {
          "type": "object",
          "additionalProperties": true
        },
        "pairs": {
          "type": "array",
          "maxItems": 120,
          "items": {
            "type": "object",
            "additionalProperties": true
          }
        },
        "changedCount": {
          "type": "integer",
          "minimum": 0
        },
        "unchangedCount": {
          "type": "integer",
          "minimum": 0
        },
        "disclaimer": {
          "type": "string"
        }
      }
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
ReaderDocumentResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "type": "object",
      "required": [
        "issuer",
        "filing",
        "verification",
        "documents",
        "passages",
        "passageCount",
        "related",
        "disclaimer"
      ],
      "properties": {
        "issuer": {
          "type": "object",
          "additionalProperties": true
        },
        "filing": {
          "type": "object",
          "additionalProperties": true
        },
        "verification": {
          "type": "object",
          "additionalProperties": true
        },
        "documents": {
          "type": "array",
          "maxItems": 100,
          "items": {
            "type": "object",
            "additionalProperties": true
          }
        },
        "passages": {
          "type": "array",
          "maxItems": 300,
          "items": {
            "$ref": "#/components/schemas/ReaderPassage"
          }
        },
        "passageCount": {
          "type": "integer",
          "minimum": 0,
          "maximum": 300
        },
        "passageLimitReached": {
          "type": "boolean"
        },
        "related": {
          "type": "object",
          "required": [
            "nodes",
            "edges"
          ],
          "additionalProperties": true
        },
        "disclaimer": {
          "type": "string"
        }
      }
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
ReaderPassage
{
  "type": "object",
  "required": [
    "passageId",
    "kind",
    "title",
    "text",
    "textSha256",
    "verificationState",
    "document",
    "readerUrl"
  ],
  "properties": {
    "passageId": {
      "type": "string",
      "pattern": "^(evidence|section|table)-[0-9a-f]{20}$"
    },
    "kind": {
      "type": "string",
      "enum": [
        "evidence",
        "section",
        "table"
      ]
    },
    "title": {
      "type": "string"
    },
    "text": {
      "type": "string"
    },
    "textSha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "locator": {
      "type": [
        "object",
        "null"
      ]
    },
    "category": {
      "type": [
        "string",
        "null"
      ]
    },
    "verificationState": {
      "$ref": "#/components/schemas/VerificationState"
    },
    "document": {
      "type": "object",
      "required": [
        "accession",
        "sourceUrl",
        "documentType",
        "verificationState"
      ],
      "additionalProperties": true
    },
    "readerUrl": {
      "type": "string",
      "pattern": "^/#/reader/"
    }
  }
}
ReaderSectionCatalogResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "meta": {
      "type": "object"
    },
    "data": {
      "type": "object",
      "required": [
        "schemaVersion",
        "filing",
        "sections",
        "coverage",
        "limits",
        "limitations"
      ],
      "properties": {
        "schemaVersion": {
          "type": "string",
          "const": "filingsift-section-catalog-v1"
        },
        "filing": {
          "$ref": "#/components/schemas/ReaderSectionSource"
        },
        "sections": {
          "type": "array",
          "maxItems": 80,
          "items": {
            "$ref": "#/components/schemas/ReaderSectionMetadata"
          }
        },
        "coverage": {
          "$ref": "#/components/schemas/ReaderSectionCoverage"
        },
        "limits": {
          "type": "object",
          "properties": {
            "maximumSections": {
              "type": "integer",
              "const": 80
            },
            "maximumSectionCharacters": {
              "type": "integer",
              "const": 40000
            },
            "characterCountUnit": {
              "type": "string",
              "const": "utf16_code_units"
            }
          }
        },
        "limitations": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    }
  }
}
ReaderSectionCoverage
{
  "type": "object",
  "required": [
    "observedSectionCount",
    "returnedSectionCount",
    "catalogTruncated",
    "sourceCompleteness"
  ],
  "properties": {
    "observedSectionCount": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 0,
      "description": "Null means missing or invalid section inventory",
      "not zero": null
    },
    "returnedSectionCount": {
      "type": "integer",
      "minimum": 0,
      "maximum": 80
    },
    "catalogTruncated": {
      "type": "boolean"
    },
    "sourceCompleteness": {
      "type": "string",
      "const": "unknown"
    },
    "extractionState": {
      "type": "string",
      "enum": [
        "available",
        "missing",
        "invalid"
      ]
    },
    "invalidSectionCount": {
      "type": "integer",
      "minimum": 0
    },
    "eligibleSectionCount": {
      "type": "integer",
      "minimum": 0
    },
    "omittedSectionCount": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 0
    }
  }
}
ReaderSectionMetadata
{
  "type": "object",
  "required": [
    "sectionId",
    "ordinal",
    "heading",
    "characterCount",
    "textSha256",
    "locator",
    "verificationState",
    "comparisonEligible",
    "unavailableReason"
  ],
  "properties": {
    "sectionId": {
      "type": "string",
      "pattern": "^section-[a-f0-9]{64}$"
    },
    "ordinal": {
      "type": "integer",
      "minimum": 1
    },
    "heading": {
      "type": [
        "string",
        "null"
      ]
    },
    "characterCount": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 0
    },
    "textSha256": {
      "type": [
        "string",
        "null"
      ]
    },
    "locator": {
      "type": [
        "object",
        "null"
      ],
      "description": "Extractor-reported block range",
      "not proof of complete source coverage": null
    },
    "verificationState": {
      "type": "string"
    },
    "comparisonEligible": {
      "type": "boolean"
    },
    "unavailableReason": {
      "type": [
        "string",
        "null"
      ]
    },
    "text": {
      "type": "string",
      "description": "Exact retained text; included only on selected comparison sides"
    }
  }
}
ReaderSectionReviewResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "meta": {
      "type": "object"
    },
    "data": {
      "type": "object",
      "required": [
        "schemaVersion",
        "before",
        "after",
        "status",
        "diff",
        "coverage",
        "limitations",
        "contentSha256"
      ],
      "properties": {
        "schemaVersion": {
          "type": "string",
          "const": "filingsift-section-change-review-v1"
        },
        "before": {
          "$ref": "#/components/schemas/ReaderSectionReviewSide"
        },
        "after": {
          "$ref": "#/components/schemas/ReaderSectionReviewSide"
        },
        "status": {
          "type": "string",
          "enum": [
            "changed",
            "unchanged"
          ]
        },
        "diff": {
          "type": "object",
          "required": [
            "mode",
            "fallbackReason",
            "segments"
          ],
          "properties": {
            "mode": {
              "type": "string",
              "enum": [
                "token_lcs",
                "whole_section"
              ]
            },
            "fallbackReason": {
              "type": [
                "string",
                "null"
              ]
            },
            "segments": {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "type",
                  "text"
                ],
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": [
                      "same",
                      "removed",
                      "added"
                    ]
                  },
                  "text": {
                    "type": "string",
                    "description": "Exact token text including whitespace; concatenate without inserting separators"
                  }
                }
              }
            }
          }
        },
        "coverage": {
          "type": "object",
          "required": [
            "before",
            "after",
            "comparedSectionsPerSide",
            "sourceCompleteness"
          ],
          "properties": {
            "before": {
              "$ref": "#/components/schemas/ReaderSectionCoverage"
            },
            "after": {
              "$ref": "#/components/schemas/ReaderSectionCoverage"
            },
            "comparedSectionsPerSide": {
              "type": "integer",
              "const": 1
            },
            "sourceCompleteness": {
              "type": "string",
              "const": "unknown"
            }
          }
        },
        "limitations": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "contentSha256": {
          "type": "string",
          "pattern": "^[a-f0-9]{64}$"
        }
      }
    }
  }
}
ReaderSectionReviewSide
{
  "allOf": [
    {
      "$ref": "#/components/schemas/ReaderSectionSource"
    },
    {
      "type": "object",
      "required": [
        "section"
      ],
      "properties": {
        "section": {
          "allOf": [
            {
              "$ref": "#/components/schemas/ReaderSectionMetadata"
            },
            {
              "type": "object",
              "required": [
                "text"
              ]
            }
          ]
        }
      }
    }
  ]
}
ReaderSectionSource
{
  "type": "object",
  "required": [
    "accession",
    "cik",
    "ticker",
    "form",
    "filedAt",
    "filingUrl",
    "verificationState",
    "parserVersion"
  ],
  "properties": {
    "accession": {
      "type": "string",
      "pattern": "^\\d{10}-\\d{2}-\\d{6}$"
    },
    "cik": {
      "type": "string",
      "pattern": "^\\d{10}$"
    },
    "ticker": {
      "type": [
        "string",
        "null"
      ]
    },
    "form": {
      "type": "string"
    },
    "filedAt": {
      "type": "string",
      "format": "date"
    },
    "filingUrl": {
      "type": "string",
      "format": "uri"
    },
    "verificationState": {
      "type": "string",
      "description": "Retained state; unknown is not promoted to verified"
    },
    "parserVersion": {
      "type": [
        "string",
        "null"
      ]
    }
  }
}
ReferenceHistoryBankIdentityFields
{
  "type": "object",
  "required": [
    "lei",
    "city",
    "state"
  ],
  "properties": {
    "lei": {
      "type": [
        "string",
        "null"
      ]
    },
    "city": {
      "type": [
        "string",
        "null"
      ]
    },
    "state": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "description": "fdic_institutions: observed current bank directory. A reported LEI does not automatically establish a match to an SEC issuer."
}
ReferenceHistoryBisFields
{
  "type": "object",
  "required": [
    "value",
    "unit",
    "period",
    "dataset",
    "country",
    "sector",
    "providerStatus",
    "providerConfidentiality"
  ],
  "properties": {
    "value": {
      "$ref": "#/components/schemas/ReferenceHistoryDecimal"
    },
    "unit": {
      "type": "string"
    },
    "period": {
      "type": "string",
      "pattern": "^[0-9]{4}-Q[1-4]$"
    },
    "dataset": {
      "type": "string",
      "enum": [
        "total_credit",
        "credit_gap",
        "debt_service",
        "property_price",
        "debt_securities",
        "foreign_exchange"
      ]
    },
    "country": {
      "type": "string"
    },
    "sector": {
      "type": "string"
    },
    "providerStatus": {
      "type": [
        "string",
        "null"
      ]
    },
    "providerConfidentiality": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "description": "bis: exact selected definition and provider status. Record date is quarter end. Preserve units and sector; do not rank incompatible series."
}
ReferenceHistoryCatalogEntry
{
  "allOf": [
    {
      "$ref": "#/components/schemas/ReferenceHistoryDataset"
    },
    {
      "type": "object",
      "required": [
        "coverage",
        "status"
      ],
      "properties": {
        "coverage": {
          "allOf": [
            {
              "$ref": "#/components/schemas/ReferenceHistoryCoverage"
            },
            {
              "type": "object",
              "required": [
                "recordCount",
                "requestedFrom",
                "requestedThrough",
                "lastCheckedAt"
              ],
              "properties": {
                "recordCount": {
                  "type": "integer",
                  "minimum": 0
                },
                "requestedFrom": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "format": "date"
                },
                "requestedThrough": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "format": "date"
                },
                "lastCheckedAt": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "format": "date-time"
                }
              },
              "description": "Requested dates are planned window bounds, not earliest/latest observations. LastCheckedAt is the latest successful window check, not proof that all windows are fresh."
            }
          ]
        },
        "status": {
          "type": "string",
          "enum": [
            "pending",
            "partial",
            "available"
          ],
          "description": "No accepted window: pending; accepted plus any error code: partial; otherwise available. Does not certify complete provider history."
        }
      }
    }
  ]
}
ReferenceHistoryCatalogResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "type": "object",
      "required": [
        "datasets",
        "notice"
      ],
      "properties": {
        "datasets": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/ReferenceHistoryCatalogEntry"
          }
        },
        "notice": {
          "type": "string"
        }
      }
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
ReferenceHistoryCoverage
{
  "type": "object",
  "required": [
    "registeredWindows",
    "acceptedWindows",
    "pendingOrFailedWindows"
  ],
  "properties": {
    "registeredWindows": {
      "type": "integer",
      "minimum": 0
    },
    "acceptedWindows": {
      "type": "integer",
      "minimum": 0
    },
    "pendingOrFailedWindows": {
      "type": "integer",
      "minimum": 0
    }
  },
  "description": "Dataset-wide download-window counts, not coverage of the requested dates. Accepted windows may be empty. PendingOrFailedWindows counts windows with an error code, including pending; it can overlap acceptedWindows after a failed refresh. Counts are not necessarily disjoint or additive."
}
ReferenceHistoryData
{
  "type": "object",
  "required": [
    "schemaVersion",
    "dataset",
    "request",
    "records",
    "receipts",
    "pagination",
    "coverage",
    "generatedAt",
    "notice"
  ],
  "properties": {
    "schemaVersion": {
      "type": "string",
      "const": "filingsift-reference-library-v1"
    },
    "dataset": {
      "$ref": "#/components/schemas/ReferenceHistoryDataset"
    },
    "request": {
      "type": "object",
      "required": [
        "dataset",
        "entity",
        "startDate",
        "endDate"
      ],
      "properties": {
        "dataset": {
          "type": "string",
          "enum": [
            "fdic_financials",
            "fdic_institutions",
            "ofr_repo",
            "ofr_stress",
            "bis",
            "gleif",
            "treasury_debt",
            "treasury_rates",
            "treasury_expense",
            "treasury_mspd"
          ]
        },
        "entity": {
          "type": "string"
        },
        "startDate": {
          "type": "string",
          "format": "date"
        },
        "endDate": {
          "type": "string",
          "format": "date"
        }
      },
      "description": "Normalized filters; omitted entity becomes an empty string. Cursor is not echoed."
    },
    "records": {
      "type": "array",
      "maxItems": 100,
      "items": {
        "$ref": "#/components/schemas/ReferenceHistoryRecord"
      }
    },
    "receipts": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ReferenceHistoryReceipt"
      }
    },
    "pagination": {
      "type": "object",
      "required": [
        "maximumRecords",
        "nextCursor"
      ],
      "properties": {
        "maximumRecords": {
          "type": "integer",
          "const": 100
        },
        "nextCursor": {
          "type": [
            "string",
            "null"
          ],
          "description": "Opaque continuation. Null means complete for these filters and accepted snapshots; otherwise resend unchanged with identical filters. No hasMore or adjustable limit."
        }
      }
    },
    "coverage": {
      "$ref": "#/components/schemas/ReferenceHistoryCoverage"
    },
    "generatedAt": {
      "type": "string",
      "format": "date-time"
    },
    "notice": {
      "type": "string"
    }
  }
}
ReferenceHistoryDataset
{
  "type": "object",
  "required": [
    "id",
    "source",
    "name",
    "unit",
    "terms",
    "entity",
    "notice"
  ],
  "properties": {
    "id": {
      "type": "string",
      "enum": [
        "fdic_financials",
        "fdic_institutions",
        "ofr_repo",
        "ofr_stress",
        "bis",
        "gleif",
        "treasury_debt",
        "treasury_rates",
        "treasury_expense",
        "treasury_mspd"
      ]
    },
    "source": {
      "type": "string",
      "enum": [
        "fdic",
        "ofr",
        "bis",
        "gleif",
        "treasury_fiscal"
      ]
    },
    "name": {
      "type": "string"
    },
    "unit": {
      "type": "string"
    },
    "terms": {
      "type": "string",
      "format": "uri"
    },
    "entity": {
      "type": [
        "string",
        "null"
      ],
      "description": "Human-readable identifier kind, not a selectable identifier. Null means no identifier selection is needed."
    },
    "notice": {
      "type": "string"
    },
    "public": {
      "type": "boolean",
      "description": "Present and true for BIS. Other datasets require account access."
    },
    "metrics": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "code",
          "label",
          "unit",
          "periodBasis"
        ],
        "properties": {
          "code": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "unit": {
            "type": "string"
          },
          "periodBasis": {
            "type": "string"
          },
          "definitionUrl": {
            "type": "string",
            "format": "uri"
          }
        }
      }
    }
  }
}
ReferenceHistoryDebtFields
{
  "type": "object",
  "required": [
    "debtHeldByPublic",
    "intragovernmentalHoldings",
    "totalOutstanding"
  ],
  "properties": {
    "debtHeldByPublic": {
      "$ref": "#/components/schemas/ReferenceHistoryDecimal"
    },
    "intragovernmentalHoldings": {
      "$ref": "#/components/schemas/ReferenceHistoryDecimal"
    },
    "totalOutstanding": {
      "$ref": "#/components/schemas/ReferenceHistoryDecimal"
    }
  },
  "description": "treasury_debt: USD; missing historical components remain null."
}
ReferenceHistoryDecimal
{
  "type": [
    "string",
    "null"
  ],
  "pattern": "^-?\\d+(?:\\.\\d+)?$",
  "description": "Exact decimal text in the dataset/field unit. Null is missing or unavailable, never zero. Use a decimal library for arithmetic."
}
ReferenceHistoryEntitiesResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "type": "object",
      "required": [
        "items",
        "truncated"
      ],
      "properties": {
        "items": {
          "type": "array",
          "maxItems": 30,
          "items": {
            "type": "object",
            "required": [
              "entity",
              "label"
            ],
            "properties": {
              "entity": {
                "type": "string"
              },
              "label": {
                "type": "string"
              }
            }
          }
        },
        "truncated": {
          "type": "boolean",
          "description": "More than 30 matches; narrow search. No cursor."
        }
      }
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
ReferenceHistoryExpenseFields
{
  "type": "object",
  "required": [
    "monthlyExpense",
    "fiscalYearToDateExpense"
  ],
  "properties": {
    "monthlyExpense": {
      "$ref": "#/components/schemas/ReferenceHistoryDecimal"
    },
    "fiscalYearToDateExpense": {
      "$ref": "#/components/schemas/ReferenceHistoryDecimal"
    }
  },
  "description": "treasury_expense: USD; monthly and fiscal-year-to-date values are separate and overlapping categories must not be summed."
}
ReferenceHistoryFdicFields
{
  "type": "object",
  "required": [
    "ASSET",
    "DEP",
    "LNLSNET",
    "EQ",
    "DEPDOM",
    "NETINC",
    "ROA",
    "ROE",
    "NCLNLSR",
    "RBCT1CER"
  ],
  "properties": {
    "ASSET": {
      "$ref": "#/components/schemas/ReferenceHistoryDecimal"
    },
    "DEP": {
      "$ref": "#/components/schemas/ReferenceHistoryDecimal"
    },
    "LNLSNET": {
      "$ref": "#/components/schemas/ReferenceHistoryDecimal"
    },
    "EQ": {
      "$ref": "#/components/schemas/ReferenceHistoryDecimal"
    },
    "DEPDOM": {
      "$ref": "#/components/schemas/ReferenceHistoryDecimal"
    },
    "NETINC": {
      "$ref": "#/components/schemas/ReferenceHistoryDecimal"
    },
    "ROA": {
      "$ref": "#/components/schemas/ReferenceHistoryDecimal"
    },
    "ROE": {
      "$ref": "#/components/schemas/ReferenceHistoryDecimal"
    },
    "NCLNLSR": {
      "$ref": "#/components/schemas/ReferenceHistoryDecimal"
    },
    "RBCT1CER": {
      "$ref": "#/components/schemas/ReferenceHistoryDecimal"
    }
  },
  "description": "fdic_financials: amounts in USD thousands; ROA, ROE, NCLNLSR, RBCT1CER in percent. NETINC is year-to-date; ROA/ROE annualized year-to-date. Read dataset.metrics for definitions."
}
ReferenceHistoryGleifFields
{
  "type": "object",
  "required": [
    "lei",
    "legalName",
    "parentRelationships",
    "goldenCopyPublishedAt"
  ],
  "properties": {
    "lei": {
      "type": "string"
    },
    "legalName": {
      "type": "string"
    },
    "jurisdiction": {
      "type": "string"
    },
    "entityStatus": {
      "type": "string"
    },
    "registrationStatus": {
      "type": "string"
    },
    "registrationUpdatedAt": {
      "type": "string"
    },
    "parentRelationships": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "kind",
          "status",
          "data"
        ],
        "properties": {
          "kind": {
            "type": "string",
            "enum": [
              "direct",
              "ultimate"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "reported",
              "reported_exception",
              "not_reported"
            ]
          },
          "data": {
            "type": [
              "object",
              "array",
              "null"
            ],
            "description": "Retained GLEIF relationship resource or reporting-exception resources; provider fields are preserved. Null when not reported."
          }
        }
      }
    },
    "goldenCopyPublishedAt": {
      "type": [
        "string",
        "null"
      ]
    },
    "reportedSeedLei": {
      "type": "string"
    },
    "identityResolution": {
      "type": "object",
      "additionalProperties": true,
      "description": "Optional source-bound seed-correction evidence, including method and retained source receipts. Does not certify ownership."
    }
  },
  "description": "gleif: observed identity/accounting-parent snapshot. Optional registration fields follow source availability; corrected seeds retain resolution evidence. Not a historical beneficial ownership database."
}
ReferenceHistoryHash
{
  "type": "string",
  "pattern": "^[a-f0-9]{64}$"
}
ReferenceHistoryMspdFields
{
  "type": "object",
  "required": [
    "heldByPublic",
    "intragovernmental",
    "total"
  ],
  "properties": {
    "heldByPublic": {
      "$ref": "#/components/schemas/ReferenceHistoryDecimal"
    },
    "intragovernmental": {
      "$ref": "#/components/schemas/ReferenceHistoryDecimal"
    },
    "total": {
      "$ref": "#/components/schemas/ReferenceHistoryDecimal"
    }
  },
  "description": "treasury_mspd: millions of USD, summary table 1."
}
ReferenceHistoryQueryResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/ReferenceHistoryData"
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
ReferenceHistoryRateFields
{
  "type": "object",
  "required": [
    "securityType",
    "averageRate"
  ],
  "properties": {
    "securityType": {
      "type": "string"
    },
    "averageRate": {
      "$ref": "#/components/schemas/ReferenceHistoryDecimal"
    }
  },
  "description": "treasury_rates: percent, average rates on outstanding debt rather than market yields."
}
ReferenceHistoryReceipt
{
  "type": "object",
  "required": [
    "snapshotSha256",
    "retrievedAt",
    "sources"
  ],
  "properties": {
    "snapshotSha256": {
      "$ref": "#/components/schemas/ReferenceHistoryHash"
    },
    "retrievedAt": {
      "type": "string",
      "format": "date-time"
    },
    "sources": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ReferenceHistorySourceReceipt"
      }
    }
  },
  "description": "Join each record.snapshotSha256 to this snapshot receipt. Receipts apply only to snapshots represented on this page."
}
ReferenceHistoryRecord
{
  "type": "object",
  "required": [
    "key",
    "entity",
    "date",
    "label",
    "fields",
    "state",
    "snapshotSha256"
  ],
  "properties": {
    "key": {
      "type": "string",
      "maxLength": 700
    },
    "entity": {
      "type": "string",
      "maxLength": 600
    },
    "date": {
      "type": "string",
      "format": "date"
    },
    "label": {
      "type": "string"
    },
    "fields": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/ReferenceHistoryFdicFields"
        },
        {
          "$ref": "#/components/schemas/ReferenceHistoryBankIdentityFields"
        },
        {
          "$ref": "#/components/schemas/ReferenceHistoryRepoFields"
        },
        {
          "$ref": "#/components/schemas/ReferenceHistoryStressFields"
        },
        {
          "$ref": "#/components/schemas/ReferenceHistoryBisFields"
        },
        {
          "$ref": "#/components/schemas/ReferenceHistoryGleifFields"
        },
        {
          "$ref": "#/components/schemas/ReferenceHistoryDebtFields"
        },
        {
          "$ref": "#/components/schemas/ReferenceHistoryRateFields"
        },
        {
          "$ref": "#/components/schemas/ReferenceHistoryExpenseFields"
        },
        {
          "$ref": "#/components/schemas/ReferenceHistoryMspdFields"
        }
      ],
      "description": "Select the field shape using the enclosing data.dataset.id; fields differ by dataset."
    },
    "state": {
      "type": "string",
      "enum": [
        "source_reported",
        "observed",
        "missing",
        "suppressed",
        "conflict",
        "estimated",
        "provisional",
        "unsupported_status"
      ],
      "description": "Source availability/state, not an SEC verification label or independent financial verification."
    },
    "snapshotSha256": {
      "$ref": "#/components/schemas/ReferenceHistoryHash"
    }
  }
}
ReferenceHistoryRepoFields
{
  "type": "object",
  "required": [
    "value",
    "unit",
    "vintage"
  ],
  "properties": {
    "value": {
      "$ref": "#/components/schemas/ReferenceHistoryDecimal"
    },
    "unit": {
      "type": "string"
    },
    "vintage": {
      "type": "string"
    }
  },
  "description": "ofr_repo: percent_per_annum or USD; preliminary and final variants remain separate."
}
ReferenceHistorySourceReceipt
{
  "type": "object",
  "required": [
    "url",
    "retrievedAt",
    "status",
    "sha256"
  ],
  "properties": {
    "url": {
      "type": "string",
      "format": "uri"
    },
    "retrievedAt": {
      "type": "string",
      "format": "date-time"
    },
    "status": {
      "type": "integer",
      "minimum": 100,
      "maximum": 599
    },
    "sha256": {
      "$ref": "#/components/schemas/ReferenceHistoryHash"
    }
  },
  "description": "Original provider response receipt. A 404 can document a missing GLEIF relationship or exception; it is not a fabricated zero or parent."
}
ReferenceHistoryStressFields
{
  "type": "object",
  "required": [
    "OFR FSI",
    "Credit",
    "Equity valuation",
    "Safe assets",
    "Funding",
    "Volatility",
    "United States",
    "Other advanced economies",
    "Emerging markets"
  ],
  "properties": {
    "OFR FSI": {
      "$ref": "#/components/schemas/ReferenceHistoryDecimal"
    },
    "Credit": {
      "$ref": "#/components/schemas/ReferenceHistoryDecimal"
    },
    "Equity valuation": {
      "$ref": "#/components/schemas/ReferenceHistoryDecimal"
    },
    "Safe assets": {
      "$ref": "#/components/schemas/ReferenceHistoryDecimal"
    },
    "Funding": {
      "$ref": "#/components/schemas/ReferenceHistoryDecimal"
    },
    "Volatility": {
      "$ref": "#/components/schemas/ReferenceHistoryDecimal"
    },
    "United States": {
      "$ref": "#/components/schemas/ReferenceHistoryDecimal"
    },
    "Other advanced economies": {
      "$ref": "#/components/schemas/ReferenceHistoryDecimal"
    },
    "Emerging markets": {
      "$ref": "#/components/schemas/ReferenceHistoryDecimal"
    }
  },
  "description": "ofr_stress: published index and category/region contributions, not an issuer credit rating."
}
Refusal
{
  "type": "object",
  "required": [
    "concept",
    "reasonCode",
    "reason",
    "evidence",
    "evidenceSha256",
    "locator"
  ],
  "properties": {
    "concept": {
      "type": "string"
    },
    "reasonCode": {
      "type": "string"
    },
    "reason": {
      "type": "string"
    },
    "evidence": {
      "type": "string"
    },
    "evidenceSha256": {
      "type": "string"
    },
    "locator": {
      "$ref": "#/components/schemas/Locator"
    }
  }
}
ReportingTimingCoverage
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "returnedFilings",
    "inspectedFilings",
    "historyMayBeTruncated",
    "availableIntervals",
    "unavailableIntervals",
    "amendmentFilings",
    "repeatedPeriodGroups",
    "expectedSecFilings",
    "sourceCompleteness",
    "basis"
  ],
  "properties": {
    "returnedFilings": {
      "type": "integer",
      "minimum": 0,
      "maximum": 100
    },
    "inspectedFilings": {
      "type": "integer",
      "minimum": 0,
      "maximum": 101,
      "description": "Includes the validated lookahead",
      "if present": null
    },
    "historyMayBeTruncated": {
      "type": "boolean"
    },
    "availableIntervals": {
      "type": "integer",
      "minimum": 0,
      "maximum": 100
    },
    "unavailableIntervals": {
      "type": "integer",
      "minimum": 0,
      "maximum": 100,
      "description": "Available plus unavailable intervals equals returnedFilings"
    },
    "amendmentFilings": {
      "type": "integer",
      "minimum": 0,
      "maximum": 100,
      "description": "Returned entries whose exact selected form ends in /A"
    },
    "repeatedPeriodGroups": {
      "type": "integer",
      "minimum": 0,
      "maximum": 50,
      "description": "Distinct valid recorded period ends appearing more than once among returned entries only"
    },
    "expectedSecFilings": {
      "type": "null"
    },
    "sourceCompleteness": {
      "type": "string",
      "const": "unknown"
    },
    "basis": {
      "type": "string",
      "const": "indexed_filing_metadata"
    }
  }
}
ReportingTimingEntry
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "accession",
    "cik",
    "ticker",
    "issuerName",
    "form",
    "filedAt",
    "periodEnd",
    "filingUrl",
    "readerUrl",
    "verificationState",
    "parserVersion",
    "illustrative",
    "isAmendment",
    "calendarDays",
    "intervalState",
    "samePeriodCount",
    "evidenceText",
    "evidenceBasis"
  ],
  "properties": {
    "accession": {
      "type": "string",
      "pattern": "^\\d{10}-\\d{2}-\\d{6}$"
    },
    "cik": {
      "type": "string",
      "pattern": "^(?!0{10}$)\\d{10}$"
    },
    "ticker": {
      "type": "string",
      "pattern": "^[A-Z0-9][A-Z0-9.-]{0,14}$"
    },
    "issuerName": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 1000
    },
    "form": {
      "type": "string",
      "enum": [
        "10-K",
        "10-K/A",
        "10-Q",
        "10-Q/A",
        "20-F",
        "20-F/A"
      ]
    },
    "filedAt": {
      "type": "string",
      "format": "date",
      "description": "Valid retained filing date within the exact requested scope",
      "not acceptance timestamp": null
    },
    "periodEnd": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 10,
      "description": "Raw safe retained value including empty or invalid date strings; intentionally not a date-format field and never inferred or repaired"
    },
    "filingUrl": {
      "type": "string",
      "format": "uri",
      "maxLength": 2048,
      "description": "HTTPS www.sec.gov Archive URL bound to this accession and CIK"
    },
    "readerUrl": {
      "type": "string",
      "pattern": "^/#/reader/\\d{10}-\\d{2}-\\d{6}$"
    },
    "verificationState": {
      "type": "string",
      "minLength": 1,
      "maxLength": 80,
      "description": "Retained state; an absent state is source-captured and reporting-period validation remains separately recorded"
    },
    "parserVersion": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 200,
      "description": "Retained processing.parserVersion; no parser inference"
    },
    "illustrative": {
      "type": "boolean"
    },
    "isAmendment": {
      "type": "boolean",
      "description": "True only for a selected form ending in /A; no original-filing association is inferred"
    },
    "calendarDays": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 0,
      "description": "Exact UTC date-only filedAt minus valid periodEnd; zero for the same day",
      "null for unavailable intervals": null
    },
    "intervalState": {
      "type": "string",
      "enum": [
        "available",
        "period_end_missing",
        "period_end_invalid",
        "period_end_after_filing"
      ]
    },
    "samePeriodCount": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 1,
      "maximum": 100,
      "description": "Count among returned entries with the same valid recorded period end",
      "even if after filing; null for missing/invalid period dates": null
    },
    "evidenceText": {
      "type": "string",
      "description": "Explicitly labelled representation of stored filedAt and periodEnd metadata",
      "not an extracted filing quotation": null
    },
    "evidenceBasis": {
      "type": "string",
      "const": "indexed_metadata_not_filing_quote"
    }
  }
}
ReportingTimingMethod
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "id",
    "unit",
    "operation",
    "dateBasis",
    "maximumWindowDays",
    "maximumFilings"
  ],
  "properties": {
    "id": {
      "type": "string",
      "const": "retained_period_to_filing_calendar_days_v1"
    },
    "unit": {
      "type": "string",
      "const": "calendar_days"
    },
    "operation": {
      "type": "string",
      "const": "filedAt_minus_periodEnd"
    },
    "dateBasis": {
      "type": "string",
      "const": "date_only"
    },
    "maximumWindowDays": {
      "type": "integer",
      "const": 3660
    },
    "maximumFilings": {
      "type": "integer",
      "const": 100
    }
  }
}
ReportingTimingResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    },
    "data": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "schemaVersion",
        "generatedAt",
        "scope",
        "entries",
        "coverage",
        "method",
        "limitations",
        "contentSha256"
      ],
      "properties": {
        "schemaVersion": {
          "type": "string",
          "const": "filingsift-reporting-timing-v1"
        },
        "generatedAt": {
          "type": "string",
          "format": "date-time"
        },
        "scope": {
          "$ref": "#/components/schemas/ReportingTimingScope"
        },
        "entries": {
          "type": "array",
          "maxItems": 100,
          "items": {
            "$ref": "#/components/schemas/ReportingTimingEntry"
          },
          "description": "Ordered by filedAt descending then accession descending; the lookahead is not an exported entry"
        },
        "coverage": {
          "$ref": "#/components/schemas/ReportingTimingCoverage"
        },
        "method": {
          "$ref": "#/components/schemas/ReportingTimingMethod"
        },
        "limitations": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "contentSha256": {
          "type": "string",
          "pattern": "^[a-f0-9]{64}$",
          "description": "Sorted-key canonical result JSON excluding itself and including generatedAt; reruns can hash differently without metadata changes. Not a signature or archived source."
        }
      }
    }
  }
}
ReportingTimingScope
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "ticker",
    "form",
    "filedFrom",
    "filedTo",
    "limit"
  ],
  "properties": {
    "ticker": {
      "type": "string",
      "pattern": "^[A-Z0-9][A-Z0-9.-]{0,14}$"
    },
    "form": {
      "type": "string",
      "enum": [
        "10-K",
        "10-K/A",
        "10-Q",
        "10-Q/A",
        "20-F",
        "20-F/A"
      ]
    },
    "filedFrom": {
      "type": "string",
      "format": "date",
      "description": "Normalized inclusive start date; years 1900–9998"
    },
    "filedTo": {
      "type": "string",
      "format": "date",
      "description": "Normalized inclusive end date; no later than today and at most 3660 inclusive days from the start"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  }
}
ResearchSnapshotArtifact
{
  "oneOf": [
    {
      "$ref": "#/components/schemas/FilingResearchSnapshotArtifact"
    },
    {
      "$ref": "#/components/schemas/SourceResearchSnapshotArtifact"
    }
  ]
}
ResearchSnapshotDefinition
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "kind",
    "ticker"
  ],
  "properties": {
    "kind": {
      "type": "string",
      "enum": [
        "debt_amendment_history",
        "financing_tables",
        "filing_timeline",
        "source_research_report"
      ]
    },
    "ticker": {
      "type": "string",
      "pattern": "^[A-Za-z0-9.-]{1,16}$"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 40,
      "default": 40
    }
  }
}
ResearchSnapshotListResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "type": "object",
      "required": [
        "snapshots",
        "caps",
        "usage"
      ],
      "properties": {
        "snapshots": {
          "type": "array",
          "maxItems": 100,
          "items": {
            "$ref": "#/components/schemas/ResearchSnapshotSummary"
          }
        },
        "caps": {
          "type": "object",
          "required": [
            "snapshotsPerOrganization",
            "maximumArtifactBytes"
          ],
          "properties": {
            "snapshotsPerOrganization": {
              "type": "integer",
              "const": 100
            },
            "maximumArtifactBytes": {
              "type": "integer",
              "const": 1500000
            }
          }
        },
        "usage": {
          "type": "object",
          "required": [
            "snapshots"
          ],
          "properties": {
            "snapshots": {
              "type": "integer",
              "minimum": 0,
              "maximum": 100,
              "description": "Organization-wide count",
              "including other users' private artifacts without exposing their metadata": null
            }
          }
        }
      }
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
ResearchSnapshotPreviewResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/ResearchSnapshotArtifact"
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
ResearchSnapshotSaved
{
  "type": "object",
  "required": [
    "id",
    "name",
    "createdAt",
    "artifact"
  ],
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 120
    },
    "createdAt": {
      "type": "string",
      "format": "date-time",
      "description": "Save/capture metadata",
      "not SEC acceptance or first-observed time": null
    },
    "artifact": {
      "$ref": "#/components/schemas/ResearchSnapshotArtifact"
    }
  }
}
ResearchSnapshotSavedResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/ResearchSnapshotSaved"
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
ResearchSnapshotSource
{
  "type": "object",
  "required": [
    "accession",
    "ticker",
    "cik",
    "form",
    "filedAt",
    "acceptedAt",
    "periodEnd",
    "ingestedAt",
    "filingUrl",
    "structuredSha256",
    "documents"
  ],
  "properties": {
    "accession": {
      "type": "string",
      "pattern": "^[0-9]{10}-[0-9]{2}-[0-9]{6}$"
    },
    "ticker": {
      "type": "string"
    },
    "cik": {
      "type": [
        "string",
        "null"
      ]
    },
    "form": {
      "type": [
        "string",
        "null"
      ]
    },
    "filedAt": {
      "type": "string",
      "format": "date"
    },
    "acceptedAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "periodEnd": {
      "type": [
        "string",
        "null"
      ],
      "format": "date"
    },
    "ingestedAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time",
      "description": "Retained ingestion time is not established first-observed time"
    },
    "filingUrl": {
      "type": "string",
      "format": "uri"
    },
    "structuredSha256": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$",
      "description": "Hash of the selected structured record; the complete input record is not archived in the artifact"
    },
    "documents": {
      "type": "array",
      "minItems": 1,
      "maxItems": 400,
      "items": {
        "$ref": "#/components/schemas/ResearchSnapshotSourceDocument"
      }
    }
  }
}
ResearchSnapshotSourceDocument
{
  "type": "object",
  "required": [
    "kind",
    "name",
    "url",
    "contentSha256",
    "parserVersion",
    "extractionSchemaVersion",
    "extractionSha256",
    "verificationState",
    "extractionState"
  ],
  "properties": {
    "kind": {
      "type": "string",
      "enum": [
        "primary",
        "material_exhibit"
      ]
    },
    "name": {
      "type": [
        "string",
        "null"
      ]
    },
    "url": {
      "type": "string",
      "format": "uri",
      "description": "Live SEC Archives link",
      "not a frozen raw document copy": null
    },
    "contentSha256": {
      "type": [
        "string",
        "null"
      ],
      "pattern": "^[a-f0-9]{64}$",
      "description": "Available retained source content hash; null when unavailable"
    },
    "parserVersion": {
      "type": [
        "string",
        "null"
      ]
    },
    "extractionSchemaVersion": {
      "type": [
        "string",
        "integer",
        "null"
      ],
      "description": "Retained scalar extraction schema version or null when unavailable; raw metadata objects are not copied"
    },
    "extractionSha256": {
      "type": [
        "string",
        "null"
      ],
      "pattern": "^[a-f0-9]{64}$"
    },
    "verificationState": {
      "type": "string"
    },
    "extractionState": {
      "type": "string",
      "enum": [
        "available",
        "missing"
      ]
    }
  }
}
ResearchSnapshotSummary
{
  "type": "object",
  "required": [
    "id",
    "name",
    "createdAt",
    "kind",
    "ticker",
    "contentSha256",
    "resultSha256",
    "sourceCount"
  ],
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "name": {
      "type": "string"
    },
    "createdAt": {
      "type": "string",
      "format": "date-time"
    },
    "kind": {
      "type": "string",
      "enum": [
        "debt_amendment_history",
        "financing_tables",
        "filing_timeline",
        "source_research_report"
      ]
    },
    "ticker": {
      "type": "string"
    },
    "contentSha256": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    },
    "resultSha256": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    },
    "sourceCount": {
      "type": "integer",
      "minimum": 0,
      "maximum": 40
    }
  }
}
RetainedHistoryQuery
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "source",
    "dataset",
    "metric",
    "startDate",
    "endDate"
  ],
  "properties": {
    "source": {
      "type": "string",
      "enum": [
        "fdic",
        "eia",
        "cftc"
      ]
    },
    "dataset": {
      "type": "string",
      "enum": [
        "financials",
        "sod",
        "retail_sales",
        "generation_mix",
        "petroleum_stocks",
        "natural_gas_storage",
        "legacy_futures",
        "legacy_combined",
        "disaggregated_futures",
        "disaggregated_combined",
        "tff_futures",
        "tff_combined",
        "supplemental"
      ]
    },
    "metric": {
      "type": "string",
      "description": "FDIC catalog code or DEPSUMBR; EIA price/revenue/sales",
      "generation or value; CFTC open_interest or a family category plus _long/_short/_net": null
    },
    "startDate": {
      "type": "string",
      "format": "date"
    },
    "endDate": {
      "type": "string",
      "format": "date"
    },
    "marketCodes": {
      "type": "array",
      "minItems": 1,
      "maxItems": 4,
      "uniqueItems": true,
      "description": "Required for CFTC only; discover codes through the live CFTC market search",
      "items": {
        "type": "string",
        "pattern": "^[A-Z0-9+]{1,12}$"
      }
    },
    "certificates": {
      "type": "array",
      "maxItems": 25,
      "uniqueItems": true,
      "items": {
        "type": "string",
        "pattern": "^\\d{1,10}$"
      }
    },
    "name": {
      "type": "string",
      "maxLength": 100,
      "description": "FDIC name substring"
    },
    "state": {
      "type": "string",
      "description": "EIA area or FDIC branch state; no financial-state reconstruction"
    },
    "sector": {
      "type": "string",
      "description": "Required for monthly EIA datasets"
    },
    "series": {
      "type": "string",
      "description": "Required for weekly EIA datasets"
    },
    "fuel": {
      "type": "string",
      "description": "Optional generation fuel code"
    },
    "min": {
      "type": "string",
      "description": "Inclusive exact decimal bound; excludes missing cells"
    },
    "max": {
      "type": "string",
      "description": "Inclusive exact decimal bound; excludes missing cells"
    },
    "cursor": {
      "type": "string",
      "maxLength": 1500
    }
  }
}
RetainedHistoryResult
{
  "type": "object",
  "required": [
    "schemaVersion",
    "request",
    "rows",
    "receipts",
    "coverage",
    "nextCursor",
    "incompleteWindows"
  ],
  "properties": {
    "schemaVersion": {
      "type": "string",
      "const": "filingsift-retained-history-v1"
    },
    "request": {
      "$ref": "#/components/schemas/RetainedHistoryQuery"
    },
    "checkpointAt": {
      "type": "string",
      "format": "date-time"
    },
    "historyBasis": {
      "type": "string"
    },
    "matchingWindows": {
      "type": "integer"
    },
    "nextCursor": {
      "type": [
        "string",
        "null"
      ]
    },
    "incompleteWindows": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "limitations": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "coverage": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "window": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "reason": {
            "type": "string"
          },
          "missingCells": {
            "type": [
              "integer",
              "null"
            ]
          },
          "missingFields": {
            "type": [
              "object",
              "null"
            ],
            "additionalProperties": {
              "type": "integer"
            }
          },
          "notReturnedPeriods": {
            "type": [
              "integer",
              "null"
            ]
          }
        }
      }
    },
    "receipts": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "window": {
            "type": "string"
          },
          "sha256": {
            "type": "string"
          },
          "sourceUrl": {
            "type": "string",
            "format": "uri"
          },
          "retrievedAt": {
            "type": "string",
            "format": "date-time"
          },
          "sourceSha256": {
            "type": "string"
          }
        }
      }
    },
    "rows": {
      "type": "array",
      "maxItems": 500,
      "items": {
        "type": "object",
        "required": [
          "id",
          "date",
          "seriesId",
          "label",
          "value",
          "unit",
          "verificationState",
          "sourceUrl",
          "archiveSha256"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "date": {
            "type": "string",
            "format": "date"
          },
          "seriesId": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "value": {
            "type": [
              "string",
              "null"
            ],
            "description": "Exact decimal or null"
          },
          "unit": {
            "type": [
              "string",
              "null"
            ]
          },
          "periodBasis": {
            "type": [
              "string",
              "null"
            ]
          },
          "missingReason": {
            "type": [
              "string",
              "null"
            ]
          },
          "state": {
            "type": [
              "string",
              "null"
            ]
          },
          "city": {
            "type": [
              "string",
              "null"
            ]
          },
          "verificationState": {
            "type": "string",
            "const": "source_reported"
          },
          "sourceUrl": {
            "type": "string",
            "format": "uri"
          },
          "retrievedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archiveSha256": {
            "type": "string"
          }
        }
      }
    }
  }
}
RetainedHistoryWindow
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "start": {
      "type": "string",
      "description": "Source date or month"
    },
    "end": {
      "type": "string",
      "description": "Source date or month"
    },
    "state": {
      "type": [
        "string",
        "null"
      ]
    },
    "status": {
      "type": "string"
    },
    "records": {
      "type": "integer"
    },
    "missingCells": {
      "type": [
        "integer",
        "null"
      ]
    },
    "notReturnedPeriods": {
      "type": [
        "integer",
        "null"
      ]
    }
  }
}
S (33)
SavedDashboardViewRequest
{
  "type": "object",
  "required": [
    "name",
    "route"
  ],
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 120
    },
    "route": {
      "type": "string",
      "description": "Internal /#/search, intelligence, reader, analyst or monitoring route.",
      "maxLength": 500
    },
    "configuration": {
      "type": "object",
      "description": "At most 20 KB of JSON."
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 40
      },
      "minItems": 0,
      "maxItems": 20
    }
  }
}
SavedScreenCreateRequest
{
  "type": "object",
  "required": [
    "name",
    "request"
  ],
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 120
    },
    "request": {
      "oneOf": [
        {
          "$ref": "#/components/schemas/FinancingScreenRequest"
        },
        {
          "$ref": "#/components/schemas/MarketScreenRequest"
        }
      ]
    },
    "alertEnabled": {
      "type": "boolean",
      "default": false,
      "description": "Opt in to creator-only alerts for newly indexed matching filings; requires enabled organization Monitoring."
    },
    "visibility": {
      "type": "string",
      "enum": [
        "personal",
        "team"
      ],
      "default": "personal"
    }
  }
}
SavedScreenUpdateRequest
{
  "type": "object",
  "minProperties": 1,
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 120
    },
    "request": {
      "oneOf": [
        {
          "$ref": "#/components/schemas/FinancingScreenRequest"
        },
        {
          "$ref": "#/components/schemas/MarketScreenRequest"
        }
      ]
    },
    "alertEnabled": {
      "type": "boolean",
      "description": "Enable or disable prospective saved-screen alerts. Editing or disabling a screen suppresses queued alerts from its previous revision."
    },
    "visibility": {
      "type": "string",
      "enum": [
        "personal",
        "team"
      ]
    }
  }
}
SavedSearchCreateRequest
{
  "allOf": [
    {
      "$ref": "#/components/schemas/SearchRequest"
    },
    {
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120
        },
        "alertEnabled": {
          "type": "boolean",
          "default": false
        },
        "visibility": {
          "type": "string",
          "enum": [
            "personal",
            "team"
          ],
          "default": "personal"
        },
        "marketWide": {
          "type": "boolean",
          "default": true
        }
      }
    }
  ]
}
SavedSearchUpdateRequest
{
  "type": "object",
  "minProperties": 1,
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 120
    },
    "query": {
      "type": "string",
      "minLength": 1,
      "maxLength": 500
    },
    "useSynonyms": {
      "type": "boolean"
    },
    "filters": {
      "$ref": "#/components/schemas/SearchFilters"
    },
    "alertEnabled": {
      "type": "boolean"
    },
    "visibility": {
      "type": "string",
      "enum": [
        "personal",
        "team"
      ]
    }
  }
}
SearchCoverageReceipt
{
  "type": "object",
  "description": "Deployed market search/screen receipt. This is evidence of observed inventory and bounded execution, not complete SEC coverage, semantic recall, fact absence, human verification or historical replay. Canonical hashing recursively sorts object keys and preserves array order; receiptSha256 hashes this object with receiptSha256 omitted.",
  "required": [
    "schemaVersion",
    "receiptSha256",
    "resultSha256",
    "generatedAt",
    "scope",
    "inventory",
    "reconciliation",
    "execution",
    "inspection",
    "gaps",
    "limits",
    "pagination",
    "resultInterpretation",
    "warnings"
  ],
  "properties": {
    "schemaVersion": {
      "type": "string",
      "const": "filingsift-search-coverage-receipt-v1"
    },
    "receiptSha256": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    },
    "resultSha256": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$",
      "description": "Canonical hash of the original full result-object array",
      "not the flattened export rows": null
    },
    "generatedAt": {
      "type": "string",
      "format": "date-time"
    },
    "scope": {
      "type": "object",
      "required": [
        "operation",
        "requestSha256",
        "query",
        "querySha256",
        "useSynonyms",
        "screen",
        "filters",
        "historyStart",
        "inputCursor",
        "requestedPageSize",
        "inventoryScope"
      ],
      "properties": {
        "operation": {
          "type": "string",
          "enum": [
            "market_search",
            "market_screen"
          ]
        },
        "requestSha256": {
          "type": "string",
          "pattern": "^[a-f0-9]{64}$"
        },
        "query": {
          "type": "string"
        },
        "querySha256": {
          "type": "string",
          "pattern": "^[a-f0-9]{64}$"
        },
        "useSynonyms": {
          "type": "boolean"
        },
        "screen": {
          "type": [
            "string",
            "null"
          ]
        },
        "filters": {
          "$ref": "#/components/schemas/MarketSearchFilters"
        },
        "historyStart": {
          "type": [
            "string",
            "null"
          ],
          "format": "date"
        },
        "inputCursor": {
          "type": [
            "object",
            "null"
          ],
          "description": "Decoded input keyset position, not a pinned dataset edition",
          "required": [
            "filedAt",
            "accession",
            "passageId"
          ],
          "properties": {
            "filedAt": {
              "type": "string",
              "format": "date"
            },
            "accession": {
              "type": "string"
            },
            "passageId": {
              "type": "string"
            }
          }
        },
        "requestedPageSize": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100
        },
        "inventoryScope": {
          "type": "string",
          "const": "filing_and_issuer_filters_before_text_and_passage_filters"
        }
      }
    },
    "inventory": {
      "type": "object",
      "description": "Filing/issuer/date/classification/history scope before query text, screen rules, passage filters and cursor. Unknown counts are null. Indexed and unindexed partition known filings; other status counts can overlap with index presence and must not be added together. Unknown classifications are reported separately. Index presence does not establish that every filing document was extracted.",
      "required": [
        "status",
        "expectedFilingCount",
        "knownFilingCount",
        "indexedFilingCount",
        "unindexedFilingCount",
        "failedFilingCount",
        "pendingFilingCount",
        "notQueuedFilingCount",
        "staleIndexedFilingCount",
        "unknownStatusFilingCount",
        "unknownClassificationFilingCount",
        "failedDocumentCount"
      ],
      "properties": {
        "status": {
          "type": "string",
          "enum": [
            "observed_only",
            "unavailable"
          ]
        },
        "expectedFilingCount": {
          "type": "null",
          "description": "Always unknown; there is no authoritative complete SEC denominator"
        },
        "knownFilingCount": {
          "type": [
            "integer",
            "null"
          ],
          "minimum": 0
        },
        "indexedFilingCount": {
          "type": [
            "integer",
            "null"
          ],
          "minimum": 0
        },
        "unindexedFilingCount": {
          "type": [
            "integer",
            "null"
          ],
          "minimum": 0
        },
        "failedFilingCount": {
          "type": [
            "integer",
            "null"
          ],
          "minimum": 0
        },
        "pendingFilingCount": {
          "type": [
            "integer",
            "null"
          ],
          "minimum": 0
        },
        "notQueuedFilingCount": {
          "type": [
            "integer",
            "null"
          ],
          "minimum": 0
        },
        "staleIndexedFilingCount": {
          "type": [
            "integer",
            "null"
          ],
          "minimum": 0
        },
        "unknownStatusFilingCount": {
          "type": [
            "integer",
            "null"
          ],
          "minimum": 0
        },
        "unknownClassificationFilingCount": {
          "type": [
            "integer",
            "null"
          ],
          "minimum": 0
        },
        "failedDocumentCount": {
          "type": "null",
          "description": "Unknown; current inventory does not exhaustively count document or exhibit failures"
        }
      }
    },
    "reconciliation": {
      "type": "object",
      "description": "Recorded calendar reconciliation runs in the effective date range, not issuer-specific reconciliation or proof all publishing dates were checked",
      "required": [
        "status",
        "latestCompletedAt",
        "from",
        "to",
        "completedDateCount",
        "expectedDateCount",
        "missingDateCount"
      ],
      "properties": {
        "status": {
          "type": "string",
          "enum": [
            "observed_only",
            "unavailable"
          ]
        },
        "latestCompletedAt": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "from": {
          "type": [
            "string",
            "null"
          ],
          "format": "date"
        },
        "to": {
          "type": [
            "string",
            "null"
          ],
          "format": "date"
        },
        "completedDateCount": {
          "type": [
            "integer",
            "null"
          ],
          "minimum": 0
        },
        "expectedDateCount": {
          "type": "null",
          "description": "Unknown; no expected SEC index publication calendar is asserted"
        },
        "missingDateCount": {
          "type": "null",
          "description": "Unknown; not inferred from gaps between observed calendar dates"
        }
      }
    },
    "execution": {
      "type": "object",
      "required": [
        "candidatePassageCount",
        "candidateCountIsLowerBound",
        "inspectedPassageCount",
        "inspectedFilingCount",
        "inspectedDocumentCount",
        "nonMatchingPassageCount",
        "uninspectedCandidatePassageCount",
        "returnedResultCount",
        "snapshotConsistent"
      ],
      "properties": {
        "candidatePassageCount": {
          "type": "integer",
          "minimum": 0
        },
        "candidateCountIsLowerBound": {
          "type": "boolean"
        },
        "inspectedPassageCount": {
          "type": "integer",
          "minimum": 0
        },
        "inspectedFilingCount": {
          "type": "integer",
          "minimum": 0
        },
        "inspectedDocumentCount": {
          "type": "integer",
          "minimum": 0
        },
        "nonMatchingPassageCount": {
          "type": "integer",
          "minimum": 0
        },
        "uninspectedCandidatePassageCount": {
          "type": "integer",
          "minimum": 0
        },
        "returnedResultCount": {
          "type": "integer",
          "minimum": 0,
          "maximum": 100
        },
        "snapshotConsistent": {
          "type": "boolean",
          "description": "Whether inventory and execution used one consistent snapshot for this request; not cross-page freezing"
        }
      }
    },
    "inspection": {
      "type": "object",
      "description": "Digest of all inspected passage identities in inspection order plus a bounded sample; a truncated sample cannot reproduce the complete manifest hash",
      "required": [
        "manifestSha256",
        "hashAlgorithm",
        "passages",
        "sampleLimit",
        "truncated"
      ],
      "properties": {
        "manifestSha256": {
          "type": "string",
          "pattern": "^[a-f0-9]{64}$"
        },
        "hashAlgorithm": {
          "type": "string",
          "const": "sha256_canonical_json_sorted_object_keys_array_order_preserved"
        },
        "passages": {
          "type": "array",
          "maxItems": 100,
          "items": {
            "type": "object",
            "required": [
              "accession",
              "passageId",
              "documentId",
              "sourceUrl",
              "passageSha256",
              "verificationState"
            ],
            "properties": {
              "accession": {
                "type": "string"
              },
              "passageId": {
                "type": "string"
              },
              "documentId": {
                "type": "string"
              },
              "sourceUrl": {
                "type": "string",
                "format": "uri"
              },
              "passageSha256": {
                "type": "string",
                "pattern": "^[a-f0-9]{64}$"
              },
              "verificationState": {
                "$ref": "#/components/schemas/VerificationState"
              }
            }
          }
        },
        "sampleLimit": {
          "type": "integer",
          "const": 100
        },
        "truncated": {
          "type": "boolean"
        }
      }
    },
    "gaps": {
      "type": "object",
      "required": [
        "items",
        "sampleLimit",
        "totalKnownGapCount",
        "truncated"
      ],
      "properties": {
        "items": {
          "type": "array",
          "maxItems": 20,
          "items": {
            "type": "object",
            "required": [
              "accession",
              "cik",
              "form",
              "filedAt",
              "state"
            ],
            "properties": {
              "accession": {
                "type": "string"
              },
              "cik": {
                "type": "string"
              },
              "form": {
                "type": "string"
              },
              "filedAt": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "date"
              },
              "state": {
                "type": "string"
              }
            }
          }
        },
        "sampleLimit": {
          "type": "integer",
          "const": 20
        },
        "totalKnownGapCount": {
          "type": [
            "integer",
            "null"
          ],
          "minimum": 0
        },
        "truncated": {
          "type": "boolean"
        }
      }
    },
    "limits": {
      "type": "object",
      "required": [
        "scanLimitReached",
        "candidateWindowTruncated",
        "resultLimitReached",
        "indexSnapshotPinned"
      ],
      "properties": {
        "scanLimitReached": {
          "type": "boolean"
        },
        "candidateWindowTruncated": {
          "type": "boolean"
        },
        "resultLimitReached": {
          "type": "boolean"
        },
        "indexSnapshotPinned": {
          "type": "boolean",
          "const": false
        }
      }
    },
    "pagination": {
      "$ref": "#/components/schemas/MarketResearchPagination"
    },
    "resultInterpretation": {
      "type": "string",
      "enum": [
        "matches_in_inspected_passages",
        "no_match_in_inspected_passages"
      ]
    },
    "warnings": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
SearchFilters
{
  "type": "object",
  "properties": {
    "tickers": {
      "type": "array",
      "maxItems": 50,
      "items": {
        "type": "string",
        "pattern": "^[A-Z0-9.-]{1,16}$"
      }
    },
    "forms": {
      "type": "array",
      "maxItems": 6,
      "items": {
        "$ref": "#/components/schemas/Form"
      }
    },
    "categories": {
      "type": "array",
      "maxItems": 4,
      "items": {
        "type": "string",
        "enum": [
          "debt",
          "liquidity",
          "covenant",
          "going_concern"
        ]
      }
    },
    "events": {
      "type": "array",
      "maxItems": 9,
      "items": {
        "type": "string"
      }
    },
    "verificationStates": {
      "type": "array",
      "maxItems": 4,
      "items": {
        "$ref": "#/components/schemas/VerificationState"
      }
    },
    "filedFrom": {
      "type": [
        "string",
        "null"
      ],
      "format": "date"
    },
    "filedTo": {
      "type": [
        "string",
        "null"
      ],
      "format": "date"
    }
  }
}
SearchRequest
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "query": {
      "type": "string",
      "minLength": 1,
      "maxLength": 500
    },
    "useSynonyms": {
      "type": "boolean",
      "default": true
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 20
    },
    "filters": {
      "$ref": "#/components/schemas/SearchFilters"
    }
  }
}
SecDisclosureSelection
{
  "allOf": [
    {
      "$ref": "#/components/schemas/SecSourceSelection"
    },
    {
      "type": "object",
      "required": [
        "recordKey"
      ],
      "properties": {
        "recordKey": {
          "type": "string",
          "description": "Exact recordKey from the selected source record."
        }
      }
    }
  ]
}
SecLatencyPercentiles
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "sampleCount",
    "p50Seconds",
    "p95Seconds"
  ],
  "properties": {
    "sampleCount": {
      "type": "integer",
      "minimum": 0
    },
    "p50Seconds": {
      "type": [
        "number",
        "null"
      ],
      "minimum": 0
    },
    "p95Seconds": {
      "type": [
        "number",
        "null"
      ],
      "minimum": 0
    }
  }
}
SecLatencyReport
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "schemaVersion",
    "scope",
    "windowDays",
    "windowStartedAt",
    "measuredAt",
    "stages",
    "checkpoints",
    "deliveryBoundary",
    "population",
    "excluded",
    "subMinuteEndToEndClaim",
    "websocketEquivalent",
    "limitations"
  ],
  "properties": {
    "schemaVersion": {
      "type": "string",
      "const": "filingsift-sec-latency-v1"
    },
    "scope": {
      "type": "string",
      "const": "production_current_stream_and_issuer_polling"
    },
    "windowDays": {
      "type": "integer",
      "const": 30
    },
    "windowStartedAt": {
      "type": "string",
      "format": "date-time"
    },
    "measuredAt": {
      "type": "string",
      "format": "date-time"
    },
    "stages": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "acceptanceToDiscovery",
        "discoveryToExtraction",
        "extractionToAlertDelivery"
      ],
      "properties": {
        "acceptanceToDiscovery": {
          "$ref": "#/components/schemas/SecLatencyPercentiles"
        },
        "discoveryToExtraction": {
          "$ref": "#/components/schemas/SecLatencyPercentiles"
        },
        "extractionToAlertDelivery": {
          "$ref": "#/components/schemas/SecLatencyPercentiles"
        }
      }
    },
    "checkpoints": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "acceptanceToExtraction",
        "acceptanceToAlertDelivery"
      ],
      "properties": {
        "acceptanceToExtraction": {
          "$ref": "#/components/schemas/SecLatencyPercentiles"
        },
        "acceptanceToAlertDelivery": {
          "$ref": "#/components/schemas/SecLatencyPercentiles"
        }
      }
    },
    "deliveryBoundary": {
      "type": "string",
      "const": "email_provider_acceptance"
    },
    "population": {
      "type": "string"
    },
    "excluded": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "subMinuteEndToEndClaim": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "eligible",
        "status",
        "thresholdSeconds",
        "minimumSamplesPerCheckpoint"
      ],
      "properties": {
        "eligible": {
          "type": "boolean"
        },
        "status": {
          "type": "string",
          "enum": [
            "insufficient_samples",
            "p95_exceeds_60_seconds",
            "demonstrated"
          ]
        },
        "thresholdSeconds": {
          "type": "number",
          "const": 60
        },
        "minimumSamplesPerCheckpoint": {
          "type": "integer",
          "const": 100
        }
      }
    },
    "websocketEquivalent": {
      "type": "boolean",
      "const": false
    },
    "limitations": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
SecSourceSelection
{
  "type": "object",
  "required": [
    "dataset",
    "cik",
    "accession",
    "sourceSha256"
  ],
  "properties": {
    "dataset": {
      "type": "string",
      "description": "Use an identifier returned by /sec-datasets/catalog."
    },
    "cik": {
      "type": "string",
      "pattern": "^[0-9]{1,10}$"
    },
    "accession": {
      "type": "string"
    },
    "sourceSha256": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$",
      "description": "Copy the exact retained source version from the selected source record."
    }
  }
}
Section
{
  "type": "object",
  "required": [
    "heading",
    "text",
    "textSha256",
    "locator"
  ],
  "properties": {
    "heading": {
      "type": "string"
    },
    "text": {
      "type": "string"
    },
    "textSha256": {
      "type": "string"
    },
    "locator": {
      "$ref": "#/components/schemas/Locator"
    }
  }
}
SignupHandoffRequest
{
  "type": "object",
  "required": [
    "ticket"
  ],
  "properties": {
    "ticket": {
      "$ref": "#/components/schemas/SignupHandoffTicket"
    }
  }
}
SignupHandoffTicket
{
  "type": "string",
  "minLength": 64,
  "maxLength": 644,
  "pattern": "^[A-Za-z0-9_-]{20,600}\\.[A-Za-z0-9_-]{43}$",
  "description": "Signed 30-minute signup handoff. Treat as sensitive; do not log or persist in URLs. Not an email-verification token or session credential."
}
SignupRequest
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "displayName",
    "email",
    "organizationName",
    "password",
    "acceptedTerms",
    "termsVersion",
    "privacyVersion",
    "turnstileToken"
  ],
  "properties": {
    "displayName": {
      "type": "string",
      "minLength": 1,
      "maxLength": 120
    },
    "email": {
      "type": "string",
      "format": "email",
      "maxLength": 254
    },
    "organizationName": {
      "type": "string",
      "minLength": 1,
      "maxLength": 160
    },
    "password": {
      "type": "string",
      "minLength": 12,
      "maxLength": 128,
      "writeOnly": true
    },
    "acceptedTerms": {
      "type": "boolean",
      "const": true
    },
    "termsVersion": {
      "type": "string",
      "const": "2026-10-22",
      "description": "Version of the Service Terms presented when assent was collected."
    },
    "privacyVersion": {
      "type": "string",
      "const": "2026-10-18",
      "description": "Version of the Privacy Notice acknowledged when assent was collected."
    },
    "turnstileToken": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2048,
      "writeOnly": true,
      "description": "Single-use Cloudflare Turnstile token for action auth-signup."
    }
  }
}
Source
{
  "type": "object",
  "required": [
    "accession",
    "form",
    "evidence",
    "verification"
  ],
  "properties": {
    "accession": {
      "type": "string"
    },
    "form": {
      "$ref": "#/components/schemas/Form"
    },
    "filedAt": {
      "type": "string",
      "format": "date"
    },
    "periodEnd": {
      "type": [
        "string",
        "null"
      ],
      "format": "date"
    },
    "section": {
      "type": "string"
    },
    "url": {
      "type": [
        "string",
        "null"
      ],
      "format": "uri"
    },
    "evidence": {
      "type": "string"
    },
    "evidenceSha256": {
      "type": [
        "string",
        "null"
      ]
    },
    "locator": {
      "oneOf": [
        {
          "$ref": "#/components/schemas/Locator"
        },
        {
          "type": "null"
        }
      ]
    },
    "verification": {
      "$ref": "#/components/schemas/VerificationState"
    }
  }
}
SourceInventoryCollection
{
  "type": "object",
  "required": [
    "state",
    "retainedCount"
  ],
  "properties": {
    "state": {
      "type": "string",
      "enum": [
        "present",
        "missing",
        "invalid"
      ]
    },
    "retainedCount": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 0,
      "description": "Array length only; null for missing/invalid collections",
      "not a validated extraction-success count": null
    }
  }
}
SourceInventoryComparisonCoverage
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "beforeExhibitCount",
    "afterExhibitCount",
    "groupCount",
    "pairedGroupCount",
    "onlyBeforeGroupCount",
    "onlyAfterGroupCount",
    "ambiguousGroupCount",
    "unkeyedGroupCount",
    "sourceCompleteness"
  ],
  "properties": {
    "beforeExhibitCount": {
      "type": "integer",
      "minimum": 0,
      "maximum": 50,
      "description": "Returned rights-admitted exhibits in the before receipt",
      "not the SEC inventory size": null
    },
    "afterExhibitCount": {
      "type": "integer",
      "minimum": 0,
      "maximum": 50,
      "description": "Returned rights-admitted exhibits in the after receipt",
      "not the SEC inventory size": null
    },
    "groupCount": {
      "type": "integer",
      "minimum": 0,
      "maximum": 100
    },
    "pairedGroupCount": {
      "type": "integer",
      "minimum": 0,
      "maximum": 50
    },
    "onlyBeforeGroupCount": {
      "type": "integer",
      "minimum": 0,
      "maximum": 50
    },
    "onlyAfterGroupCount": {
      "type": "integer",
      "minimum": 0,
      "maximum": 50
    },
    "ambiguousGroupCount": {
      "type": "integer",
      "minimum": 0,
      "maximum": 50
    },
    "unkeyedGroupCount": {
      "type": "integer",
      "minimum": 0,
      "maximum": 100
    },
    "sourceCompleteness": {
      "type": "string",
      "const": "unknown"
    }
  }
}
SourceInventoryComparisonGroup
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "key",
    "status",
    "beforeDocumentIds",
    "afterDocumentIds",
    "metadataChanges",
    "recordedHashComparison"
  ],
  "properties": {
    "key": {
      "type": [
        "string",
        "null"
      ],
      "minLength": 1,
      "maxLength": 255,
      "pattern": "^(?!\\.{1,2}$)[-A-Za-z0-9_.]+$",
      "description": "Exact recorded safe basename excluding dot and dot-dot; null only for a singleton unkeyed entry"
    },
    "status": {
      "type": "string",
      "enum": [
        "paired_by_exact_filename",
        "only_before",
        "only_after",
        "ambiguous",
        "unkeyed"
      ]
    },
    "beforeDocumentIds": {
      "type": "array",
      "maxItems": 50,
      "uniqueItems": true,
      "items": {
        "type": "string",
        "pattern": "^exhibit-([1-9]|[1-4][0-9]|50)$"
      },
      "description": "IDs resolving into sources.before; primary documents are never grouped"
    },
    "afterDocumentIds": {
      "type": "array",
      "maxItems": 50,
      "uniqueItems": true,
      "items": {
        "type": "string",
        "pattern": "^exhibit-([1-9]|[1-4][0-9]|50)$"
      },
      "description": "IDs resolving into sources.after; duplicate names remain explicit"
    },
    "metadataChanges": {
      "type": [
        "array",
        "null"
      ],
      "maxItems": 10,
      "items": {
        "$ref": "#/components/schemas/SourceInventoryMetadataChange"
      },
      "description": "Fixed-order changed scalar fields for a unique pair; empty array means no change to these fields",
      "null for all other groups": null
    },
    "recordedHashComparison": {
      "type": "string",
      "enum": [
        "equal",
        "different",
        "unavailable",
        "not_compared"
      ],
      "description": "Equal/different only for unique pairs with both recorded hashes; unavailable if either hash is unknown",
      "not_compared for nonpaired groups": null
    }
  }
}
SourceInventoryComparisonRequest
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "before",
    "after"
  ],
  "properties": {
    "before": {
      "$ref": "#/components/schemas/SourceInventoryComparisonSelector"
    },
    "after": {
      "$ref": "#/components/schemas/SourceInventoryComparisonSelector"
    }
  },
  "description": "Distinct same-CIK filings with valid nonfuture filing dates; before filedAt must not be later than after filedAt"
}
SourceInventoryComparisonResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    },
    "data": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "schemaVersion",
        "request",
        "sources",
        "groups",
        "coverage",
        "method",
        "limitations",
        "contentSha256"
      ],
      "properties": {
        "schemaVersion": {
          "type": "string",
          "const": "filingsift-source-inventory-comparison-v1"
        },
        "request": {
          "$ref": "#/components/schemas/SourceInventoryComparisonRequest"
        },
        "sources": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "before",
            "after"
          ],
          "properties": {
            "before": {
              "$ref": "#/components/schemas/SourceInventoryReceipt"
            },
            "after": {
              "$ref": "#/components/schemas/SourceInventoryReceipt"
            }
          }
        },
        "groups": {
          "type": "array",
          "maxItems": 100,
          "items": {
            "$ref": "#/components/schemas/SourceInventoryComparisonGroup"
          },
          "description": "Keyed groups sorted by exact key",
          "then unkeyed entries in before/after retained ordinal order": null
        },
        "coverage": {
          "$ref": "#/components/schemas/SourceInventoryComparisonCoverage"
        },
        "method": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "id",
            "key",
            "caseSensitive",
            "primaryDocumentsCompared"
          ],
          "properties": {
            "id": {
              "type": "string",
              "const": "retained_exhibits_exact_filename_v1"
            },
            "key": {
              "type": "string",
              "const": "recorded_document_name"
            },
            "caseSensitive": {
              "type": "boolean",
              "const": true
            },
            "primaryDocumentsCompared": {
              "type": "boolean",
              "const": false
            }
          }
        },
        "limitations": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "contentSha256": {
          "type": "string",
          "pattern": "^[a-f0-9]{64}$",
          "description": "Sorted-key canonical returned comparison JSON excluding itself; not authenticity",
          "raw-source verification or a saved server snapshot": null
        }
      }
    }
  }
}
SourceInventoryComparisonSelector
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "accession",
    "contentSha256"
  ],
  "properties": {
    "accession": {
      "type": "string",
      "pattern": "^\\d{10}-\\d{2}-\\d{6}$"
    },
    "contentSha256": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$",
      "description": "Full opened source-inventory receipt hash",
      "not an individual exhibit hash": null
    }
  }
}
SourceInventoryCoverage
{
  "type": "object",
  "required": [
    "inventoryState",
    "retainedExhibitCount",
    "inspectedExhibitCount",
    "returnedExhibitCount",
    "omittedExhibitCount",
    "rightsExcludedInspectedCount",
    "inventoryTruncated",
    "expectedSecDocumentCount",
    "sourceCompleteness"
  ],
  "properties": {
    "inventoryState": {
      "type": "string",
      "enum": [
        "present",
        "missing",
        "invalid"
      ]
    },
    "retainedExhibitCount": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 0,
      "description": "Post-store-filter retained array length; never EDGAR's full exhibit count"
    },
    "inspectedExhibitCount": {
      "type": "integer",
      "minimum": 0,
      "maximum": 50
    },
    "returnedExhibitCount": {
      "type": "integer",
      "minimum": 0,
      "maximum": 50
    },
    "omittedExhibitCount": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 0,
      "description": "Entries beyond the inspection cap; rights exclusions are counted separately"
    },
    "rightsExcludedInspectedCount": {
      "type": "integer",
      "minimum": 0,
      "maximum": 50,
      "description": "Exclusions encountered in the inspected window only; upstream filtering is not measurable here"
    },
    "inventoryTruncated": {
      "type": "boolean"
    },
    "expectedSecDocumentCount": {
      "type": "null"
    },
    "sourceCompleteness": {
      "type": "string",
      "const": "unknown"
    }
  }
}
SourceInventoryDocument
{
  "type": "object",
  "required": [
    "documentId",
    "kind",
    "ordinal",
    "accession",
    "filingUrl",
    "sourceUrl",
    "name",
    "documentType",
    "description",
    "materialCategory",
    "recordedStatus",
    "duplicateReferencePresent",
    "sourceContentSha256",
    "sourceByteLength",
    "parserVersion",
    "verificationState",
    "verificationBasis",
    "illustrative",
    "extractionState",
    "collections",
    "issues"
  ],
  "properties": {
    "documentId": {
      "type": "string",
      "pattern": "^(primary|exhibit-[1-9][0-9]*)$"
    },
    "kind": {
      "type": "string",
      "enum": [
        "primary",
        "material_exhibit"
      ]
    },
    "ordinal": {
      "type": "integer",
      "minimum": 0,
      "maximum": 50,
      "description": "Zero for primary; one-based position in the retained exhibit array",
      "including positions excluded by rights policy": null
    },
    "accession": {
      "type": "string",
      "pattern": "^\\d{10}-\\d{2}-\\d{6}$"
    },
    "filingUrl": {
      "type": "string",
      "format": "uri"
    },
    "sourceUrl": {
      "type": [
        "string",
        "null"
      ],
      "format": "uri",
      "maxLength": 2048,
      "description": "Safe accession/CIK-bound SEC URL; null if missing or invalid"
    },
    "name": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 512
    },
    "documentType": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 64
    },
    "description": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 1000
    },
    "materialCategory": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 128
    },
    "recordedStatus": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 64,
      "description": "Recorded ingestion metadata",
      "not inferred from extraction presence": null
    },
    "duplicateReferencePresent": {
      "type": [
        "boolean",
        "null"
      ],
      "description": "Pointer presence only; internal identifiers are never returned or resolved"
    },
    "sourceContentSha256": {
      "type": [
        "string",
        "null"
      ],
      "pattern": "^[a-f0-9]{64}$",
      "description": "Recorded hash",
      "not recomputed against original documents": null
    },
    "sourceByteLength": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 0,
      "description": "Recorded byte count",
      "not proof of a retained raw archive": null
    },
    "parserVersion": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 200
    },
    "verificationState": {
      "type": "string",
      "maxLength": 128,
      "description": "Retained validation state for exhibits; an absent state is source-captured and never inherits filing-level approval"
    },
    "verificationBasis": {
      "type": "string",
      "enum": [
        "filing_record",
        "document_metadata",
        "not_recorded"
      ]
    },
    "illustrative": {
      "type": "boolean"
    },
    "extractionState": {
      "type": "string",
      "enum": [
        "present",
        "missing",
        "invalid"
      ]
    },
    "collections": {
      "type": "object",
      "required": [
        "sections",
        "tables",
        "evidence",
        "facts",
        "signals"
      ],
      "properties": {
        "sections": {
          "$ref": "#/components/schemas/SourceInventoryCollection"
        },
        "tables": {
          "$ref": "#/components/schemas/SourceInventoryCollection"
        },
        "evidence": {
          "$ref": "#/components/schemas/SourceInventoryCollection"
        },
        "facts": {
          "$ref": "#/components/schemas/SourceInventoryCollection"
        },
        "signals": {
          "$ref": "#/components/schemas/SourceInventoryCollection"
        }
      }
    },
    "issues": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
SourceInventoryFiling
{
  "type": "object",
  "required": [
    "accession",
    "cik",
    "ticker",
    "form",
    "filedAt",
    "filingUrl",
    "verificationState",
    "illustrative"
  ],
  "properties": {
    "accession": {
      "type": "string",
      "pattern": "^\\d{10}-\\d{2}-\\d{6}$"
    },
    "cik": {
      "type": "string",
      "pattern": "^\\d{10}$"
    },
    "ticker": {
      "type": [
        "string",
        "null"
      ]
    },
    "form": {
      "type": "string",
      "maxLength": 40
    },
    "filedAt": {
      "type": "string",
      "format": "date"
    },
    "filingUrl": {
      "type": "string",
      "format": "uri",
      "maxLength": 2048,
      "description": "HTTPS SEC archive URL bound to this accession and CIK"
    },
    "verificationState": {
      "type": "string",
      "maxLength": 128
    },
    "illustrative": {
      "type": "boolean"
    }
  }
}
SourceInventoryLimits
{
  "type": "object",
  "required": [
    "maximumExhibits",
    "maximumNameCharacters",
    "maximumDescriptionCharacters",
    "maximumDocumentTypeCharacters",
    "maximumCategoryCharacters",
    "maximumStatusCharacters",
    "maximumParserVersionCharacters",
    "maximumVerificationStateCharacters",
    "maximumSourceUrlCharacters",
    "characterCountUnit"
  ],
  "properties": {
    "maximumExhibits": {
      "type": "integer",
      "const": 50
    },
    "maximumNameCharacters": {
      "type": "integer",
      "const": 512
    },
    "maximumDescriptionCharacters": {
      "type": "integer",
      "const": 1000
    },
    "maximumDocumentTypeCharacters": {
      "type": "integer",
      "const": 64
    },
    "maximumCategoryCharacters": {
      "type": "integer",
      "const": 128
    },
    "maximumStatusCharacters": {
      "type": "integer",
      "const": 64
    },
    "maximumParserVersionCharacters": {
      "type": "integer",
      "const": 200
    },
    "maximumVerificationStateCharacters": {
      "type": "integer",
      "const": 128
    },
    "maximumSourceUrlCharacters": {
      "type": "integer",
      "const": 2048
    },
    "characterCountUnit": {
      "type": "string",
      "const": "utf16_code_units"
    }
  }
}
SourceInventoryMetadataChange
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "field",
    "before",
    "after"
  ],
  "properties": {
    "field": {
      "type": "string",
      "enum": [
        "documentType",
        "description",
        "materialCategory",
        "recordedStatus",
        "duplicateReferencePresent",
        "sourceByteLength",
        "parserVersion",
        "verificationState",
        "verificationBasis",
        "extractionState"
      ]
    },
    "before": {
      "type": [
        "string",
        "integer",
        "boolean",
        "null"
      ],
      "maxLength": 1000,
      "minimum": 0,
      "description": "Exact retained metadata value for this field; null remains unknown"
    },
    "after": {
      "type": [
        "string",
        "integer",
        "boolean",
        "null"
      ],
      "maxLength": 1000,
      "minimum": 0,
      "description": "Exact retained metadata value for this field; no inferred financial value"
    }
  },
  "oneOf": [
    {
      "properties": {
        "field": {
          "enum": [
            "documentType",
            "description",
            "materialCategory",
            "recordedStatus",
            "parserVersion"
          ]
        },
        "before": {
          "type": [
            "string",
            "null"
          ]
        },
        "after": {
          "type": [
            "string",
            "null"
          ]
        }
      }
    },
    {
      "properties": {
        "field": {
          "const": "duplicateReferencePresent"
        },
        "before": {
          "type": [
            "boolean",
            "null"
          ]
        },
        "after": {
          "type": [
            "boolean",
            "null"
          ]
        }
      }
    },
    {
      "properties": {
        "field": {
          "const": "sourceByteLength"
        },
        "before": {
          "type": [
            "integer",
            "null"
          ],
          "minimum": 0
        },
        "after": {
          "type": [
            "integer",
            "null"
          ],
          "minimum": 0
        }
      }
    },
    {
      "properties": {
        "field": {
          "enum": [
            "verificationState",
            "verificationBasis",
            "extractionState"
          ]
        },
        "before": {
          "type": "string",
          "maxLength": 128
        },
        "after": {
          "type": "string",
          "maxLength": 128
        }
      }
    }
  ]
}
SourceInventoryReceipt
{
  "type": "object",
  "required": [
    "schemaVersion",
    "filing",
    "documents",
    "coverage",
    "limits",
    "limitations",
    "contentSha256"
  ],
  "properties": {
    "schemaVersion": {
      "type": "string",
      "const": "filingsift-source-inventory-v1"
    },
    "filing": {
      "$ref": "#/components/schemas/SourceInventoryFiling"
    },
    "documents": {
      "type": "array",
      "minItems": 1,
      "maxItems": 51,
      "items": {
        "$ref": "#/components/schemas/SourceInventoryDocument"
      }
    },
    "coverage": {
      "$ref": "#/components/schemas/SourceInventoryCoverage"
    },
    "limits": {
      "$ref": "#/components/schemas/SourceInventoryLimits"
    },
    "limitations": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "contentSha256": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$",
      "description": "Sorted-key canonical returned receipt JSON excluding itself; not an authenticity signature"
    }
  }
}
SourceInventoryResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    },
    "data": {
      "$ref": "#/components/schemas/SourceInventoryReceipt"
    }
  }
}
SourceResearchSnapshotArtifact
{
  "type": "object",
  "description": "Exact signed source-separated report frozen without provider refetch. SEC and external sections retain distinct provenance; not a raw-document archive.",
  "required": [
    "schemaVersion",
    "kind",
    "definition",
    "sources",
    "versions",
    "coverage",
    "result",
    "resultSha256",
    "definitionSha256",
    "sourcesSha256",
    "limitations",
    "contentSha256"
  ],
  "properties": {
    "schemaVersion": {
      "type": "string",
      "const": "filingsift-research-snapshot-v1"
    },
    "kind": {
      "type": "string",
      "const": "source_research_report"
    },
    "definition": {
      "$ref": "#/components/schemas/ResearchSnapshotDefinition"
    },
    "sources": {
      "type": "array",
      "maxItems": 40,
      "items": {
        "type": "object",
        "required": [
          "type",
          "sourceId",
          "verificationState"
        ],
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "sec_filing",
              "external_source"
            ]
          },
          "sourceId": {
            "type": "string"
          },
          "verificationState": {
            "type": "string"
          }
        },
        "additionalProperties": true
      }
    },
    "versions": {
      "type": "object",
      "required": [
        "hashRecipe",
        "analysisRevision"
      ],
      "properties": {
        "hashRecipe": {
          "type": "string",
          "const": "sha256-canonical-json-v1"
        },
        "analysisRevision": {
          "type": "string",
          "const": "source-separated-report-v1"
        }
      },
      "additionalProperties": true
    },
    "coverage": {
      "type": "object",
      "required": [
        "selectedFilingCount",
        "selectedExternalSourceCount",
        "selectedSectionCount",
        "sourceReadConsistency"
      ],
      "properties": {
        "selectedFilingCount": {
          "type": "integer",
          "minimum": 0
        },
        "selectedExternalSourceCount": {
          "type": "integer",
          "minimum": 0
        },
        "selectedSectionCount": {
          "type": "integer",
          "minimum": 0,
          "maximum": 40
        },
        "sourceReadConsistency": {
          "type": "string",
          "const": "signed_server_report"
        }
      },
      "additionalProperties": true
    },
    "result": {
      "type": "object",
      "additionalProperties": true,
      "description": "Exact signed report with source-separated sections"
    },
    "resultSha256": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    },
    "definitionSha256": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    },
    "sourcesSha256": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    },
    "contentSha256": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    },
    "limitations": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
StructuredFiling
{
  "type": "object",
  "required": [
    "schemaVersion",
    "company",
    "filing",
    "extraction",
    "verification",
    "ingestedAt"
  ],
  "properties": {
    "schemaVersion": {
      "type": "integer",
      "const": 1
    },
    "company": {
      "$ref": "#/components/schemas/IssuerIdentity"
    },
    "filing": {
      "$ref": "#/components/schemas/FilingIdentity"
    },
    "extraction": {
      "type": "object",
      "required": [
        "parserVersion",
        "sections",
        "tables",
        "evidence",
        "facts",
        "signals",
        "refusals",
        "stats"
      ],
      "properties": {
        "parserVersion": {
          "type": "string"
        },
        "sections": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/Section"
          }
        },
        "tables": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/ExtractedTable"
          }
        },
        "evidence": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/EvidencePassage"
          }
        },
        "facts": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/FinancialFact"
          }
        },
        "signals": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/FinancingSignal"
          }
        },
        "refusals": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/Refusal"
          }
        },
        "documentClassification": {
          "type": "object",
          "additionalProperties": true
        },
        "stats": {
          "$ref": "#/components/schemas/ExtractionStats"
        }
      }
    },
    "verification": {
      "$ref": "#/components/schemas/Verification"
    },
    "processing": {
      "type": "object",
      "properties": {
        "parserVersion": {
          "type": "string"
        },
        "processingVersion": {
          "type": "string"
        }
      }
    },
    "ingestedAt": {
      "type": "string",
      "format": "date-time"
    }
  }
}
StructuredFilingResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/StructuredFiling"
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
T (12)
TableArithmeticCoordinate
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "row",
    "column"
  ],
  "properties": {
    "row": {
      "type": "integer",
      "minimum": 1,
      "maximum": 200,
      "description": "One-based retained-array row",
      "not original HTML": null
    },
    "column": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "description": "One-based retained-array column"
    }
  }
}
TableArithmeticOperand
{
  "type": "object",
  "required": [
    "row",
    "column",
    "rawText",
    "numericText",
    "unavailableReason",
    "evidenceText"
  ],
  "properties": {
    "row": {
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    },
    "column": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50
    },
    "rawText": {
      "type": [
        "string",
        "null"
      ],
      "description": "Exact retained cell; null for a missing position"
    },
    "numericText": {
      "type": [
        "string",
        "null"
      ],
      "description": "Canonical exact decimal text under the declared convention",
      "never a floating-point value": null
    },
    "unavailableReason": {
      "type": [
        "string",
        "null"
      ]
    },
    "evidenceText": {
      "type": [
        "string",
        "null"
      ],
      "description": "Exact retained selected-cell evidence; null when missing"
    }
  }
}
TableArithmeticRequest
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "total",
    "components",
    "declaration"
  ],
  "properties": {
    "total": {
      "$ref": "#/components/schemas/TableArithmeticCoordinate"
    },
    "components": {
      "type": "array",
      "minItems": 1,
      "maxItems": 20,
      "uniqueItems": true,
      "description": "Same column as total; distinct coordinates excluding the total",
      "items": {
        "$ref": "#/components/schemas/TableArithmeticCoordinate"
      }
    },
    "declaration": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "numberFormat",
        "unit",
        "period",
        "sameBasisConfirmed"
      ],
      "properties": {
        "numberFormat": {
          "type": "string",
          "const": "decimal_dot_grouping_comma"
        },
        "unit": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120,
          "description": "User-declared common unit/scale; not extracted or independently validated"
        },
        "period": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120,
          "description": "User-declared common period; not extracted or independently validated"
        },
        "sameBasisConfirmed": {
          "type": "boolean",
          "const": true,
          "description": "Analyst acknowledgment",
          "not server verification": null
        }
      }
    }
  }
}
TableArithmeticResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    },
    "data": {
      "type": "object",
      "required": [
        "schemaVersion",
        "request",
        "filing",
        "table",
        "total",
        "components",
        "result",
        "coverage",
        "method",
        "sourceContentSha256",
        "contentSha256",
        "limitations"
      ],
      "properties": {
        "schemaVersion": {
          "type": "string",
          "const": "filingsift-table-arithmetic-v1"
        },
        "request": {
          "$ref": "#/components/schemas/TableArithmeticRequest"
        },
        "filing": {
          "$ref": "#/components/schemas/FilingTableSource"
        },
        "table": {
          "type": "object",
          "required": [
            "tableId",
            "tableIndex",
            "contextEvidence",
            "rowsSha256",
            "storedTableSha256",
            "verificationState"
          ],
          "properties": {
            "tableId": {
              "type": "string",
              "pattern": "^table-[a-f0-9]{64}$"
            },
            "tableIndex": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 0
            },
            "contextEvidence": {
              "type": [
                "string",
                "null"
              ],
              "maxLength": 2000
            },
            "rowsSha256": {
              "type": "string",
              "pattern": "^[a-f0-9]{64}$"
            },
            "storedTableSha256": {
              "type": [
                "string",
                "null"
              ],
              "pattern": "^[a-f0-9]{64}$"
            },
            "verificationState": {
              "type": "string",
              "description": "Unchanged source state; arithmetic does not verify the table"
            }
          }
        },
        "total": {
          "$ref": "#/components/schemas/TableArithmeticOperand"
        },
        "components": {
          "type": "array",
          "minItems": 1,
          "maxItems": 20,
          "items": {
            "$ref": "#/components/schemas/TableArithmeticOperand"
          }
        },
        "result": {
          "type": "object",
          "required": [
            "status",
            "total",
            "sum",
            "difference"
          ],
          "properties": {
            "status": {
              "type": "string",
              "enum": [
                "equal",
                "different",
                "unavailable"
              ]
            },
            "total": {
              "type": [
                "string",
                "null"
              ]
            },
            "sum": {
              "type": [
                "string",
                "null"
              ]
            },
            "difference": {
              "type": [
                "string",
                "null"
              ],
              "description": "Exact total minus component sum; all aggregate values null if any operand is unavailable"
            }
          }
        },
        "coverage": {
          "$ref": "#/components/schemas/FilingTableCoverage"
        },
        "method": {
          "type": "object",
          "required": [
            "id",
            "numberFormat",
            "arithmetic",
            "difference",
            "rounding",
            "maximumIntegerDigits",
            "maximumFractionDigits",
            "maximumRawCharacters"
          ],
          "properties": {
            "id": {
              "type": "string",
              "const": "selected_table_cells_exact_decimal_sum_v1"
            },
            "numberFormat": {
              "type": "string",
              "const": "decimal_dot_grouping_comma"
            },
            "arithmetic": {
              "type": "string",
              "const": "scaled_bigint_decimal"
            },
            "difference": {
              "type": "string",
              "const": "total_minus_component_sum"
            },
            "rounding": {
              "type": "string",
              "const": "none"
            },
            "maximumIntegerDigits": {
              "type": "integer",
              "const": 40
            },
            "maximumFractionDigits": {
              "type": "integer",
              "const": 12
            },
            "maximumRawCharacters": {
              "type": "integer",
              "const": 80
            }
          }
        },
        "sourceContentSha256": {
          "type": "string",
          "pattern": "^[a-f0-9]{64}$",
          "description": "Content identifier of the selected full table review"
        },
        "contentSha256": {
          "type": "string",
          "pattern": "^[a-f0-9]{64}$",
          "description": "Sorted-key canonical JSON hash excluding itself; not a signature"
        },
        "limitations": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    }
  }
}
TableCellComparisonOperand
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "row",
    "column",
    "rawText",
    "numericText",
    "unavailableReason",
    "evidenceText"
  ],
  "properties": {
    "row": {
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    },
    "column": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50
    },
    "rawText": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 100000,
      "description": "Exact retained string; null for an absent position",
      "not a fabricated blank": null
    },
    "numericText": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 54,
      "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
      "description": "Canonical exact decimal string under the declared convention; never floating point"
    },
    "unavailableReason": {
      "type": [
        "string",
        "null"
      ],
      "enum": [
        null,
        "cell_outside_retained_table",
        "numeric_text_limit_exceeded",
        "missing_numeric_text",
        "unsupported_numeric_format",
        "numeric_precision_limit_exceeded"
      ]
    },
    "evidenceText": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 100000,
      "description": "Exact selected retained-cell evidence; absent positions remain null"
    }
  }
}
TableCellComparisonPair
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "ordinal",
    "before",
    "after",
    "result"
  ],
  "properties": {
    "ordinal": {
      "type": "integer",
      "minimum": 1,
      "maximum": 20
    },
    "before": {
      "$ref": "#/components/schemas/TableCellComparisonOperand"
    },
    "after": {
      "$ref": "#/components/schemas/TableCellComparisonOperand"
    },
    "result": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "status",
        "difference",
        "rawTextChanged"
      ],
      "properties": {
        "status": {
          "type": "string",
          "enum": [
            "equal",
            "different",
            "unavailable"
          ]
        },
        "difference": {
          "type": [
            "string",
            "null"
          ],
          "maxLength": 55,
          "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
          "description": "Exact after minus before; null if either numeric operand is unavailable"
        },
        "rawTextChanged": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "Exact retained-string inequality even when nonnumeric; null if either coordinate is absent. Can be true when numeric status is equal."
        }
      }
    }
  }
}
TableCellComparisonPairSelection
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "before",
    "after"
  ],
  "properties": {
    "before": {
      "$ref": "#/components/schemas/TableArithmeticCoordinate"
    },
    "after": {
      "$ref": "#/components/schemas/TableArithmeticCoordinate"
    }
  }
}
TableCellComparisonRequest
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "before",
    "after",
    "pairs",
    "declaration"
  ],
  "properties": {
    "before": {
      "$ref": "#/components/schemas/TableCellComparisonSelector"
    },
    "after": {
      "$ref": "#/components/schemas/TableCellComparisonSelector"
    },
    "pairs": {
      "type": "array",
      "minItems": 1,
      "maxItems": 20,
      "uniqueItems": true,
      "description": "Each before coordinate and each after coordinate may appear only once independently; cross-side columns may differ",
      "items": {
        "$ref": "#/components/schemas/TableCellComparisonPairSelection"
      }
    },
    "declaration": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "numberFormat",
        "unit",
        "beforePeriod",
        "afterPeriod",
        "sameBasisConfirmed"
      ],
      "properties": {
        "numberFormat": {
          "type": "string",
          "const": "decimal_dot_grouping_comma"
        },
        "unit": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120,
          "description": "Trimmed analyst-declared common unit/scale; no control characters or inferred meaning"
        },
        "beforePeriod": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120,
          "description": "Trimmed analyst-declared before period; not automatically compared with filing date or source headers"
        },
        "afterPeriod": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120,
          "description": "Trimmed analyst-declared after period; not automatically compared with filing date or source headers"
        },
        "sameBasisConfirmed": {
          "type": "boolean",
          "const": true,
          "description": "Required analyst comparability acknowledgment",
          "not server verification": null
        }
      }
    }
  }
}
TableCellComparisonResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    },
    "data": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "schemaVersion",
        "request",
        "sources",
        "pairs",
        "coverage",
        "method",
        "limitations",
        "contentSha256"
      ],
      "properties": {
        "schemaVersion": {
          "type": "string",
          "const": "filingsift-table-cell-comparison-v1"
        },
        "request": {
          "$ref": "#/components/schemas/TableCellComparisonRequest"
        },
        "sources": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "before",
            "after"
          ],
          "properties": {
            "before": {
              "$ref": "#/components/schemas/TableCellComparisonSource"
            },
            "after": {
              "$ref": "#/components/schemas/TableCellComparisonSource"
            }
          }
        },
        "pairs": {
          "type": "array",
          "minItems": 1,
          "maxItems": 20,
          "items": {
            "$ref": "#/components/schemas/TableCellComparisonPair"
          }
        },
        "coverage": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "requestedPairCount",
            "comparedPairCount",
            "unavailablePairCount",
            "sourceCompleteness"
          ],
          "properties": {
            "requestedPairCount": {
              "type": "integer",
              "minimum": 1,
              "maximum": 20
            },
            "comparedPairCount": {
              "type": "integer",
              "minimum": 0,
              "maximum": 20
            },
            "unavailablePairCount": {
              "type": "integer",
              "minimum": 0,
              "maximum": 20,
              "description": "Compared and unavailable counts sum to the requested pair count"
            },
            "sourceCompleteness": {
              "type": "string",
              "const": "unknown"
            }
          }
        },
        "method": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "id",
            "numberFormat",
            "arithmetic",
            "difference",
            "rounding",
            "maximumIntegerDigits",
            "maximumFractionDigits",
            "maximumRawCharacters"
          ],
          "properties": {
            "id": {
              "type": "string",
              "const": "selected_cross_filing_cells_exact_decimal_difference_v1"
            },
            "numberFormat": {
              "type": "string",
              "const": "decimal_dot_grouping_comma"
            },
            "arithmetic": {
              "type": "string",
              "const": "scaled_bigint_decimal"
            },
            "difference": {
              "type": "string",
              "const": "after_minus_before"
            },
            "rounding": {
              "type": "string",
              "const": "none"
            },
            "maximumIntegerDigits": {
              "type": "integer",
              "const": 40
            },
            "maximumFractionDigits": {
              "type": "integer",
              "const": 12
            },
            "maximumRawCharacters": {
              "type": "integer",
              "const": 80
            }
          }
        },
        "limitations": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "contentSha256": {
          "type": "string",
          "pattern": "^[a-f0-9]{64}$",
          "description": "Sorted-key canonical returned JSON excluding itself; not an authenticity signature"
        }
      }
    }
  }
}
TableCellComparisonSelector
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "accession",
    "tableId",
    "contentSha256"
  ],
  "properties": {
    "accession": {
      "type": "string",
      "pattern": "^[0-9]{10}-[0-9]{2}-[0-9]{6}$"
    },
    "tableId": {
      "type": "string",
      "pattern": "^table-[a-f0-9]{64}$",
      "description": "Source-sensitive ID from the retained primary-table catalog"
    },
    "contentSha256": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$",
      "description": "Complete opened table-review hash",
      "not a hash of caller-provided cells": null
    }
  }
}
TableCellComparisonSource
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "filing",
    "table",
    "coverage",
    "sourceContentSha256"
  ],
  "properties": {
    "filing": {
      "$ref": "#/components/schemas/FilingTableSource"
    },
    "table": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "tableId",
        "ordinal",
        "tableIndex",
        "contextEvidence",
        "rowsSha256",
        "storedTableSha256",
        "verificationState"
      ],
      "properties": {
        "tableId": {
          "type": "string",
          "pattern": "^table-[a-f0-9]{64}$"
        },
        "ordinal": {
          "type": "integer",
          "minimum": 1,
          "maximum": 50
        },
        "tableIndex": {
          "type": [
            "integer",
            "null"
          ],
          "minimum": 0
        },
        "contextEvidence": {
          "type": [
            "string",
            "null"
          ],
          "maxLength": 2000,
          "description": "Retained extraction context",
          "not an inferred table title": null
        },
        "rowsSha256": {
          "type": "string",
          "pattern": "^[a-f0-9]{64}$"
        },
        "storedTableSha256": {
          "type": [
            "string",
            "null"
          ],
          "pattern": "^[a-f0-9]{64}$"
        },
        "verificationState": {
          "type": "string",
          "description": "Retained table state without promotion by this calculation"
        }
      }
    },
    "coverage": {
      "allOf": [
        {
          "$ref": "#/components/schemas/FilingTableCoverage"
        },
        {
          "type": "object",
          "required": [
            "retainedRowCount",
            "returnedRowCount"
          ],
          "properties": {
            "retainedRowCount": {
              "type": "integer",
              "minimum": 0,
              "maximum": 200
            },
            "returnedRowCount": {
              "type": "integer",
              "minimum": 0,
              "maximum": 200
            }
          }
        }
      ]
    },
    "sourceContentSha256": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$",
      "description": "Content hash of the complete reviewed source table; full table bodies are not duplicated here"
    }
  }
}
TickerResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "type": "object",
      "required": [
        "ticker",
        "onboarding"
      ],
      "properties": {
        "ticker": {
          "type": "string"
        },
        "onboarding": {
          "type": "object",
          "required": [
            "ticker",
            "status"
          ],
          "properties": {
            "ticker": {
              "type": "string"
            },
            "status": {
              "type": "string",
              "enum": [
                "unavailable",
                "queued",
                "discovering",
                "processing",
                "indexed",
                "indexed_partial",
                "no_supported_filings",
                "failed"
              ]
            },
            "cik": {
              "type": "string"
            },
            "legalName": {
              "type": "string"
            },
            "since": {
              "type": "string",
              "format": "date"
            },
            "until": {
              "type": "string",
              "format": "date"
            },
            "filingLimit": {
              "type": "integer",
              "minimum": 1,
              "maximum": 25
            }
          }
        }
      }
    },
    "meta": {
      "$ref": "#/components/schemas/ApiMeta"
    }
  }
}
U (2)
Uncertainty
{
  "type": "object",
  "required": [
    "status",
    "reasons"
  ],
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "resolved",
        "candidate",
        "unresolved"
      ]
    },
    "reasons": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
User
{
  "type": "object",
  "required": [
    "id",
    "email",
    "displayName",
    "status",
    "platformAdmin"
  ],
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "email": {
      "type": "string",
      "format": "email"
    },
    "displayName": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "enum": [
        "active",
        "suspended"
      ]
    },
    "platformAdmin": {
      "type": "boolean"
    },
    "createdAt": {
      "type": "string",
      "format": "date-time"
    }
  }
}
V (2)
Verification
{
  "type": "object",
  "required": [
    "state",
    "checks",
    "limitations"
  ],
  "properties": {
    "state": {
      "$ref": "#/components/schemas/VerificationState"
    },
    "checks": {
      "type": "array",
      "items": {}
    },
    "limitations": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
VerificationState
{
  "type": "string",
  "enum": [
    "unverified",
    "candidate",
    "machine_checked",
    "verified",
    "illustrative"
  ]
}
X (1)
XbrlMappingRegistryResponse
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "type": "object",
      "required": [
        "mappingVersion",
        "mappings"
      ],
      "properties": {
        "mappingVersion": {
          "type": "string",
          "const": "filingsift-xbrl-concepts-v4"
        },
        "mappings": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "standardConcept",
              "statement",
              "expectedPeriodType",
              "sourceConcepts",
              "mappingVersion",
              "method",
              "quarterDerivation"
            ],
            "properties": {
              "standardConcept": {
                "type": "string"
              },
              "statement": {
                "type": "string",
                "enum": [
                  "income_statement",
                  "balance_sheet",
                  "cash_flow_statement",
                  "disclosure"
                ]
              },
              "expectedPeriodType": {
                "type": "string",
                "enum": [
                  "instant",
                  "duration"
                ]
              },
              "expectedUnitType": {
                "type": "string",
                "enum": [
                  "currency",
                  "shares",
                  "currency_per_share"
                ],
                "description": "Present for the ten v3 and eight v4 additions; earlier mappings do not gain this validation."
              },
              "readMapping": {
                "type": "string",
                "const": "exact_taxonomy_on_read",
                "description": "Present for eight v4 fields. Applies on read without source-data writes; conflict candidates remain visible and paginated."
              },
              "sourceConcepts": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "mappingVersion": {
                "type": "string",
                "const": "filingsift-xbrl-concepts-v4"
              },
              "method": {
                "type": "string",
                "const": "exact_taxonomy_concept"
              },
              "quarterDerivation": {
                "type": "string",
                "enum": [
                  "reported_only",
                  "compatible_ytd_difference",
                  "not_applicable"
                ]
              }
            }
          }
        }
      }
    },
    "meta": {
      "type": "object",
      "additionalProperties": true
    }
  }
}

← Browse all documentation