# General Translation Python SDKs: decode_options URL: https://generaltranslation.com/en-GB/docs/python/reference/functions/decode-options.mdx --- title: decode_options description: Extract the options dict from an encoded msg result in General Translation Python. API reference for decode_options. --- Extracts the options dictionary from a string produced by [`msg`](/docs/python/reference/functions/msg). It decodes the base64 payload after the last colon. ## Overview [#overview] Call `decode_options` with an encoded `msg` result. It returns the decoded options dict, or `None` if the input has no colon or its payload is invalid. ```python from gt_i18n import decode_options decode_options(encoded_message) ``` Signature: ```python decode_options(encoded_msg: str) -> dict[str, object] | None ``` Import `decode_options` from `gt_i18n`. It is not re-exported by the framework packages. ## How it works [#how-it-works] * **Split at last colon.** It takes the text after the final colon, base64-decodes it, and then parses the JSON payload. * **Invalid or plain input.** It returns `None` when there is no colon, or when the payload cannot be base64-decoded or parsed as JSON. * **Payload contents.** A decoded payload includes the user variables, along with reserved keys such as `__source` and `__hash`. ## Parameters [#parameters] | Parameter | Description | Type | Optional | Default | | ----------------------------- | ------------------------ | ----- | -------- | ------- | | [`encoded_msg`](#encoded-msg) | An encoded `msg` result. | `str` | No | — | ### `encoded_msg` [#encoded-msg] **Type** `str` · **Required** The encoded `msg` result to read options from. ## Returns [#returns] **Type** `dict[str, object] | None` The decoded options dict, or `None` when the input carries no valid options payload. ## Example [#example] ```python from gt_i18n import msg, decode_options encoded = msg("Save", _context="button") decode_options(encoded) # {"_context": "button", "__source": "Save", "__hash": "..."} decode_options("Plain") # None ```