SDS (🧪 Beta)
albert.resources.sds
SDSDataEntity
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 |
BOILINGPOINT |
str
|
Options for |
ENFORCECLOAKING |
str
|
Options for |
VOC_UNIT |
str
|
Options for |
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(int | None) -
legal_entity_name(str | None) -
value(int | None) -
is_default(bool | None)
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:
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:
-
albert_id(InventoryId) -
product_type(str) -
language(str) -
region(str) -
legal_entity(int) -
physical_state(str) -
flash_point(float | None) -
initial_boiling_point(float | None) -
viscosity(float | None) -
viscosity_unit(str | None) -
specific_gravity(float | None) -
color(str | None) -
odor(str | None) -
voc_content(str | None) -
voc_content_unit(str | None) -
ph_value(str | None) -
heat_of_reaction(str | None) -
peroxide_check(str | None) -
enforce_cloaking(bool | None) -
section_15_disclosure(str | None) -
project_color_formula_id(str | int | None) -
current_location(str | None) -
location(str | None) -
kinematic_viscosity_40(float | None) -
intended_use(str | None) -
use(str | None) -
physical_form(str | None) -
waste_code(str | None) -
flammability(str | None) -
burning_test_result(str | None) -
plm_number(str | None) -
ufi_identifier(str | None) -
viscosity_input(str | None) -
particle_characteristics(str | None) -
ph_input(str | None) -
melting_point_range(str | None) -
boiling_point_range(str | None) -
vapor_pressure(str | None) -
vapor_density(str | None) -
water_solubility(str | None) -
auto_ignition_temp(str | None) -
decomposition_temp(str | None) -
evaporation_rate(str | None) -
explosive_limits_lower(str | None) -
explosive_limits_upper(str | None) -
odor_threshold(str | None) -
partition_coefficient(str | None)
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.
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.
voc_content_unit
voc_content_unit: str | None = None
VOC unit from get_field_options with vocUnit, optional.
heat_of_reaction
heat_of_reaction: str | None = None
Heat-of-reaction enum string (e.g. "<300J/g"), 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 identifier, 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.
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:
sds_json
The generated SDS JSON (GHS sections plus extra keys such as coversheet and explainability).
metadata_url
metadata_url: str | None = None
Short-lived URL for the generated SDS metadata spreadsheet, when present.