Skip to main content
OutputSchema is a recursive JSON-Schema-like structure that describes what each node should return. Every schema requires an instructions field — that’s how the model knows what to extract for this slot.

Types

TypeRequiredOptional
stringinstructionsenum, examples, template, pattern, format
number / integerinstructionsminimum, maximum, exclusiveMinimum, exclusiveMaximum, enum
booleaninstructions
objectinstructions, properties (recursive)examples, template
arrayinstructions, items (recursive)minItems, maxItems, examples, template
anyOfinstructions, anyOf (OutputSchema[])
Supported format values for string: date-time, date, time, duration, email, uuid, ipv4, ipv6.

Limits

LimitValue
Max nesting depth10
Max total properties5,000
Max chars (names + enum values combined)120,000
Max enum values across all properties1,000

Example — object section

{
  "type": "object",
  "instructions": "Patient vitals",
  "properties": {
    "bloodPressure": {
      "type": "string",
      "instructions": "Systolic/diastolic in mmHg",
      "pattern": "^\\d{2,3}/\\d{2,3}$"
    },
    "heartRate": {
      "type": "integer",
      "instructions": "Beats per minute",
      "minimum": 20,
      "maximum": 300
    }
  }
}

Example — optional / nullable field via anyOf

{
  "type": "object",
  "instructions": "Symptoms",
  "properties": {
    "fever": {
      "instructions": "Maximum measured temperature in °C, or null if not reported",
      "anyOf": [
        { "type": "number", "minimum": 30, "maximum": 45 },
        { "type": "null" }
      ]
    }
  }
}

Example — array of structured items

{
  "type": "array",
  "instructions": "List of medications mentioned",
  "items": {
    "type": "object",
    "instructions": "One medication entry",
    "properties": {
      "name": { "type": "string", "instructions": "Generic or brand name" },
      "dose": { "type": "string", "instructions": "Dose with unit, e.g. 500 mg" }
    }
  }
}