Skip to content

SDS (🧪 Beta)

albert.resources.sds

SDSDataEntity

Bases: str, Enum

Entity names for get_field_options.

These are the entity query values accepted by the field-options endpoint. They do not always match the SDSRequest field name.

Attributes:

Name Type Description
FLASHPOINT str

Options for flash_point.

BOILINGPOINT str

Options for initial_boiling_point.

ENFORCECLOAKING str

Options for enforce_cloaking.

VOC_UNIT str

Options for voc_content_unit.

FLASHPOINT

FLASHPOINT = 'flashpoint'

BOILINGPOINT

BOILINGPOINT = 'boilingpoint'

ENFORCECLOAKING

ENFORCECLOAKING = 'enforcecloaking'

VOC_UNIT

VOC_UNIT = 'vocUnit'

MELTING_POINT_RANGE

MELTING_POINT_RANGE = 'meltingPointRange'

BOILING_POINT_RANGE

BOILING_POINT_RANGE = 'boilingPointRange'

VAPOR_PRESSURE

VAPOR_PRESSURE = 'vaporPressure'

VAPOR_DENSITY

VAPOR_DENSITY = 'vaporDensity'

WATER_SOLUBILITY

WATER_SOLUBILITY = 'waterSolubility'

AUTO_IGNITION_TEMP

AUTO_IGNITION_TEMP = 'autoIgnitionTemp'

DECOMPOSITION_TEMP

DECOMPOSITION_TEMP = 'decompositionTemp'

PLM_NUMBER

PLM_NUMBER = 'plmNumber'

SECTION_15_DISCLOSURE

SECTION_15_DISCLOSURE = 'section15Disclosure'

UFI_IDENTIFIER

UFI_IDENTIFIER = 'ufiIdentifier'

VISCOSITY_INPUT

VISCOSITY_INPUT = 'viscosityInput'

PH_INPUT

PH_INPUT = 'pHInput'

PHYSICAL_STATE

PHYSICAL_STATE = 'physicalState'

FLAMMABILITY

FLAMMABILITY = 'flammability'

CURRENT_LOCATION

CURRENT_LOCATION = 'currentLocation'

DEFAULT_LOCATION

DEFAULT_LOCATION = 'defaultLocation'

RECENT_CURRENT_LOCATION

RECENT_CURRENT_LOCATION = 'recentCurrentLocation'

INTENDED_USE

INTENDED_USE = 'intendedUse'

WASTE_CODE

WASTE_CODE = 'wasteCode'

BURNING_TEST_RESULT

BURNING_TEST_RESULT = 'burningTestResult'

PARTICLE_CHARACTERISTICS

PARTICLE_CHARACTERISTICS = 'particleCharacteristics'

VISCOSITY

VISCOSITY = 'viscosity'

SPECIFIC_GRAVITY

SPECIFIC_GRAVITY = 'specificGravity'

VISCOSITY_UNIT

VISCOSITY_UNIT = 'viscosityUnit'

QUANTITY

QUANTITY = 'quantity_'

INHALATION_CONTROL

INHALATION_CONTROL = 'inhalationControl'

CONTACT_CONTROL

CONTACT_CONTROL = 'contactControl'

MATERIAL_PHYSICAL_STATE

MATERIAL_PHYSICAL_STATE = 'materialPhysicalState'

USE

USE = 'use'

PHYSICAL_FORM

PHYSICAL_FORM = 'physicalForm'

GENERAL_INFO

GENERAL_INFO = 'generalInfo'

SDSLegalEntity

Bases: BaseAlbertModel

A legal-entity option for a jurisdiction.

Returned by get_legal_entities. Send value as SDSRequest.legal_entity.

Show JSON schema:
{
  "description": "A legal-entity option for a jurisdiction.\n\nReturned by\n[`get_legal_entities`][albert.collections.sds.SDSCollection.get_legal_entities].\nSend ``value`` as [`SDSRequest.legal_entity`][albert.resources.sds.SDSRequest.legal_entity].",
  "properties": {
    "legalEntityId": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The legal-entity identifier.",
      "title": "Legalentityid"
    },
    "legalEntityName": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The display name of the legal entity.",
      "title": "Legalentityname"
    },
    "value": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The integer sent as ``legal_entity`` on [`SDSRequest`][albert.resources.sds.SDSRequest].",
      "title": "Value"
    },
    "isDefault": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Whether this legal entity is the default for the jurisdiction.",
      "title": "Isdefault"
    }
  },
  "title": "SDSLegalEntity",
  "type": "object"
}

Fields:

legal_entity_id

