{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/factiq-com/json-schema/factiq-com-earnings-request-schema.json",
  "title": "EarningsRequest",
  "x-generated": "2026-11-07",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/factiq-com-openapi.json#/components/schemas/EarningsRequest",
  "properties": {
    "query": {
      "type": "string",
      "title": "Query",
      "description": "For claims/pressure_points: lexical websearch text; strict matches rank above loose partial-term matches, with trigram fallback only when FTS returns no rows. Empty text browses capped rows. For disclosure_profile, it can supply the ticker when ticker is empty. Ignored by coverage.",
      "default": ""
    },
    "search_target": {
      "type": "string",
      "enum": [
        "claims",
        "pressure_points",
        "disclosure_profile",
        "coverage"
      ],
      "title": "Search Target",
      "description": "claims or pressure_points perform lexical retrieval/browse; disclosure_profile is a direct company lookup; coverage is corpus inventory.",
      "default": "claims"
    },
    "ticker": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Ticker",
      "description": "Ticker, or a comma-separated list of tickers, for claims, pressure_points, and coverage; case-insensitive. Company names belong in company_name; pass only one of the two. A name passed here is still read as a name when it fits a stored company, and the response says so. Companies listed in India carry the NSE suffix ('RELIANCE.NS', 'INFY.NS') and companies listed in Switzerland carry '.SW' ('NESN.SW', 'ROP.SW'); a plain NSE or Swiss symbol is also accepted, but a symbol that is a US ticker ('INFY', 'ROP') selects the US listing. The response lists possible matches for a value that is not in the transcript corpus. disclosure_profile uses only the first ticker."
    },
    "company_name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Company Name",
      "description": "Company name, or a comma-separated list of names, for claims, pressure_points, and coverage; case-insensitive ('nvidia', 'HP Inc', 'Ford Motor'). Each name resolves to the stored ticker(s) that match it best; the response reports the resolution and lists possible matches for a name that resolved to nothing. Pass either company_name or ticker, not both. disclosure_profile uses only the first resolved ticker."
    },
    "company_filter": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Company Filter",
      "description": "Deprecated alias of ticker, kept for clients installed before the parameter was renamed. Pass ticker instead."
    },
    "quarter_filter": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Quarter Filter",
      "description": "Exact fiscal period such as FY2026Q3; applies to claims and pressure_points. Ignored by disclosure_profile and coverage. Pin this after coverage for a single-call browse."
    },
    "claim_family": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Claim Family",
      "description": "Claim-family code. Matches primary/secondary families on claims and the linked family on pressure_points; ignored by disclosure_profile and coverage."
    },
    "section": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Section",
      "description": "prepared_remarks or qa; applies only to claims. Ignored for pressure_points because those rows are all Q&A, and ignored by lookup/inventory targets."
    },
    "detail": {
      "type": "boolean",
      "title": "Detail",
      "description": "For claims, add structured_fields, secondary_families, period, time_horizon, conviction_qualifier, denominator, falsifiable, and entity_refs (the companies, products and bodies the claim names: raw_name as spoken, ref_type such as competitor/customer/supplier, is_implied for an unnamed reference, and the matched entity_name/entity_ticker when known); for pressure_points, add tone_note. Ignored by disclosure_profile and coverage. The extractor's quantified flag is not published: it only records that the extractor wrote something into value, which the caller can already see in value itself.",
      "default": false
    },
    "limit": {
      "type": "integer",
      "maximum": 50.0,
      "minimum": 1.0,
      "title": "Limit",
      "description": "Maximum 1-50 rows (default 15). This is a hard cap, not proof the result is complete; narrow by ticker, quarter, target, family, and claims section.",
      "default": 15
    }
  },
  "type": "object"
}