datamodel-codegen. These models provide full type safety when working with the platform API.
How They’re Generated
The models inkodexa_document.model._generated are produced by running datamodel-codegen against the api-docs.yaml OpenAPI specification from kodexa-api. This happens as part of the CI pipeline and ensures the Python models always match the API.
Importing Models
Key Model Categories
Organizations & Projects
Assistants & Execution
Documents & Storage
Knowledge System
Tasks & Workflow
Users & Access
KodexaBaseModel
All generated models inherit fromKodexaBaseModel, which extends Pydantic’s BaseModel with:
camelCase / snake_case Support
Models accept both camelCase (matching the JSON API) and snake_case (Pythonic) field names:Dict-like Access
Models support dict-style bracket access andget():
Extra Fields
Theextra='allow' configuration means models accept fields not in the schema without raising errors. This handles forward-compatibility when the API adds new fields.
Taxonomy and Taxon Extensions
The SDK extends the generatedTaxonomyBase and TaxonBase models with navigation methods. These are imported from the top-level package, not from _generated:
Taxon Methods
Taxonomy Methods
Deserializing API Responses
The models integrate naturally with API response data:DateTime Handling
KodexaBaseModel uses a custom StandardDateTime type that serializes datetimes to millisecond-precision ISO 8601 strings with Z suffix (e.g., 2026-01-15T10:30:00.000Z). This matches the Java/Go API format.