module, Method=None, AvailableMethods=False, CASi=None)[source]

Looks up the legal status of a chemical according to either a specifc method or with all methods.

Returns either the status as a string for a specified method, or the status of the chemical in all available data sources, in the format {source: status}.


CASRN : string



status : str or dict

Legal status information [-]

methods : list, only returned if AvailableMethods == True

List of methods which can be used to obtain legal status with the given inputs

Other Parameters:

Method : string, optional

A string for the method name to use, as defined by constants in legal_status_methods

AvailableMethods : bool, optional

If True, function will determine which methods can be used to obtain the legal status for the desired chemical, and will return methods instead of the status

CASi : int, optional

CASRN as an integer, used internally [-]


Supported methods are:

  • DSL: Canada Domestic Substance List, [R926929]. As extracted on Feb 11, 2015 from a html list. This list is updated continuously, so this version will always be somewhat old. Strictly speaking, there are multiple lists but they are all bundled together here. A chemical may be ‘Listed’, or be on the ‘Non-Domestic Substances List (NDSL)’, or be on the list of substances with ‘Significant New Activity (SNAc)’, or be on the DSL but with a ‘Ministerial Condition pertaining to this substance’, or have been removed from the DSL, or have had a Ministerial prohibition for the substance.
  • TSCA: USA EPA Toxic Substances Control Act Chemical Inventory, [R927929]. This list is as extracted on 2016-01. It is believed this list is updated on a periodic basis (> 6 month). A chemical may simply be ‘Listed’, or may have certain flags attached to it. All these flags are described in the dict TSCA_flags.
  • EINECS: European INventory of Existing Commercial chemical Substances, [R928929]. As extracted from a spreadsheet dynamically generated at [R926929]. This list was obtained March 2015; a more recent revision already exists.
  • NLP: No Longer Polymers, a list of chemicals with special regulatory exemptions in EINECS. Also described at [R928929].
  • SPIN: Substances Prepared in Nordic Countries. Also a boolean data type. Retrieved 2015-03 from [R929929].

Other methods which could be added are:

  • Australia: AICS Australian Inventory of Chemical Substances
  • China: Inventory of Existing Chemical Substances Produced or Imported in China (IECSC)
  • Europe: REACH List of Registered Substances
  • India: List of Hazardous Chemicals
  • Japan: ENCS: Inventory of existing and new chemical substances
  • Korea: Existing Chemicals Inventory (KECI)
  • Mexico: INSQ National Inventory of Chemical Substances in Mexico
  • New Zealand: Inventory of Chemicals (NZIoC)
  • Philippines: PICCS Philippines Inventory of Chemicals and Chemical Substances


[R926929](1, 2, 3) Government of Canada.. “Substances Lists” Feb 11, 2015.
[R927929](1, 2) US EPA. “TSCA Chemical Substance Inventory.” Accessed April 2016.
[R928929](1, 2, 3) ECHA. “EC Inventory”. Accessed March 2015.
[R929929](1, 2) SPIN. “SPIN Substances in Products In Nordic Countries.” Accessed March 2015.


>>> pprint(legal_status('64-17-5'))
 'TSCA': 'LISTED'}, Method=None, AvailableMethods=False)[source]

Look up the economic status of a chemical.

This API is considered experimental, and is expected to be removed in a future release in favor of a more complete object-oriented interface.

>>> pprint(economic_status(CASRN='98-00-0'))
["US public: {'Manufactured': 0.0, 'Imported': 10272.711, 'Exported': 184.127}",
 u'10,000 - 100,000 tonnes per annum',
 'OECD HPV Chemicals']
>>> economic_status(CASRN='13775-50-3')  # SODIUM SESQUISULPHATE
>>> economic_status(CASRN='98-00-0', Method='OECD high production volume chemicals')
'OECD HPV Chemicals'
>>> economic_status(CASRN='98-01-1', Method='European Chemicals Agency Total Tonnage Bands')
[u'10,000 - 100,000 tonnes per annum'][source][source]