legal_entity_id: int | None = None

The legal-entity identifier.

legal_entity_name

legal_entity_name: str | None = None

The display name of the legal entity.

value

value: int | None = None

The integer sent as legal_entity on SDSRequest.

is_default

is_default: bool | None = None

Whether this legal entity is the default for the jurisdiction.

SDSFieldOptions

Bases: BaseAlbertModel

Tenant-specific options for one SDS input field.

Returned by get_field_options. When display is false, omit the field on SDSRequest. When data is a list of objects with a value key, send that value.

Show JSON schema:
{
  "description": "Tenant-specific options for one SDS input field.\n\nReturned by\n[`get_field_options`][albert.collections.sds.SDSCollection.get_field_options].\nWhen ``display`` is false, omit the field on\n[`SDSRequest`][albert.resources.sds.SDSRequest]. When ``data`` is a list of\nobjects with a ``value`` key, send that ``value``.",
  "properties": {
    "display": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Whether the field should be shown and sent for this tenant.",
      "title": "Display"
    },
    "isRequired": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Whether the field is required for this tenant.",
      "title": "Isrequired"
    },
    "data": {
      "default": null,
      "description": "The allowed values. Shape varies by entity (list of objects, list of strings, or empty).",
      "title": "Data"
    }
  },
  "title": "SDSFieldOptions",
  "type": "object"
}

Fields:

display

display: bool | None = None

Whether the field should be shown and sent for this tenant.

is_required

is_required: bool | None = None

Whether the field is required for this tenant.

data

data: Any = None

The allowed values. Shape varies by entity (list of objects, list of strings, or empty).

SDSRequest

Bases: BaseAlbertModel

Input for generating an SDS for a formula inventory item.

Identity fields (Albert ID, region, language, product type, physical state, legal entity) are required. Resolve codes from the SDS lookup helpers and send map values (e.g. "EN", "liquid"), not display names.

Product name and formula composition are not caller-supplied. generate_sds always loads the inventory name and unpacks the formula for CAS, ingredients, and inventory SDS rows.

Formula inventory only (INVMO… / MO… / INVP…).

