{"id":56235,"date":"2026-03-02T10:33:24","date_gmt":"2026-03-02T08:33:24","guid":{"rendered":"https:\/\/wodatherm.com\/?p=56235"},"modified":"2026-04-02T10:55:30","modified_gmt":"2026-04-02T08:55:30","slug":"do-you-need-to-use-an-esim-in-linux-systems","status":"publish","type":"post","link":"https:\/\/wodatherm.com\/en\/do-you-need-to-use-an-esim-in-linux-systems\/","title":{"rendered":"Do you need to use an eSIM in Linux systems?"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">You probably know how traditional SIM cards works, but do you know how to use an eSIM in Linux ? And how well does eSIM work in a Linux environment?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Good news is that it\u2019s possible to get a module with an eSIM up and running on your machine with a bit of configuration. So after this confusing title, we will be using an eUICC SGP.22 SIM &#8211; \u201cconsumer eSIM\u201d and Host computer (x86_64 running Ubuntu 24.04) with Cellular module (SIMCom SIM8230G-M2 or SIM8262E M2 for example)<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Step 1:<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Make sure you have the correct drivers installed for your module. We see here that the module exposes a QMI interfaces which we bind to qmi_wwan and 3 serial ports bound to option.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>APL01:~$ lsusb -t\n\/:  Bus 001.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd\/8p, 480M\n    |__ Port 004: Dev 013, If 0, Class=Vendor Specific Class, Driver=option, 480M\n    |__ Port 004: Dev 013, If 1, Class=Vendor Specific Class, Driver=option, 480M\n    |__ Port 004: Dev 013, If 2, Class=Vendor Specific Class, Driver=option, 480M\n    |__ Port 004: Dev 013, If 3, Class=Vendor Specific Class, Driver=qmi_wwan, 480M\n\/:  Bus 002.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd\/7p, 5000M\n\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Step 2:<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">In order to use QMI, install libqmi 1.35.5 or later.<br>First we need some dependencies:&nbsp;<em>meson ninja-build pkg-config bash-completion libgirepository1.0-dev help2man libglib2.0-dev libgudev-1.0-dev libmbim-glib-dev libqrtr-glib-dev<\/em><br>In our case, these packages were already installed.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>APL01:~$ sudo apt-get install -y meson ninja-build git pkg-config bash-completion libgirepository1.0-dev help2man libglib2.0-dev libgudev-1.0-dev libmbim-glib-dev libqrtr-glib-dev\n&#91;sudo] password for jakob:\nReading package lists... Done\nBuilding dependency tree... Done\nReading state information... Done\nmeson is already the newest version (1.3.2-1ubuntu1).\nninja-build is already the newest version (1.11.1-2).\nninja-build set to manually installed.\npkg-config is already the newest version (1.8.1-2build1).\nbash-completion is already the newest version (1:2.11-8).\nbash-completion set to manually installed.\nlibgirepository1.0-dev is already the newest version (1.80.1-1).\nhelp2man is already the newest version (1.49.3).\nlibglib2.0-dev is already the newest version (2.80.0-6ubuntu3.2).\nlibgudev-1.0-dev is already the newest version (1:238-5ubuntu1).\nlibmbim-glib-dev is already the newest version (1.31.2-0ubuntu3).\nlibqrtr-glib-dev is already the newest version (1.2.2-1ubuntu4).\n0 upgraded, 0 newly installed, 0 to remove and 146 not upgraded.\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Step 3:<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Download libqmi, build and install it.<br>Git directory:&nbsp;<a href=\"https:\/\/gitlab.freedesktop.org\/mobile-broadband\/libqmi.git\">https:\/\/gitlab.freedesktop.org\/mobile-broadband\/libqmi.git<\/a><br>meson setup build &#8211;prefix=\/usr &#8211;buildtype=release<br>ninja -j$(nproc) -C build<br>sudo ninja -C build install<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>APL01:~$ git clone https:\/\/gitlab.freedesktop.org\/mobile-broadband\/libqmi.git\nCloning into 'libqmi'...\nremote: Enumerating objects: 17636, done.\nremote: Counting objects: 100% (1308\/1308), done.\nremote: Compressing objects: 100% (380\/380), done.\nremote: Total 17636 (delta 889), reused 1300 (delta 882), pack-reused 16328 (from 1)\nReceiving objects: 100% (17636\/17636), 4.97 MiB | 6.57 MiB\/s, done.\nResolving deltas: 100% (13472\/13472), done.\n\nAPL01:~$ cd libqmi\nAPL01:~\/libqmi$ meson setup build --prefix=\/usr --buildtype=release\nThe Meson build system\nVersion: 1.3.2\nSource dir: \/home\/jakob\/libqmi\nBuild dir: \/home\/jakob\/libqmi\/build\nBuild type: native build\nProject name: libqmi\nProject version: 1.35.6\n...\n\nAPL01:~\/libqmi$ ninja -j$(nproc) -C build\nninja: Entering directory `build'\n&#91;176\/176] Generating src\/libqmi-glib\/Qmi-1.0.typelib with a custom command\n\nAPL01:~\/libqmi$ sudo ninja -C build install\nninja: Entering directory `build'\n&#91;0\/1] Installing files.\nInstalling src\/libqmi-glib\/generated\/qmi-error-types.h to \/usr\/include\/libqmi-glib\nInstalling src\/libqmi-glib\/generated\/qmi-enum-types.h to \/usr\/include\/libqmi-glib\nInstalling src\/libqmi-glib\/generated\/qmi-flag-types.h to \/usr\/include\/libqmi-glib\nInstalling src\/libqmi-glib\/generated\/qmi-flags64-types.h to \/usr\/include\/libqmi-glib\nInstalling src\/libqmi-glib\/generated\/qmi-atr.h to \/usr\/include\/libqmi-glib\nInstalling src\/libqmi-glib\/generated\/qmi-dms.h to \/usr\/include\/libqmi-glib\nInstalling src\/libqmi-glib\/generated\/qmi-dpm.h to \/usr\/include\/libqmi-glib\nInstalling src\/libqmi-glib\/generated\/qmi-dsd.h to \/usr\/include\/libqmi-glib\nInstalling src\/libqmi-glib\/generated\/qmi-ims.h to \/usr\/include\/libqmi-glib\nInstalling src\/libqmi-glib\/generated\/qmi-imsa.h to \/usr\/include\/libqmi-glib\n...\n...\n\nAPL01:~\/libqmi$ qmicli --version\nqmicli 1.35.6\nCopyright (C) 2012-2023 Aleksander Morgado\nLicense GPLv2+: GNU GPL version 2 or later &lt;http:\/\/gnu.org\/licenses\/gpl-2.0.html>\nThis is free software: you are free to change and redistribute it.\nThere is NO WARRANTY, to the extent permitted by law.\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Step 4:<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Lpac requires some additional dependencies:&nbsp;<em>build-essential libpcsclite-dev libcurl4-openssl-dev zip<\/em><br>Download lpac via git<br>Git directory:&nbsp;<a href=\"https:\/\/github.com\/estkme-group\/lpac.git\">https:\/\/github.com\/estkme-group\/lpac.git<\/a><br>We use QMI as noted, so we will enable the QMI flag.<br>Make and install.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>APL01:~\/lpac$ sudo apt-get install -y build-essential libpcsclite-dev libcurl4-openssl-dev zip\nReading package lists... Done\nBuilding dependency tree... Done\nReading state information... Done\n...\n...\n\nAPL01:~$ git clone https:\/\/github.com\/estkme-group\/lpac.git\nCloning into 'lpac'...\nremote: Enumerating objects: 2865, done.\nremote: Counting objects: 100% (647\/647), done.\nremote: Compressing objects: 100% (256\/256), done.\nremote: Total 2865 (delta 540), reused 399 (delta 389), pack-reused 2218 (from 3)\nReceiving objects: 100% (2865\/2865), 1.04 MiB | 4.17 MiB\/s, done.\nResolving deltas: 100% (1922\/1922), done.\n\nAPL01:~\/lpac$ git checkout tags\/v2.3.0\nNote: switching to 'tags\/v2.3.0'.\n...\nHEAD is now at c2fcf5e chore: bump version to 2.3.0\n\njakob@jakob-UP-APL01:~\/lpac$ cmake -B lpacoutput -DLPAC_WITH_APDU_QMI=ON\n-- The C compiler identification is GNU 13.3.0\n-- Detecting C compiler ABI info\n-- Detecting C compiler ABI info - done\n-- Check for working C compiler: \/usr\/bin\/cc - skipped\n-- Detecting C compile features\n-- Detecting C compile features - done\n-- Found PkgConfig: \/usr\/bin\/pkg-config (found version \"1.8.1\")\n-- Checking for module 'libpcsclite'\n--   Found libpcsclite, version 2.0.3\n-- Found PCSCLite: \/usr\/lib\/x86_64-linux-gnu\/libpcsclite.so\n-- Checking for module 'qmi-glib'\n--   Found qmi-glib, version 1.35.6\n-- Found CURL: \/usr\/lib\/x86_64-linux-gnu\/libcurl.so (found version \"8.5.0\")\n-- Found Git: \/usr\/bin\/git (found version \"2.43.0\")\n-- Configuring done (2.1s)\n-- Generating done (0.0s)\n-- Build files have been written to: \/home\/jakob\/lpac\/lpacoutput\n\nAPL01:~\/lpac$ cmake --build lpacoutput\n&#91;  1%] Building C object cjson\/CMakeFiles\/cjson-static.dir\/cJSON.c.o\n&#91;  3%] Building C object cjson\/CMakeFiles\/cjson-static.dir\/cJSON_ex.c.o\n&#91;  5%] Linking C static library libcjson-static.a\n&#91;  5%] Built target cjson-static\n&#91;  7%] Building C object euicc\/CMakeFiles\/euicc.dir\/base64.c.o\n...\n&#91; 98%] Building C object src\/CMakeFiles\/lpac.dir\/applet\/profile\/nickname.c.o\n&#91;100%] Linking C executable ..\/lpacoutput\/lpac\n&#91;100%] Built target lpac\n\nAPL01:~\/lpac$ sudo cmake --install lpacoutput\n-- Install configuration: \"\"\n-- Installing: \/usr\/local\/bin\/lpac\n-- Set non-toolchain portion of runtime path of \"\/usr\/local\/bin\/lpac\" to \"\/usr\/local\/lib\/lpac\"\n\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Step 5:<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Export qmi function and qmi_device for lpac to use the correct driver.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>APL01:~$ export LPAC_APDU=qmi\nAPL01:~$ export LPAC_APDU_QMI_DEVICE=\/dev\/cdc-wdm0\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Step 6:<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Use lpac to gather chip information and handle the eSIM itself.<br>We pipe the command with jq to get it more readable.<br>Chip info.<br>This displays the information of the eUICC you are using with your device.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>APL01:~\/drivertest\/qmi_wwan$ sudo -E lpac chip info | jq .\n{\n  \"type\": \"lpa\",\n  \"payload\": {\n    \"code\": 0,\n    \"message\": \"success\",\n    \"data\": {\n      \"eidValue\": \"8XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX0\",\n      \"EuiccConfiguredAddresses\": {\n        \"defaultDpAddress\": \"smdp-plus-1.eu.cd.rsp.kigen.com\",\n        \"rootDsAddress\": \"lpa.ds.gsma.com\"\n      },\n      \"EUICCInfo2\": {\n        \"profileVersion\": \"2.3.1\",\n        \"svn\": \"2.3.0\",\n        \"euiccFirmwareVer\": \"36.16.23\",\n        \"extCardResource\": {\n          \"installedApplication\": 6,\n          \"freeNonVolatileMemory\": 213008,\n          \"freeVolatileMemory\": 9058\n        },\n        \"uiccCapability\": &#91;\n          \"usimSupport\",\n          \"isimSupport\",\n          \"csimSupport\",\n          \"akaMilenage\",\n          \"akaCave\",\n          \"akaTuak128\",\n          \"akaTuak256\",\n          \"gbaAuthenUsim\",\n          \"gbaAuthenISim\",\n          \"eapClient\",\n          \"javacard\",\n          \"multipleUsimSupport\",\n          \"multipleIsimSupport\",\n          \"multipleCsimSupport\"\n        ],\n        \"ts102241Version\": \"15.1.0\",\n        \"globalplatformVersion\": \"2.3.0\",\n        \"rspCapability\": &#91;\n          \"additionalProfile\",\n          \"testProfileSupport\"\n        ],\n        \"euiccCiPKIdListForVerification\": &#91;\n          \"8XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXb\"\n        ],\n        \"euiccCiPKIdListForSigning\": &#91;\n          \"8XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXb\"\n        ],\n        \"euiccCategory\": null,\n        \"forbiddenProfilePolicyRules\": &#91;\n          \"ppr1\"\n        ],\n        \"ppVersion\": \"1.0.0\",\n        \"sasAcreditationNumber\": \"KN-XX-XX-XXXX\",\n        \"certificationDataObject\": {\n          \"platformLabel\": null,\n          \"discoveryBaseURL\": null\n        }\n      },\n      \"rulesAuthorisationTable\": &#91;\n        {\n          \"pprIds\": &#91;\n            \"ppr1\",\n            \"ppr2\"\n          ],\n          \"allowedOperators\": &#91;\n            {\n              \"plmn\": \"eeeeee\",\n              \"gid1\": null,\n              \"gid2\": null\n            }\n          ],\n          \"pprFlags\": &#91;\n            \"consentRequired\"\n          ]\n        }\n      ]\n    }\n  }\n}\n\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Profile list<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">This shows all profiles in your eUICC.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>APL01:~$ sudo -E lpac profile list | jq .\n{\n  \"type\": \"lpa\",\n  \"payload\": {\n    \"code\": 0,\n    \"message\": \"success\",\n    \"data\": &#91;\n      {\n        \"iccid\": \"8944476500000515770\",\n        \"isdpAid\": \"a0000005591010ffffffff8900001100\",\n        \"profileState\": \"disabled\",\n        \"profileNickname\": \"test\",\n        \"serviceProviderName\": \"BetterRoaming\",\n        \"profileName\": \"BetterRoaming\",\n        \"iconType\": null,\n        \"icon\": null,\n        \"profileClass\": \"operational\"\n      },\n      {\n        \"iccid\": \"8944476500000932264\",\n        \"isdpAid\": \"a0000005591010ffffffff8900001300\",\n        \"profileState\": \"disabled\",\n        \"profileNickname\": null,\n        \"serviceProviderName\": \"BetterRoaming\",\n        \"profileName\": \"BetterRoaming\",\n        \"iconType\": null,\n        \"icon\": null,\n        \"profileClass\": \"operational\"\n      }\n    ]\n  }\n}\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Profile download<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">This downloads a profile to your eUICC.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>APL01:~$ sudo -E lpac profile download -a 'LPA:1$rsp.truphone.com$QRF-SPEEDTEST'\n{\"type\":\"progress\",\"payload\":{\"code\":0,\"message\":\"es10b_get_euicc_challenge_and_info\",\"data\":\"rsp.truphone.com\"}}\n{\"type\":\"progress\",\"payload\":{\"code\":0,\"message\":\"es9p_initiate_authentication\",\"data\":\"rsp.truphone.com\"}}\n{\"type\":\"progress\",\"payload\":{\"code\":0,\"message\":\"es10b_authenticate_server\",\"data\":\"rsp.truphone.com\"}}\n{\"type\":\"progress\",\"payload\":{\"code\":0,\"message\":\"es9p_authenticate_client\",\"data\":\"rsp.truphone.com\"}}\n{\"type\":\"progress\",\"payload\":{\"code\":0,\"message\":\"es8p_meatadata_parse\",\"data\":{\"iccid\":\"8944476500001126791\",\"serviceProviderName\":\"Speedtest Travel\",\"profileName\":\"BetterRoaming\",\"iconType\":null,\"icon\":null,\"profileClass\":null}}}\n{\"type\":\"progress\",\"payload\":{\"code\":0,\"message\":\"es10b_prepare_download\",\"data\":\"rsp.truphone.com\"}}\n{\"type\":\"progress\",\"payload\":{\"code\":0,\"message\":\"es9p_get_bound_profile_package\",\"data\":\"rsp.truphone.com\"}}\n{\"type\":\"progress\",\"payload\":{\"code\":0,\"message\":\"es10b_load_bound_profile_package\",\"data\":\"rsp.truphone.com\"}}\n{\"type\":\"lpa\",\"payload\":{\"code\":0,\"message\":\"success\",\"data\":null}}\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Profile list<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Here we can see that our profile we just downloaded is available on the SIM.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>APL01:~$ sudo -E lpac profile list | jq .\n{\n  \"type\": \"lpa\",\n  \"payload\": {\n    \"code\": 0,\n    \"message\": \"success\",\n    \"data\": &#91;\n      {\n        \"iccid\": \"8944476500000515770\",\n        \"isdpAid\": \"a0000005591010ffffffff8900001100\",\n        \"profileState\": \"disabled\",\n        \"profileNickname\": \"test\",\n        \"serviceProviderName\": \"BetterRoaming\",\n        \"profileName\": \"BetterRoaming\",\n        \"iconType\": null,\n        \"icon\": null,\n        \"profileClass\": \"operational\"\n      },\n      {\n        \"iccid\": \"8944476500000932264\",\n        \"isdpAid\": \"a0000005591010ffffffff8900001300\",\n        \"profileState\": \"disabled\",\n        \"profileNickname\": null,\n        \"serviceProviderName\": \"BetterRoaming\",\n        \"profileName\": \"BetterRoaming\",\n        \"iconType\": null,\n        \"icon\": null,\n        \"profileClass\": \"operational\"\n      },\n      {\n        \"iccid\": \"8944476500001126791\",\n        \"isdpAid\": \"a0000005591010ffffffff8900001400\",\n        \"profileState\": \"disabled\",\n        \"profileNickname\": null,\n        \"serviceProviderName\": \"Speedtest Travel\",\n        \"profileName\": \"BetterRoaming\",\n        \"iconType\": null,\n        \"icon\": null,\n        \"profileClass\": \"operational\"\n      }\n    ]\n  }\n}\n\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Enable profile<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">In order to enable a profile, you enable it with it&#8217;s corresponding ICCID, making sure you get a success message.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>APL01:~$ sudo -E lpac profile enable 89357XXXXXXXXXXXXX\n{\"type\":\"lpa\",\"payload\":{\"code\":0,\"message\":\"success\",\"data\":null}}\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Process notification<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Make sure the SM-DP+ server knows the profile is downloaded, installed and enabled correctly.<br>After successfully processed, you can delete old notifications.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>APL01:~$ sudo -E lpac notification process -a\n{\"type\":\"progress\",\"payload\":{\"code\":0,\"message\":\"es10b_list_notification\",\"data\":null}}\n{\"type\":\"progress\",\"payload\":{\"code\":0,\"message\":\"es10b_retrieve_notifications_list\",\"data\":\"77\"}}\n{\"type\":\"progress\",\"payload\":{\"code\":0,\"message\":\"es9p_handle_notification\",\"data\":\"77\"}}\n{\"type\":\"progress\",\"payload\":{\"code\":0,\"message\":\"es10b_retrieve_notifications_list\",\"data\":\"78\"}}\n{\"type\":\"progress\",\"payload\":{\"code\":0,\"message\":\"es9p_handle_notification\",\"data\":\"78\"}}\n{\"type\":\"progress\",\"payload\":{\"code\":0,\"message\":\"es10b_retrieve_notifications_list\",\"data\":\"79\"}}\n{\"type\":\"progress\",\"payload\":{\"code\":0,\"message\":\"es9p_handle_notification\",\"data\":\"79\"}}\n{\"type\":\"lpa\",\"payload\":{\"code\":0,\"message\":\"success\",\"data\":null}}\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">IMPORTANT<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">If you disable and delete a profile, it is important that you process the notifications to make sure the SM-DP+ server knows you have handed the profile back.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>You probably know how traditional SIM cards works, but do you know how to use an eSIM in Linux ? And how well does eSIM work in a Linux environment? Good news is that it\u2019s possible to get a module with an eSIM up and running on your machine with a bit of configuration. So [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":2051,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[55,54],"tags":[2567,869,2568,2104,1093],"class_list":["post-56235","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-instalation-support","category-support-download","tag-esim","tag-linux","tag-sim","tag-simcom","tag-ubuntu"],"acf":[],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/wodatherm.com\/en\/wp-json\/wp\/v2\/posts\/56235","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wodatherm.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wodatherm.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wodatherm.com\/en\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/wodatherm.com\/en\/wp-json\/wp\/v2\/comments?post=56235"}],"version-history":[{"count":0,"href":"https:\/\/wodatherm.com\/en\/wp-json\/wp\/v2\/posts\/56235\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wodatherm.com\/en\/wp-json\/wp\/v2\/media\/2051"}],"wp:attachment":[{"href":"https:\/\/wodatherm.com\/en\/wp-json\/wp\/v2\/media?parent=56235"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wodatherm.com\/en\/wp-json\/wp\/v2\/categories?post=56235"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wodatherm.com\/en\/wp-json\/wp\/v2\/tags?post=56235"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}