# JSON Schema Object div strong 🔨 In Development — This section is still being developed and may change. Represents a reusable JSON schema definition for structured assistant outputs. JSON schemas enable assistants to return validated, type-safe responses in a specific format. ## Properties **`id`** string Unique identifier for the JSON schema. Format: `schema_` followed by alphanumeric characters. **`name`** string Human-readable name for the schema. Used for identification in lists and UI. **`description`** string optional Description of what this schema is used for and what data it represents. **`schemaObject`** object The actual JSON schema definition following the JSON Schema specification. Defines the structure, types, and validation rules for the output. **`organizationId`** string The organization this schema belongs to. **`createdBy`** string User ID of the person who created this schema. **`isActive`** boolean Whether this schema is active and available for use. **`version`** integer Version number of the schema. Increments with each update. **`createdAt`** integer Unix timestamp (seconds) when the schema was created. **`updatedAt`** integer Unix timestamp (seconds) when the schema was last modified. ## Example JSON Schema Product Information ```json { "id": "schema_abc123", "name": "Product Information", "description": "Schema for structured product data", "schemaObject": { "type": "object", "properties": { "name": { "type": "string", "description": "Product name" }, "price": { "type": "number", "description": "Product price in USD" }, "category": { "type": "string", "enum": ["electronics", "clothing", "food", "other"] }, "inStock": { "type": "boolean", "description": "Whether product is in stock" }, "tags": { "type": "array", "items": { "type": "string" } } }, "required": ["name", "price", "category"] }, "organizationId": "org_xyz789", "createdBy": "user_abc123", "isActive": true, "version": 1, "createdAt": 1728057600, "updatedAt": 1728057600 } ``` User Profile ```json { "id": "schema_def456", "name": "User Profile", "description": "Schema for user profile data extraction", "schemaObject": { "type": "object", "properties": { "fullName": { "type": "string" }, "email": { "type": "string", "format": "email" }, "age": { "type": "integer", "minimum": 0, "maximum": 150 }, "address": { "type": "object", "properties": { "street": { "type": "string" }, "city": { "type": "string" }, "country": { "type": "string" }, "zipCode": { "type": "string" } } }, "preferences": { "type": "object", "properties": { "newsletter": { "type": "boolean" }, "notifications": { "type": "boolean" } } } }, "required": ["fullName", "email"] }, "organizationId": "org_xyz789", "createdBy": "user_def456", "isActive": true, "version": 2, "createdAt": 1728057600, "updatedAt": 1728061200 } ``` Meeting Summary ```json { "id": "schema_ghi789", "name": "Meeting Summary", "description": "Schema for structured meeting notes", "schemaObject": { "type": "object", "properties": { "title": { "type": "string" }, "date": { "type": "string", "format": "date" }, "attendees": { "type": "array", "items": { "type": "string" } }, "keyPoints": { "type": "array", "items": { "type": "object", "properties": { "topic": { "type": "string" }, "decision": { "type": "string" }, "owner": { "type": "string" } } } }, "actionItems": { "type": "array", "items": { "type": "object", "properties": { "task": { "type": "string" }, "assignee": { "type": "string" }, "dueDate": { "type": "string", "format": "date" }, "priority": { "type": "string", "enum": ["low", "medium", "high"] } }, "required": ["task", "assignee"] } } }, "required": ["title", "date", "attendees"] }, "organizationId": "org_xyz789", "createdBy": "user_ghi789", "isActive": true, "version": 1, "createdAt": 1728057600, "updatedAt": 1728057600 } ``` ## Usage JSON schemas are referenced by assistants to enable structured output mode. When an assistant has `outputMode` set to `json_schema`, it will validate its responses against the specified schemas. ## Related - [Assistant Object](/docs/api-reference/objects/assistant-object) - Assistants can use multiple JSON schemas - [Structured Output Guide](/docs/documentation/core-concepts/structured-output) - Learn about structured outputs - [Create assistant](/docs/api-reference/assistants/create) - Create assistant with JSON schemas