Show JSON schema:
{
  "additionalProperties": false,
  "description": "Input for generating an SDS for a formula inventory item.\n\nIdentity fields (Albert ID, region, language, product type, physical state,\nlegal entity) are required. Resolve codes from the SDS lookup helpers and\nsend map **values** (e.g. ``\"EN\"``, ``\"liquid\"``), not display names.\n\nProduct name and formula composition are not caller-supplied.\n[`generate_sds`][albert.collections.sds.SDSCollection.generate_sds] always\nloads the inventory name and unpacks the formula for CAS, ingredients, and\ninventory SDS rows.\n\nFormula inventory only (``INVMO\u2026`` / ``MO\u2026`` / ``INVP\u2026``).",
  "properties": {
    "albertID": {
      "description": "Formula inventory Albert ID. ``INV`` is added on input if omitted and stripped on output because generate expects ``albertID`` without the prefix.",
      "title": "Albertid",
      "type": "string"
    },
    "productType": {
      "description": "Product-type code from [`get_products`][albert.collections.sds.SDSCollection.get_products] (e.g. ``\"acrylate\"``).",
      "title": "Producttype",
      "type": "string"
    },
    "language": {
      "description": "Language code from [`get_languages`][albert.collections.sds.SDSCollection.get_languages] (e.g. ``\"EN\"``).",
      "title": "Language",
      "type": "string"
    },
    "region": {
      "description": "Jurisdiction code from [`get_jurisdictions`][albert.collections.sds.SDSCollection.get_jurisdictions] (e.g. ``\"US\"``). Required; no default.",
      "title": "Region",
      "type": "string"
    },
    "legalEntity": {
      "description": "Integer ``value`` from [`get_legal_entities`][albert.collections.sds.SDSCollection.get_legal_entities].",
      "title": "Legalentity",
      "type": "integer"
    },
    "physicalState": {
      "description": "Physical-state code from [`get_physical_states`][albert.collections.sds.SDSCollection.get_physical_states] (e.g. ``\"liquid\"``).",
      "title": "Physicalstate",
      "type": "string"
    },
    "flashPoint": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Flash-point option **value** from [`get_field_options`][albert.collections.sds.SDSCollection.get_field_options], not the display label.",
      "title": "Flashpoint"
    },
    "initialBoilingPoint": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Initial boiling point option value, optional.",
      "title": "Initialboilingpoint"
    },
    "viscosity": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Dynamic viscosity, optional.",
      "title": "Viscosity"
    },
    "viscosityUnit": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Viscosity unit code (e.g. ``\"cP\"``), optional.",
      "title": "Viscosityunit"
    },
    "specificGravity": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Specific gravity, optional.",
      "title": "Specificgravity"
    },
    "color": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Color description, optional.",
      "title": "Color"
    },
    "odor": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Odor description, optional.",
      "title": "Odor"
    },
    "vocContent": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "VOC content, optional.",
      "title": "Voccontent"
    },
    "vocContentUnit": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "VOC unit from [`get_field_options`][albert.collections.sds.SDSCollection.get_field_options] with ``vocUnit``, optional.",
      "title": "Voccontentunit"
    },
    "pHvalue": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "pH range enum string (e.g. ``\"2 \u2264 pH \u2264 11.5\"``), optional.",
      "title": "Phvalue"
    },
    "heatOfReaction": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Heat-of-reaction enum string (e.g. ``\"<300J/g\"``), optional.",
      "title": "Heatofreaction"
    },
    "peroxideCheck": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Peroxide check value, optional.",
      "title": "Peroxidecheck"
    },
    "enforceCloaking": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "When True, cloak CAS numbers on the SDS. Tenant-gated via field options.",
      "title": "Enforcecloaking"
    },
    "section15Disclosure": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Section 15 disclosure option value, optional.",
      "title": "Section15Disclosure"
    },
    "projectColorFormulaId": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Project / color / formula identifier, optional.",
      "title": "Projectcolorformulaid"
    },
    "currentLocation": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Current location code, optional.",
      "title": "Currentlocation"
    },
    "location": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Location code, optional.",
      "title": "Location"
    },
    "kinematicViscosity40": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Kinematic viscosity at 40\u00b0C in mm\u00b2/s, optional.",
      "title": "Kinematicviscosity40"
    },
    "intendedUse": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Intended-use option value from [`get_field_options`][albert.collections.sds.SDSCollection.get_field_options] with ``intendedUse``, optional. Required by some tenants.",
      "title": "Intendeduse"
    },
    "use": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Use option value from [`get_field_options`][albert.collections.sds.SDSCollection.get_field_options] with ``use``, optional.",
      "title": "Use"
    },
    "physicalForm": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Physical-form option value from [`get_field_options`][albert.collections.sds.SDSCollection.get_field_options] with ``physicalForm``, optional.",
      "title": "Physicalform"
    },
    "wasteCode": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Union waste-code option value from [`get_field_options`][albert.collections.sds.SDSCollection.get_field_options] with ``wasteCode``, optional.",
      "title": "Wastecode"
    },
    "flammability": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Flammability option value from [`get_field_options`][albert.collections.sds.SDSCollection.get_field_options] with ``flammability``, optional.",
      "title": "Flammability"
    },
    "burningTestResult": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Burning-test option value from [`get_field_options`][albert.collections.sds.SDSCollection.get_field_options] with ``burningTestResult``, optional. Filtered by ``flammability``.",
      "title": "Burningtestresult"
    },
    "plmNumber": {
      "anyOf": [
        {
          "maxLength": 100,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "PLM number, optional. Tenant-gated via field options (``plmNumber``).",
      "title": "Plmnumber"
    },
    "ufiIdentifier": {
      "anyOf": [
        {
          "maxLength": 100,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "UFI identifier, optional. Tenant-gated via field options (``ufiIdentifier``).",
      "title": "Ufiidentifier"
    },
    "viscosityInput": {
      "anyOf": [
        {
          "maxLength": 100,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Viscosity SDS-output option value from [`get_field_options`][albert.collections.sds.SDSCollection.get_field_options] with ``viscosityInput``, optional.",
      "title": "Viscosityinput"
    },
    "particleCharacteristics": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Particle-characteristics option value from [`get_field_options`][albert.collections.sds.SDSCollection.get_field_options] with ``particleCharacteristics``, optional.",
      "title": "Particlecharacteristics"
    },
    "pHInput": {
      "anyOf": [
        {
          "maxLength": 100,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "pH SDS-output option value from [`get_field_options`][albert.collections.sds.SDSCollection.get_field_options] with ``pHInput``, optional.",
      "title": "Phinput"
    },
    "meltingPointRange": {
      "anyOf": [
        {
          "maxLength": 100,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Melting point / freezing point option value from [`get_field_options`][albert.collections.sds.SDSCollection.get_field_options] with ``meltingPointRange``, optional.",
      "title": "Meltingpointrange"
    },
    "boilingPointRange": {
      "anyOf": [
        {
          "maxLength": 100,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Boiling point option value from [`get_field_options`][albert.collections.sds.SDSCollection.get_field_options] with ``boilingPointRange``, optional.",
      "title": "Boilingpointrange"
    },
    "vaporPressure": {
      "anyOf": [
        {
          "maxLength": 100,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Vapor-pressure option value from [`get_field_options`][albert.collections.sds.SDSCollection.get_field_options] with ``vaporPressure``, optional.",
      "title": "Vaporpressure"
    },
    "vaporDensity": {
      "anyOf": [
        {
          "maxLength": 100,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Vapor-density option value from [`get_field_options`][albert.collections.sds.SDSCollection.get_field_options] with ``vaporDensity``, optional.",
      "title": "Vapordensity"
    },
    "waterSolubility": {
      "anyOf": [
        {
          "maxLength": 100,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Water-solubility option value from [`get_field_options`][albert.collections.sds.SDSCollection.get_field_options] with ``waterSolubility``, optional.",
      "title": "Watersolubility"
    },
    "autoIgnitionTemp": {
      "anyOf": [
        {
          "maxLength": 100,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Auto-ignition temperature option value from [`get_field_options`][albert.collections.sds.SDSCollection.get_field_options] with ``autoIgnitionTemp``, optional.",
      "title": "Autoignitiontemp"
    },
    "decompositionTemp": {
      "anyOf": [
        {
          "maxLength": 100,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Decomposition temperature option value from [`get_field_options`][albert.collections.sds.SDSCollection.get_field_options] with ``decompositionTemp``, optional.",
      "title": "Decompositiontemp"
    },
    "evaporationRate": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Evaporation rate, optional. Not gated by tenant field options.",
      "title": "Evaporationrate"
    },
    "explosiveLimitsLower": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Lower explosive limit, optional. Not gated by tenant field options.",
      "title": "Explosivelimitslower"
    },
    "explosiveLimitsUpper": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Upper explosive limit, optional. Not gated by tenant field options.",
      "title": "Explosivelimitsupper"
    },
    "odorThreshold": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Odor threshold, optional. Not gated by tenant field options.",
      "title": "Odorthreshold"
    },
    "partitionCoefficient": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Partition coefficient (n-octanol/water), optional. Not gated by tenant field options.",
      "title": "Partitioncoefficient"
    }
  },
  "required": [
    "albertID",
    "productType",
    "language",
    "region",
    "legalEntity",
    "physicalState"
  ],
  "title": "SDSRequest",
  "type": "object"
}

Config:

  • extra: forbid

Fields:

model_config

model_config = ConfigDict(extra='forbid')

albert_id

albert_id: InventoryId

Formula inventory Albert ID. INV is added on input if omitted and stripped on output because generate expects albertID without the prefix.

product_type

product_type: str

Product-type code from get_products (e.g. "acrylate").

language

language: str

Language code from get_languages (e.g. "EN").

region

region: str

Jurisdiction code from get_jurisdictions (e.g. "US"). Required; no default.

legal_entity

legal_entity: int

Integer value from get_legal_entities.

physical_state

physical_state: str

Physical-state code from get_physical_states (e.g. "liquid").

flash_point

flash_point: float | None = None

Flash-point option value from get_field_options, not the display label.

initial_boiling_point

initial_boiling_point: float | None = None

Initial boiling point option value, optional.

viscosity

viscosity: float | None = None

Dynamic viscosity, optional.

viscosity_unit

viscosity_unit: str | None = None

Viscosity unit code (e.g. "cP"), optional.

specific_gravity

specific_gravity: float | None = None

Specific gravity, optional.

color

color: str | None = None

Color description, optional.

odor

odor: str | None = None

Odor description, optional.

voc_content

voc_content: str | None = None

VOC content, optional.

voc_content_unit

voc_content_unit: str | None = None

VOC unit from get_field_options with vocUnit, optional.

ph_value

ph_value: str | None = None

pH range enum string (e.g. "2 ≤ pH ≤ 11.5"), optional.

heat_of_reaction

heat_of_reaction: str | None = None

Heat-of-reaction enum string (e.g. "<300J/g"), optional.

peroxide_check

peroxide_check: str | None = None

Peroxide check value, optional.

enforce_cloaking

enforce_cloaking: bool | None = None

When True, cloak CAS numbers on the SDS. Tenant-gated via field options.

section_15_disclosure

section_15_disclosure: str | None = None

Section 15 disclosure option value, optional.

project_color_formula_id

project_color_formula_id: str | int | None = None

Project / color / formula identifier, optional.

current_location

current_location: str | None = None

Current location code, optional.

location

location: str | None = None

Location code, optional.

kinematic_viscosity_40

kinematic_viscosity_40: float | None = None

Kinematic viscosity at 40°C in mm²/s, optional.

intended_use

intended_use: str | None = None

Intended-use option value from get_field_options with intendedUse, optional. Required by some tenants.

use

use: str | None = None

Use option value from get_field_options with use, optional.

physical_form

physical_form: str | None = None

Physical-form option value from get_field_options with physicalForm, optional.

waste_code

waste_code: str | None = None

Union waste-code option value from get_field_options with wasteCode, optional.

flammability

flammability: str | None = None

Flammability option value from get_field_options with flammability, optional.

burning_test_result

burning_test_result: str | None = None

Burning-test option value from get_field_options with burningTestResult, optional. Filtered by flammability.

plm_number

plm_number: str | None = None

PLM number, optional. Tenant-gated via field options (plmNumber).

ufi_identifier

ufi_identifier: str | None = None

UFI identifier, optional. Tenant-gated via field options (ufiIdentifier).

viscosity_input

viscosity_input: str | None = None

Viscosity SDS-output option value from get_field_options with viscosityInput, optional.

particle_characteristics

particle_characteristics: str | None = None

Particle-characteristics option value from get_field_options with particleCharacteristics, optional.

ph_input

ph_input: str | None = None

pH SDS-output option value from get_field_options with pHInput, optional.

melting_point_range

melting_point_range: str | None = None

Melting point / freezing point option value from get_field_options with meltingPointRange, optional.

boiling_point_range

boiling_point_range: str | None = None

Boiling point option value from get_field_options with boilingPointRange, optional.

vapor_pressure

vapor_pressure: str | None = None

Vapor-pressure option value from get_field_options with vaporPressure, optional.

vapor_density

vapor_density: str | None = None

Vapor-density option value from get_field_options with vaporDensity, optional.

water_solubility

water_solubility: str | None = None

Water-solubility option value from get_field_options with waterSolubility, optional.

auto_ignition_temp

auto_ignition_temp: str | None = None

Auto-ignition temperature option value from get_field_options with autoIgnitionTemp, optional.

decomposition_temp

decomposition_temp: str | None = None

Decomposition temperature option value from get_field_options with decompositionTemp, optional.

evaporation_rate

evaporation_rate: str | None = None

Evaporation rate, optional. Not gated by tenant field options.

explosive_limits_lower

explosive_limits_lower: str | None = None

Lower explosive limit, optional. Not gated by tenant field options.

explosive_limits_upper

explosive_limits_upper: str | None = None

Upper explosive limit, optional. Not gated by tenant field options.

odor_threshold

odor_threshold: str | None = None

Odor threshold, optional. Not gated by tenant field options.

partition_coefficient

partition_coefficient: str | None = None

Partition coefficient (n-octanol/water), optional. Not gated by tenant field options.

GeneratedSDS

Bases: BaseAlbertModel

The SDS generated for a formula inventory item.

The inner SDS JSON can include keys beyond the core GHS sections, so unknown response fields are preserved on the model.

Show JSON schema:
{
  "additionalProperties": true,
  "description": "The SDS generated for a formula inventory item.\n\nThe inner SDS JSON can include keys beyond the core GHS sections, so unknown\nresponse fields are preserved on the model.",
  "properties": {
    "id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The formula Albert ID associated with the generated SDS.",
      "title": "Id"
    },
    "sds": {
      "additionalProperties": true,
      "description": "The generated SDS JSON (GHS sections plus extra keys such as coversheet and explainability).",
      "title": "Sds",
      "type": "object"
    },
    "presignedURL": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Short-lived URL for the generated SDS PDF.",
      "title": "Presignedurl"
    },
    "presignedURL_Metadata": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Short-lived URL for the generated SDS metadata spreadsheet, when present.",
      "title": "Presignedurl Metadata"
    }
  },
  "required": [
    "sds"
  ],
  "title": "GeneratedSDS",
  "type": "object"
}

Config:

  • extra: allow

Fields:

model_config

model_config = ConfigDict(extra='allow')

id

id: str | None = None

The formula Albert ID associated with the generated SDS.

sds_json

sds_json: dict[str, Any]

The generated SDS JSON (GHS sections plus extra keys such as coversheet and explainability).

pdf_url

pdf_url: str | None = None

Short-lived URL for the generated SDS PDF.

metadata_url

metadata_url: str | None = None

Short-lived URL for the generated SDS metadata spreadsheet, when present.